|
234 | 234 | <li class="toctree-l2"><a class="reference internal" href="../Chapter2/dataclasses.html">3.7. Data Classes</a></li>
|
235 | 235 | <li class="toctree-l2"><a class="reference internal" href="../Chapter2/typing.html">3.8. Typing</a></li>
|
236 | 236 | <li class="toctree-l2"><a class="reference internal" href="../Chapter2/pathlib.html">3.9. pathlib</a></li>
|
| 237 | +<li class="toctree-l2"><a class="reference internal" href="../Chapter2/pydantic.html">3.10. Pydantic</a></li> |
237 | 238 | </ul>
|
238 | 239 | </li>
|
239 | 240 | <li class="toctree-l1 has-children"><a class="reference internal" href="../Chapter3/Chapter3.html">4. Pandas</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-4"><i class="fa-solid fa-chevron-down"></i></label><ul>
|
@@ -529,6 +530,7 @@ <h2> Contents </h2>
|
529 | 530 | <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mlem-capture-your-machine-learning-model-s-metadata">6.5.15. MLEM: Capture Your Machine Learning Model’s Metadata</a></li>
|
530 | 531 | <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#distributed-machine-learning-with-mllib">6.5.16. Distributed Machine Learning with MLlib</a></li>
|
531 | 532 | <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#rapid-prototyping-and-comparison-of-basic-models-with-lazy-predict">6.5.17. Rapid Prototyping and Comparison of Basic Models with Lazy Predict</a></li>
|
| 533 | +<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#autogluon-fast-and-accurate-ml-in-3-lines-of-code">6.5.18. AutoGluon: Fast and Accurate ML in 3 Lines of Code</a></li> |
532 | 534 | </ul>
|
533 | 535 | </nav>
|
534 | 536 | </div>
|
@@ -1938,6 +1940,56 @@ <h2><span class="section-number">6.5.17. </span>Rapid Prototyping and Comparison
|
1938 | 1940 | </div>
|
1939 | 1941 | <p><a class="reference external" href="https://github.com/shankarpandala/lazypredict">Link to Lazy Predict</a>.</p>
|
1940 | 1942 | </section>
|
| 1943 | +<section id="autogluon-fast-and-accurate-ml-in-3-lines-of-code"> |
| 1944 | +<h2><span class="section-number">6.5.18. </span>AutoGluon: Fast and Accurate ML in 3 Lines of Code<a class="headerlink" href="#autogluon-fast-and-accurate-ml-in-3-lines-of-code" title="Permalink to this heading">#</a></h2> |
| 1945 | +<p>The traditional scikit-learn approach requires extensive manual work, including data preprocessing, model selection, and hyperparameter tuning.</p> |
| 1946 | +<p>In contrast, AutoGluon automates these tasks, allowing you to train and deploy accurate models with minimal code.</p> |
| 1947 | +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sklearn.impute</span> <span class="kn">import</span> <span class="n">SimpleImputer</span> |
| 1948 | +<span class="kn">from</span> <span class="nn">sklearn.preprocessing</span> <span class="kn">import</span> <span class="n">OneHotEncoder</span><span class="p">,</span> <span class="n">StandardScaler</span> |
| 1949 | +<span class="kn">from</span> <span class="nn">sklearn.compose</span> <span class="kn">import</span> <span class="n">ColumnTransformer</span> |
| 1950 | +<span class="kn">from</span> <span class="nn">sklearn.ensemble</span> <span class="kn">import</span> <span class="n">RandomForestClassifier</span> |
| 1951 | +<span class="kn">from</span> <span class="nn">sklearn.pipeline</span> <span class="kn">import</span> <span class="n">Pipeline</span> |
| 1952 | +<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="kn">import</span> <span class="n">GridSearchCV</span> |
| 1953 | + |
| 1954 | +<span class="c1"># Preprocessing Pipeline</span> |
| 1955 | +<span class="n">numeric_transformer</span> <span class="o">=</span> <span class="n">SimpleImputer</span><span class="p">(</span><span class="n">strategy</span><span class="o">=</span><span class="s1">'mean'</span><span class="p">)</span> |
| 1956 | +<span class="n">categorical_transformer</span> <span class="o">=</span> <span class="n">OneHotEncoder</span><span class="p">(</span><span class="n">handle_unknown</span><span class="o">=</span><span class="s1">'ignore'</span><span class="p">)</span> |
| 1957 | + |
| 1958 | +<span class="n">preprocessor</span> <span class="o">=</span> <span class="n">ColumnTransformer</span><span class="p">(</span> |
| 1959 | + <span class="n">transformers</span><span class="o">=</span><span class="p">[</span> |
| 1960 | + <span class="p">(</span><span class="s1">'num'</span><span class="p">,</span> <span class="n">numeric_transformer</span><span class="p">,</span> <span class="n">numerical_columns</span><span class="p">),</span> |
| 1961 | + <span class="p">(</span><span class="s1">'cat'</span><span class="p">,</span> <span class="n">categorical_transformer</span><span class="p">,</span> <span class="n">categorical_columns</span><span class="p">)</span> |
| 1962 | + <span class="p">])</span> |
| 1963 | + |
| 1964 | +<span class="c1"># Machine Learning Pipeline</span> |
| 1965 | +<span class="n">model</span> <span class="o">=</span> <span class="n">RandomForestClassifier</span><span class="p">()</span> |
| 1966 | + |
| 1967 | +<span class="n">pipeline</span> <span class="o">=</span> <span class="n">Pipeline</span><span class="p">(</span><span class="n">steps</span><span class="o">=</span><span class="p">[</span> |
| 1968 | + <span class="p">(</span><span class="s1">'preprocessor'</span><span class="p">,</span> <span class="n">preprocessor</span><span class="p">),</span> |
| 1969 | + <span class="p">(</span><span class="s1">'scaler'</span><span class="p">,</span> <span class="n">StandardScaler</span><span class="p">()),</span> |
| 1970 | + <span class="p">(</span><span class="s1">'model'</span><span class="p">,</span> <span class="n">model</span><span class="p">)</span> |
| 1971 | +<span class="p">])</span> |
| 1972 | + |
| 1973 | +<span class="c1"># Hyperparameter Tuning</span> |
| 1974 | +<span class="n">param_grid</span> <span class="o">=</span> <span class="p">{</span> |
| 1975 | + <span class="s1">'model__n_estimators'</span><span class="p">:</span> <span class="p">[</span><span class="mi">100</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">300</span><span class="p">],</span> |
| 1976 | + <span class="s1">'model__max_depth'</span><span class="p">:</span> <span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="kc">None</span><span class="p">],</span> |
| 1977 | + <span class="s1">'model__min_samples_split'</span><span class="p">:</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">10</span><span class="p">]</span> |
| 1978 | +<span class="p">}</span> |
| 1979 | + |
| 1980 | +<span class="n">grid_search</span> <span class="o">=</span> <span class="n">GridSearchCV</span><span class="p">(</span><span class="n">pipeline</span><span class="p">,</span> <span class="n">param_grid</span><span class="p">,</span> <span class="n">cv</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span class="s1">'accuracy'</span><span class="p">)</span> |
| 1981 | +<span class="n">grid_search</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span> |
| 1982 | +<span class="n">grid_search</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_test</span><span class="p">)</span> |
| 1983 | +</pre></div> |
| 1984 | +</div> |
| 1985 | +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">autogluon.tabular</span> <span class="kn">import</span> <span class="n">TabularPredictor</span> |
| 1986 | + |
| 1987 | +<span class="n">predictor</span> <span class="o">=</span> <span class="n">TabularPredictor</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="s2">"class"</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span> |
| 1988 | +<span class="n">predictions</span> <span class="o">=</span> <span class="n">predictor</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">test_data</span><span class="p">)</span> |
| 1989 | +</pre></div> |
| 1990 | +</div> |
| 1991 | +<p><a class="reference external" href="https://bit.ly/45ljoOd">Link to AutoGluon</a>.</p> |
| 1992 | +</section> |
1941 | 1993 | </section>
|
1942 | 1994 |
|
1943 | 1995 | <script type="text/x-thebe-config">
|
@@ -2020,6 +2072,7 @@ <h2><span class="section-number">6.5.17. </span>Rapid Prototyping and Comparison
|
2020 | 2072 | <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mlem-capture-your-machine-learning-model-s-metadata">6.5.15. MLEM: Capture Your Machine Learning Model’s Metadata</a></li>
|
2021 | 2073 | <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#distributed-machine-learning-with-mllib">6.5.16. Distributed Machine Learning with MLlib</a></li>
|
2022 | 2074 | <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#rapid-prototyping-and-comparison-of-basic-models-with-lazy-predict">6.5.17. Rapid Prototyping and Comparison of Basic Models with Lazy Predict</a></li>
|
| 2075 | +<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#autogluon-fast-and-accurate-ml-in-3-lines-of-code">6.5.18. AutoGluon: Fast and Accurate ML in 3 Lines of Code</a></li> |
2023 | 2076 | </ul>
|
2024 | 2077 | </nav></div>
|
2025 | 2078 |
|
|
0 commit comments