knn算法:优点:模型简单,计算精度高,对异常值不敏感;缺点:计算复杂,效率低
决策树:计算快,输出结果易理解,对中间缺失值不敏感,不用做标准化,不关心特征值间是否依赖。缺点:产生过拟合
朴素贝叶斯:较少数据下仍能获得较好效果,可以处理多类别问题;
缺点:特征之间可能不是完全独立;
通过先验和数据来决定后验的概率从而决定分类,会存在误差(先验概率如计算样本总数据中,1类概率,0类的概率);
对输入数据的表达形式很敏感
SVM:
优点:1、在深度学习出现之前最好的分类算法,它既可应用于线性(回归问题)分类,也可应用于非线性分类;
2、过调节核函数参数的设置,可将数据集映射到多维平面上,对其细粒度化,从而使它的特征从二维变成多维,将在二维上线性不可分的问题转化为在多维上线性可分的问题,最后再寻找一个最优切割平面;
缺点:
1、对大规模数据训练比较困难(计算复杂度高)
2、无法直接支持多分类,但是可以使用间接的方法来做
AdaBoost:Adaptive Boosting,中文含义是自适应提升算法,是一种集成学习,基于bagging(有放回构建n个样本,同时投票选举的方式进行分类)和boosting(再学习,可以是多个不同的分类器,且每个分类器权重不同,多个弱分类器构成强分类器)
1)Bagging + 决策树 = 随机森林
2)AdaBoost + 决策树 = 提升树
3)Gradient Boosting + 决策树 = GBDT
逻辑回归:
优点:处理二分类问题,实现简单,分类时计算量非常小,速度很快;
缺点:
1、容易欠拟合,导致准确度不高,只能处理二分类;
2、数据特征有缺失或者特征空间很大时表现效果并不好。
应用:
1、信用评估;
2、 测量市场营销的成功度;
3、 预测某个产品的收益;
4、特定的某天是否会发生地震。
过拟合处理:
(1)增加训练样本
(2)正则化:理解:regularizer(规则项),规则化就是...向你的模型加入某些规则,加入先验,缩小解空间,减小求出错误解的可能性。
(3)Dropout:设置丢弃一些数据
欠拟合:
(1)、特征少了,增加新特征;
(2)、减少正则化参数
(3)、考虑集成学习(多个弱分类器)