常见机器学习模型适用场景及优缺点_ykukey_csdn的博客-程序员秘密_机器学习模型有哪些

技术标签: 技术  机器学习  

如何确定业务适合的算法模型

训练集大小:大,小
大:不适合SVM,KNN,耗费内存
同时:适合低方差/高偏差模型(SVM),不适合高方差低偏差模型
特征空间维度:高维,低维
高维:适合SVM(文本分类),不适合KNN(适合低维度数据)
特征是否相互独立:独立,不独立
独立:朴素贝叶斯(前提:特征间相互独立)
是否为线性特征:线性,非线性
线性:逻辑回归(简单,可解释性强,线性可分数据下表现良好)
对拟合程度的要求:??
其他要求(性能,时间,空间):计算复杂,简单
复杂:不适合SVM,KNN
缺失值比例:多,少
svm,KNN涉及到距离计算的模型缺失值对模型效果影响较大

训练集大小

训练集较小时,选择高偏差/低方差的分类器,如朴素贝叶斯,比低偏差/高方差的分类器(如K近邻或Logistic回归)更有优势。
我的理解
因为训练集小,样本信息可能不全面,应该选择受到样本扰动影响较小的方法。但是随着训练集的增大,样本信息比较全面,此时应该选择算法本身性能较高的模型,即低偏差,高方差模型。

不同模型特点

线性模型

  1. 普通最小二乘法模型
  2. Lasso回归:普通+L1正则化项
  3. 岭回归:普通+L2正则化项

logistic回归

核心:通过sigmoid函数将线性模型拟合值转换为标签概率,并通过最小化交叉熵代价函数来获得最优系数

优点
模型简单
输出值具有概率意义

缺点
对于非线性决策边界的分类数据,效果一般;
为提高模型效果常需要对特征进行进一步非线性处理(连续变量离散化等)
受所有数据点影响,如果数据不平衡,要先进行平衡数据处理;

适用场景
需要容易解释(系数代表特征对结果影响程度),
问题针对构造的特征线性可分
构造的特征基本线性相关
常见于信贷风控点击率(ctr)预估

支持向量机SVM

核心:在约束条件下(无正则化,正则化),最大化支持向量所决定的超平面宽度

优点
在许多数据集表现优秀
核函数解决线性不可分问题
可有效解决高维度特征的数据集
支持向量角度:
(1)不受一类数据点影响,只受支持向量的影响
(2)决策超平面只受支持向量决定,计算复杂度取决于支持向量个数,不取决于维数,避免“维数爆炸”

缺点
要求较高的内存需求和繁琐的调参,不适用于大数据量数据集
核函数难以确定,一般靠经验
数据处理要求

适用场景
在许多数据集均有较好表现,‘无脑硬刚算法’
尤其是针对样本点聚集在决策边界附近的数据集,
常用于文本分类人脸识别
小样本,非线性,高维数据集

决策树

核心:if-else型,根据不同特征划分数据集

优点
对数据分布无要求,无任何假设,无论数据集是否线性可分
”if-else”规则便于解读与理解

缺点
结果不稳健,改变少量特征,或数值型数据微小变化就可以改变算法输出标签
容易过拟合

适用场景:需要可解释性强,非数值型数据,但是很少单用决策树

最近邻KNN

核心:根据距离最近的样本决定预测样本类型

优点:简单,对异常值不敏感

缺点
样本不平衡问题影响较大,
要求的存储空间大,计算复杂度高

适用场景:需要可解释性强(比如推荐算法),少量数据和大量低维数据

随机森林 / 极端随机树

核心:多棵“好而不同”的决策树投票,降低模型方差角度提高模型效能

优点
对数据分布没有任何假设,无论数据集是否线性可分(连续/不连续等,不需要规范化)
不需要太多调参就可以获得较好的准确度,克服了决策树易受攻击的缺点

缺点:容易过拟合

适用场景
数据维度相对较低(几十维),同时对准确性有较高要求时,
基本上不知道什么方法时都可以尝试,‘无脑硬刚算法’
常见于搜索排序相关性

GBM / XGBoost

核心:下一个学习器针对上一个学习器预测结果(预测残差)进行残差预测,[adaboost:下一个学习器针对上一个学习器分类错误样本加大权重,并预测],从减小模型偏差角度提高模型效果(有针对改进”偏科“现象)

适用场景
在大多数数据集表现良好,‘无脑硬刚算法’,
常见于搜索排序相关性

朴素贝叶斯

核心:条件概率公式+特征相互独立,根据样本先验概率,及似然函数,计算样本后验概率

优点:算法简单

缺点
要求特征间相关性小
需要各类先验概率

适用场景
需要可解释性强,
输入的特征重要性相等,特征间相关性较小
常见垃圾邮件过滤

