《机器学习模型五花八门不知道怎么选?这份指南告诉你.docx》由会员分享,可在线阅读,更多相关《机器学习模型五花八门不知道怎么选?这份指南告诉你.docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、机器学习模型五花八门不知道怎么选?这份指南告诉你11月30日,2021亚马逊云科技re:Invent全球大会,即将浩大开启!2021re:Invent十周年度十分活动,内容的饕餮盛宴,涵盖产品、行业、社区等专题!立即预约|LAVANYA译者|陆离编辑|夕颜出品|AI科技大本营ID:rgznai100【导读】在本文中我们将讨论不同的机器学习模型和每个模型合理的使用场景。一般来讲基于树形构造的模型在Kaggle竞赛中是表现最好的而其它的模型可以用于交融模型。对于计算机视觉领域的挑战CNNs(ConvolutionalNeuralNetwork,卷积神经网络)是最合适不过的。而对于NLPNatura
2、lLanguageProcessing自然语言处理LSTMs或者GRUs是最好的选择。下面是一个不完全模型细目清单同时列出了每个模型的一些优缺点。1.回归预测连续值A.线性回归LinearRegressionI.VanillaLinearRegression优点擅长获取数据集中的线性关系适用于在已有了一些预先定义好的变量并且需要一个简单的预测模型的情况下使用训练速度以及预测速度较快在小数据集上表现很好结果可解释并且易于讲明当新增数据时易于更新模型不需要进展参数调整下面的正那么化线性模型需要调整正那么化参数不需要特征缩放下面的正那么化线性模型需要特征缩放假如数据集具有冗余的特征那么线性回归可能是
3、不稳定的缺点不适用于非线性数据预测准确度较低可能会出现过度拟合下面的正那么化模型可以抵消这个影响别离信号以及噪声的效果不理想在使用前需要去掉不相关的特征不解析数据集中的特征交互II.Lasso回归,Ridge回归,Elastic-Net回归优点这些模型是正那么化的线性回归模型有助于防止过度拟合这些模型更擅长正那么化因为它们更简单适用于当我们只关心几个特征的时候缺点需要特征缩放需要调整正那么化参数B.回归树RegressionTreesI.决策树DecisionTree优点训练速度以及预测速度较快擅长获取数据集中的非线性关系解析数据集中的特征交互擅长处理数据集中出现的异常值擅长在数据集中找到最重
4、要的特征不需要特征缩放结果可解释并易于讲明缺点预测准确度较低需要一些参数的调整不适用于小型数据集别离信号以及噪声的效果不理想当新增数据时不易更新模型在理论中很少使用而是更多地使用集合树可能会出现过度拟合见下面的交融模型II.交融模型(RandomForest,XGBoost,CatBoost,LightGBM)优点多重树构造整理预测具有较高的预测准确度在理论中表现很好是Kaggle竞赛中推荐的算法擅长处理数据集中出现的异常值擅长在数据集中获取非线性关系擅长在数据集中找到最重要的特征可以别离信号以及噪声不需要特征缩放十分适用于高维度的数据缺点训练速度较慢具有较高的预测速度结果不易解释或者讲明当新
5、增数据时不易更新模型需要调整参数但调整较为复杂不适用于小型数据集C.深度学习DeepLearning优点在理论中表现出较高的预测准确度可以获取数据中非常复杂的底层形式十分适用于大型数据集以及高维度数据集当新增数据时易于更新模型网络的隐藏层明显减少了对特征工程的需求是适用于计算机视觉、机器翻译、情感分析以及语音识别任务的最新技术缺点具有非常低的训练速度需要消耗宏大的计算资源需要特征缩放结果不易解释或者讲明需要大量的训练数据因为它要学习大量的参数在非图像、非文本、非语音的任务中优于Boosting算法非常灵敏带有许多不同的体系构造构建块因此需要专业知识来设计体系构造D.基于间隔的K近邻算法KNea
6、restNeighborsDistanceBased优点训练速度较快不需要过多的参数调整结果可解释并易于讲明适用于小型数据集小于10万个训练集缺点预测准确度较低不适用于小型数据集需要选择适宜的间隔函数需要特征缩放预测速度随数据集增大而加快别离信号以及噪声的效果不理想在使用前需要去掉不相关的特征是内存密集型的算法因为它可以保存所有的观察结果不适用于处理高维度的数据2.分类预测一个或者多个类别的概率A.逻辑回归算法LogisticRegression优点擅长对线性可别离数据进展分类具有较高的训练速度以及预测速度适用于小型数据集结果可解释并易于讲明当新增数据时易于更新模型在正那么化时可以防止过度拟合
7、可以同时进展2个类以及多个类的分类任务不需要参数调整除非在正那么化的时候我们需要调整正那么化参数不需要特征缩放正那么化的时候除外假如数据集具有冗余特征那么线性回归可能是不稳定的缺点不适用于非线性可别离数据具有较低的预测准确度可能会出现过度拟合见下面的正那么化模型别离信号以及噪声的效果不理想在使用前需要去掉不相关的特征不解析数据集中的特征交互B.基于间隔的支持向量机算法SupportVectorMachinesDistancebased优点具有较高的预测准确度即使在高维度数据集上也不会产生过度拟合因此它适用于具有多个特征的情况适用于小型数据集小于10万个训练集适用于解决文本分类的问题缺点当新增数
8、据时不易更新模型属于内存高度密集型算法不适用于大型数据集需要选择正确的内核线性内核对线性数据建模运行速度快非线性内核可以模拟非线性边界运行速度慢用Boosting代替!C.基于概率的朴素贝叶斯算法NaiveBayesProbabilitybased优点在文本分类问题上表现极佳具有较高的训练速度以及预测速度在小型数据集上表现良好擅长别离信号以及噪声在理论中表现出良好的性能操作简单易于实现适用于小型数据集小于10万个训练集关于特征的以及潜在分布的独立性防止了过度拟合假如这种独立性的条件成立那么朴素贝叶斯可以在更小的数据集上运行并且可以以更快的速度进展训练不需要特征缩放不是内存密集型算法结果可解释并
9、易于讲明根据数据集的大小易于扩展缺点具有较低的预测准确度D.基于间隔的K近邻算法KNearestNeighborsDistanceBased优点具有较高的训练速度无需过多参数调整结果可解释并易于讲明适用于小型数据集小于10万个训练集缺点预测准确度较低在小型数据集上表现不好需要选择一个适宜的间隔函数需要功能缩放预测速度随着数据集增大而加快别离信号以及噪声的效果不理想在使用前需要去掉不相关的特征是内存密集型算法因为它可以保存所有的观察结果不擅长处理高维度的数据E.分类树ClassificationTreeI.决策树DecisionTree优点具有较高的训练速度以及预测速度擅长获取数据集中的非线性关
10、系解析数据集中的特征交互擅长处理数据集中出现的异常值擅长在数据集中找到最重要的特征可以同时进展2个类以及多个类的分类任务不需要特征缩放结果可解释并易于讲明缺点预测速度较慢需要进展参数的调整在小型数据集上表现不好别离信号以及噪声的效果不理想在理论中很少使用而是更多地使用集合树当新增数据时不易更新模型可能会出现过度拟合见下面的交融模型II.交融(RandomForest,XGBoost,CatBoost,LightGBM)优点多重树构造整理预测具有较高的预测准确度在理论中表现很好是Kaggle竞赛中推荐的算法擅长获取数据集中的非线性关系擅长处理数据集中出现的异常值擅长在数据集中找到最重要的特征可以
11、别离信号以及噪声无需特征缩放十分适用于高维度的数据缺点训练速度较慢预测速度较快结果不易解释或者讲明当新增数据时不易更新模型需要调整参数但调整较为复杂在小型数据集上表现不好F.深度学习DeepLearning优点预测准确度较高在理论中表现良好可以获取数据中非常复杂的底层形式适用于大型数据集以及高维度数据集当新增数据时易于更新模型网络的隐藏层明显减少了对特征工程的需求是适用于计算机视觉、机器翻译、情感分析以及语音识别任务的最新技术缺点训练速度较慢结果不易解释或者讲明需要消耗宏大的计算资源需要特征缩放需要大量的训练数据因为它要学习大量的参数在非图像、非文本、非语音的任务中优于Boosting算法非常
12、灵敏带有许多不同的体系构造构建块因此需要专业知识来设计体系构造3.聚类将数据分类以便最大化相似性A.DBSCAN聚类算法Density-BasedSpatialClusteringofApplicationswithNoise优点可扩展到大型数据集上擅长噪声检测无需预先知道聚类的数量可以发现任意形状的聚类不会假设聚类的形状是球状的缺点假如整个数据集都是高密度区域那么该算法不总是有效的需要调整密度参数epsilon以及min_samples为正确的值以便获得好的效果B.Kmeans算法优点十分适于获取底层数据集的构造算法简单易于解释适于预先知道聚类的数量缺点假如聚类不是球状的并且大小相似那么该算
13、法不总是有效的需要预先知道聚类的数量并需要调整k聚类的选择以便获得好的结果属于内存密集型的算法无法扩展到大型数据集上4.Misc本文中未包含的模型降维算法DimensionalityReductionAlgorithms聚类算法Clusteringalgorithms高斯混合模型GaussianMixtureModel分层聚类Hierarchicalclustering计算机视觉(CV)卷积神经网络ConvolutionalNeuralNetworks图像分类Imageclassification对象检测ObjectDetection图像分割Imagesegmentation自然语言处理Nat
14、uralLanguageProcessingNLP)循环神经网络RecurrentNeuralNetworkRNNs包括LSTM以及GRUs)强化学习ReinforcementLearning交融模型交融模型是一种非常强大的技术有助于减少过度拟合并通过组合来自不同模型的输出以做出更稳定的预测。交融模型是赢得Kaggle竞赛的一个重要工具在选择模型进展交融时我们祈望选择不同类型的模型以确保它们具有不同的优势以及优势进而在数据集中获取不同的形式。这种更明显的多样性特点使得偏向降低。我们还祈望确保它们的性能是可以比照的这样就能确保预测的稳定性。我们在这里可以看到这些模型的交融实际上比任何单一的模型生
15、成的损失都要低得多。局部的原因是尽管所有的这些模型都非常擅长预测但它们都能得到不同的正确预测结果通过把它们组合在一起我们可以根据它们所有不同的优势组合成一个超级模型。#inordertomakethefinalpredictionsmorerobusttooverfittingdefblended_predictions(X):return(0.1*ridge_model_full_data.predict(X)(0.2*svr_model_full_data.predict(X)(0.1*gbr_model_full_data.predict(X)(0.1*xgb_model_full_da
16、ta.predict(X)(0.1*lgb_model_full_data.predict(X)(0.05*rf_model_full_data.predict(X)(0.35*stack_gen_model.predict(np.array(X)交融模型分为四种类型包括混合型Bagging使用随机选择的不同数据子集训练多个根底模型并进展交换。让根底模型对最终的预测进展投票。常用于随机森林算法RandomForestsBoosting迭代地训练模型并且在每次迭代之后更新获得每个训练例如的重要程度。常用于梯度增强算法GradientBoostingBlending训练许多不同类型的根底模型并在一
17、个holdoutset上进展预测。从它们的预测结果中再训练一个新的模型并在测试集上进展预测用一个holdoutset堆叠Stacking训练多种不同类型的根底模型并对数据集的k-folds进展预测。从它们的预测结果中再训练一个新的模型并在测试集上进展预测模型比照权重以及偏向让我们可以用一行代码来跟踪以及比拟模型的性能表现。选择要测试的模型后对其进展训练并添加wandb.log(score:cv_score)来记录模型的运行状态。完成训练之后你就可以在一个简单的控制台中比照模型的性能了#WandBimportwandbimporttensorflow.kerasfromwandb.kerasim
18、portWandbCallbackfromsklearn.model_selectionimportcross_val_score#Importmodels(Step1:addyourmodelshere)fromsklearnimportsvmfromsklearn.linear_modelimportRidge,RidgeCVfromxgboostimportXGBRegressor#Model1#Initializewandbrun#Youcanchangeyourprojectnamehere.Formoreconfigoptions,sees:/docs.wandb/docs/ini
19、t.htmlwandb.init(anonymousallow,projectpick-a-model)#Initializemodel(Step2:addyourclassifierhere)clfsvm.SVR(C20,epsilon0.008,gamma0.0003)#GetCVscorescv_scorescross_val_score(clf,X_train,train_labels,cv5)#Logscoresforcv_scoreincv_scores:wandb.log(score:cv_score)#Model2#Initializewandbrun#Youcanchange
20、yourprojectnamehere.Formoreconfigoptions,sees:/docs.wandb/docs/init.htmlwandb.init(anonymousallow,projectpick-a-model)#Initializemodel(Step2:addyourclassifierhere)clfXGBRegressor(learning_rate0.01,n_estimators6000,max_depth4,min_child_weight0,gamma0.6,subsample0.7,colsample_bytree0.7,objectivereg:li
21、near,nthread-1,scale_pos_weight1,seed27,reg_alpha0.00006,random_state42)#GetCVscorescv_scorescross_val_score(clf,X_train,train_labels,cv5)#Logscoresforcv_scoreincv_scores:wandb.log(score:cv_score)#Model3#Initializewandbrun#Youcanchangeyourprojectnamehere.Formoreconfigoptions,sees:/docs.wandb/docs/in
22、it.htmlwandb.init(anonymousallow,projectpick-a-model)#Initializemodel(Step2:addyourclassifierhere)ridge_alphas1e-15,1e-10,1e-8,9e-4,7e-4,5e-4,3e-4,1e-4,1e-3,5e-2,1e-2,0.1,0.3,1,3,5,10,15,18,20,30,50,75,100clfRidge(alphasridge_alphas)#GetCVscorescv_scorescross_val_score(clf,X_train,train_labels,cv5)#
23、Logscoresforcv_scoreincv_scores:wandb.log(score:cv_score)就这样在有了所有的工具以及算法之后就可以为你的问题选择正确的模型了模型的选择可能是非常复杂的但我祈望本指南能给你带来一些启发让你找到模型选择的好方法。原文链接s:/lavanya.ai/2019/09/18/part-ii-whirlwind-tour-of-machine-learning-models/*本文为AI科技大本营编译文章转载请微信联络1092722531精彩推荐点击浏览原文或者扫描文首贴片二维码所有CSDN用户都可介入投票以及抽奖活动参加福利群每周还有优选学习资料、技术图书等福利发送推荐浏览 “一百万行Python代码对任何人都足够了你点的每个“在看我都认真当成了AI