[机器学习与scikit-learn-3]:scikit-learn模型地图与模型选择

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[机器学习与scikit-learn-3]:scikit-learn模型地图与模型选择相关的知识,希望对你有一定的参考价值。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:


目录

概述

start->

if 样本数大于<50个, 则直接放弃(欠拟合),scikit-learn模型,至少需要有50个样本数据

if 样本数大于>=50个, 则scikit-learn能处理。

    if 分类问题, 则为分类问题

            if 标签数据,则为有监督的分类问题

            else 无标签数据,则为无监督的分类问题:聚类问题

        else 则为非分类问题

                if 数量性问题,则为拟合问题

             elsif  如果观察数据总体特性,则是降维问题

             else:目前还不支持


概述

scikit-learn提供了大量的已知模型,下图形展现了如何选择scikit-learn的模型,来解决特定的现实问题。

start->

if 样本数大于<50个, 则直接放弃(欠拟合),scikit-learn模型,至少需要有50个样本数据

if 样本数大于>=50个, 则scikit-learn能处理。

    if 分类问题, 则为分类问题

            if 标签数据,则为有监督的分类问题

            

                        if 样本数小于100K, 则优选选择线性SVC

                                if 是文本数据, 则选择Naive Bayes算法

                                else 选择K近邻居算法

                        else 样本大于100K, 则优选选择SGD分类算法

                               if 不能工作,则选择 选择复合增强算法,如Kernel approximation+SVC算法

            else 无标签数据,则为无监督的分类问题:聚类问题

            

                        if 样本数目是已知的

                                if 样本数<10K, 则使用miniBatch KMeans算法

                                else 则使用 KMeans算法

                                        if 不能工作,则选择特殊的聚类算法GMM

                        else 样本数未知

                                if 样本数<10, 则使用MeanShift算法

                                else 难度太大,不支持

        else 则为非分类问题

                if 数量性问题,则为拟合问题

                

                        if 样本数<100K, 则直接可以使用SGD拟合

                        else 样本>=100K, 则需要进一步确定

                                if 部分个别的特征起关键作用,则使用 弹性网络,Lasso

                                else 则选择 RidgeRegression

                                        如果不能工作,则选择复合、增强算法

             elsif  如果观察数据总体特性,则是降维问题

                        则直接使用Randomized PCA算法

                                如果不能工作,则进一步确定

                                        if 样本数少于10K, 

                                                则使用Isomap算法

                                        else 则使用 kernel approximation算法

             else:目前还不支持

                

备注:从这样图上可以看出,scikit-learn也就20种左右常用的算法。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:

以上是关于[机器学习与scikit-learn-3]:scikit-learn模型地图与模型选择的主要内容,如果未能解决你的问题,请参考以下文章

SCI审稿人亲授:机器学习在智能化时代下的应用

Sci-Hub十岁生日解封,超233万新论文被放出!总数达到近8800万

Sci-Hub十岁生日解封,超233万新论文被放出!总数达到近8800万

R语言 | 一网打尽高质量统计分析与机器学习包

如何在 Sci-Kit Learn / Tensorflow 中检测对象大小?

[机器学习与scikit-learn-20]:算法-逻辑回归-线性逻辑回归linear_model.LogisticRegression与代码实现