神经网络

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ykukey_csdn/article/details/103532226

智能推荐

tomcat 单机多实例_tlk20071的博客-程序员秘密

环境tomcat:/home/tomcat-6.0.45oms-client站点程序:/home/oms-client/oms-book-client站点tomcat实例:/home/oms-client/tomcat6-sever1端口:38080bms-client 站点程序:/home/bms-client/bms-book-clien

修复被病毒破坏的Winsock_weixin_34376562的博客-程序员秘密

近来的病毒和恶意软件是越来越招人烦,即使你把它清除掉它还是让你的电脑受伤并痛着。最近单位的多台电脑感染了病毒,在清除病毒后,却发生IE无法浏览网页的现象,笔者在处理问题的过程中积累了一些经验,在这里与大家一同分享。故障现象(可能满足其中一条或多条)1、在病毒被查杀之前IE能够浏览网页,一旦病毒被查杀,IE将无法浏览网页;2、检查网络状况,发现电脑能够p...

linux时间戳导出,LinuxPTP时间戳的生成_weixin_39630744的博客-程序员秘密

ingress timestamp下面是收到message时如何生成ingress timestamp的相关内容。以下内容出自sk_receive函数,ts和sw分别表示以硬件时间戳和软件时间戳生成的ingress timestamp。struct cmsghdr *cm;struct msghdr msg;recvmsg(fd, &msg, flags);for (cm = CMSG_F...

delphi SimpleGraph控件的部分注释_cml2030的博客-程序员秘密

TSimpleGraph是一个delphi下的可视化图形开源控件,有很强编辑态和运行态编辑功能,是学习开发DELPHI控件的一个很好的例子,控件本身有很强的扩展性,完全可以自定义绘制各种图形.控件的地址为http://www.delphiarea.com/products/delphi-components/simplegraph/完全读懂这个控件,还是要读源码,吃透以下为零几年时首次...

使用ContentProvider_YuanHangDU的博客-程序员秘密

转载请注明出处: http://write.blog.csdn.net/mdeditor#!postId=51610936一、简介: ContentProvider 在Android中的作用是对外共享数据,也就是说可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对应用中的数据进行增、删、该、查。使用ContentPr

Pisces的属性配置文件加载_hangwen0305的博客-程序员秘密

系统中访问properties文件中定义的配置项是很常见的需求,jdk提供java.util.Properties类加载指定的配置文件(当然不一定从本地文件、任意来源的流对象也可以)。在一个大型系统中,我们有可能需要定义多个配置文件,如果每个文件都需要声明一个Properties与之对应,那么代码会显得很啰嗦。方法一:统一写一个加载工具类,可以,但是不见得最好。方法二:借助spring fr...

随便推点

B/S-软件发展的方向?_socoolfj的博客-程序员秘密

B/S-软件发展的方向?  一、什么是C/S和B/S   第一、什么是C/S结构。C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的W

云计算框架下基于信用的调度算法分析_zc_ft的博客-程序员秘密

整个程序是在Cloudsim3.0的框架下进行仿真的。

详解sprintf()&sprintf_s()_m0_37346206的博客-程序员秘密_sprintf_s

sprintf函数功能:把格式化的数据写入某个字符串头文件:stdio.h函数原型:int sprintf( char *buffer, const char *format [, argument] … );返回值:字符串长度(strlen)在将各种类型的数据构造成字符串时,sprintf 的功能很强大。sprintf 与printf 在用法上几乎一样,只是打印的目的地不同...

CSS之元素的显示与隐藏、CSS用户界面样式、溢出文字处理_zlinger1的博客-程序员秘密

元素显示隐藏的目的:主要目的是让一个元素在页面中消失,但是不是在文档源码中删除。最常见的是网站广告,当我们点击类似关闭不见了,但是我们重新刷新页面,依然会出现。display显示display设置或检索对象是否及如何显示。display:none 隐藏对象,与它相反的是display:block,除了转换为块级元素之外,同时还有显示元素的意思。特点:隐藏之后不再保留位置。visibil...

华为云数据中心建设全面复工进行中,预计2021年投入使用_NicolasLearner的博客-程序员秘密_华为江西云数据中心

华为云数据中心建设全面复工进行中,预计2021年投入使用(华为云贵州)推荐2020-04-13http://3g.donews.com/News/donews_detail/3089566.html位于贵州省贵安新区华为云数据中心A区项目施工现场,1000余名工人正在对工程进行紧张施工。华为云数据中心是由华为技术有限公司投资,中建四局第一建筑有限公司承建。该数据中心是集数据中心、生产交付中心、员工休息楼于一体的综合性建筑群。数据中心建设完工后,将有超过160个国家的重要数据机库在这里投入运...

推荐文章

热门文章

相关标签