<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_261) on Mon Dec 20 14:15:56 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.ml.dataset.feature.extractor.impl Class Hierarchy (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
</head>

<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.ignite.ml.dataset.feature.extractor.impl Class Hierarchy (Ignite 2.11.1)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/package-tree.html">Prev</a></li>
<li><a href="../../../../../../../../org/apache/ignite/ml/dataset/impl/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/ignite/ml/dataset/feature/extractor/impl/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For Package org.apache.ignite.ml.dataset.feature.extractor.impl</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.impl.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/impl/BinaryObjectVectorizer.Mapping.html" title="class in org.apache.ignite.ml.dataset.feature.extractor.impl"><span class="typeNameLink">BinaryObjectVectorizer.Mapping</span></a></li>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/Vectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">Vectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V,C,L<span class='angle_bracket'>&gt;</span> (implements org.apache.ignite.ml.trainers.<a href="../../../../../../../../org/apache/ignite/ml/trainers/FeatureLabelExtractor.html" title="interface in org.apache.ignite.ml.trainers">FeatureLabelExtractor</a><span class='angle_bracket'>&lt;</span>K,V,L<span class='angle_bracket'>&gt;</span>)
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/ExtractionUtils.DefaultLabelVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">ExtractionUtils.DefaultLabelVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V,C<span class='angle_bracket'>&gt;</span>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/ExtractionUtils.IntCoordVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">ExtractionUtils.IntCoordVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/ExtractionUtils.ArrayLikeVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">ExtractionUtils.ArrayLikeVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.impl.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/impl/DoubleArrayVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor.impl"><span class="typeNameLink">DoubleArrayVectorizer</span></a><span class='angle_bracket'>&lt;</span>K<span class='angle_bracket'>&gt;</span> (implements org.apache.ignite.ml.environment.deploy.<a href="../../../../../../../../org/apache/ignite/ml/environment/deploy/DeployableObject.html" title="interface in org.apache.ignite.ml.environment.deploy">DeployableObject</a>)</li>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.impl.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/impl/DummyVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor.impl"><span class="typeNameLink">DummyVectorizer</span></a><span class='angle_bracket'>&lt;</span>K<span class='angle_bracket'>&gt;</span> (implements org.apache.ignite.ml.environment.deploy.<a href="../../../../../../../../org/apache/ignite/ml/environment/deploy/DeployableObject.html" title="interface in org.apache.ignite.ml.environment.deploy">DeployableObject</a>)</li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/ExtractionUtils.StringCoordVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">ExtractionUtils.StringCoordVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.impl.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/impl/BinaryObjectVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor.impl"><span class="typeNameLink">BinaryObjectVectorizer</span></a><span class='angle_bracket'>&lt;</span>K<span class='angle_bracket'>&gt;</span> (implements org.apache.ignite.ml.environment.deploy.<a href="../../../../../../../../org/apache/ignite/ml/environment/deploy/DeployableObject.html" title="interface in org.apache.ignite.ml.environment.deploy">DeployableObject</a>)</li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/ExtractionUtils.ObjectLabelVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">ExtractionUtils.ObjectLabelVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V,C<span class='angle_bracket'>&gt;</span>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/ExtractionUtils.IntCoordObjectLabelVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">ExtractionUtils.IntCoordObjectLabelVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/ExtractionUtils.ArrayLikeObjectLabelVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor"><span class="typeNameLink">ExtractionUtils.ArrayLikeObjectLabelVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,V<span class='angle_bracket'>&gt;</span>
<ul>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.impl.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/impl/ObjectArrayVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor.impl"><span class="typeNameLink">ObjectArrayVectorizer</span></a><span class='angle_bracket'>&lt;</span>K<span class='angle_bracket'>&gt;</span> (implements org.apache.ignite.ml.environment.deploy.<a href="../../../../../../../../org/apache/ignite/ml/environment/deploy/DeployableObject.html" title="interface in org.apache.ignite.ml.environment.deploy">DeployableObject</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.apache.ignite.ml.dataset.feature.extractor.impl.<a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/impl/LabeledDummyVectorizer.html" title="class in org.apache.ignite.ml.dataset.feature.extractor.impl"><span class="typeNameLink">LabeledDummyVectorizer</span></a><span class='angle_bracket'>&lt;</span>K,L<span class='angle_bracket'>&gt;</span> (implements org.apache.ignite.ml.environment.deploy.<a href="../../../../../../../../org/apache/ignite/ml/environment/deploy/DeployableObject.html" title="interface in org.apache.ignite.ml.environment.deploy">DeployableObject</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../../org/apache/ignite/ml/dataset/feature/extractor/package-tree.html">Prev</a></li>
<li><a href="../../../../../../../../org/apache/ignite/ml/dataset/impl/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/ignite/ml/dataset/feature/extractor/impl/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px">                                     <tr>                                         <td>                                             <table style="padding-left: 0; margin: 0">                                                 <tbody style="padding: 0; margin: 0">                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <a target=_blank href="https://ignite.apache.org"><nobr>2021 Copyright &#169; Apache Software Foundation</nobr></a>                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                         <td width="100%" align="right" valign="center">                                             <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a>                                         </td>                                     </tr>                                     <tr>                                         <td colspan="2" valign="top" align="left">                                             <table style="padding-left: 0; margin: 0">                                                 <tbody style="padding: 0; margin: 0">                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Ignite Database and Caching Platform</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             ver. <strong>2.11.1</strong>                                                         </td>                                                     </tr>                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Release Date</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             December 20 2021                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                     </tr>                                     </table></small></p>
</body>
</html>
