一、Naive Bayes朴素贝叶斯
1. 特点
常用于文档分类和垃圾邮件过滤,假设特征间独立(所以叫朴素)。
需要训练集量少,训练快。
擅长分类,不擅长估计,结果的p值不必太认真对待。
2.种类
对P(xi|y)选择不同的分布使得NB分类器不同
1)高斯分布 sklearn.naive_bayes.GaussianNB
2) 多项式分布sklearn.naive_bayes.MultinomialNB
3) 伯努利分布sklearn.naive_bayes.BernoulliNB
二、Decision Tree决策树
1. 特点
好理解,可视
无需数据归一化,无需定义哑变量,但不支持缺失值
可处理数值型和分类型数据
容易过拟合,要修剪
树不稳定,用随机森林可以缓解
要预先使各类样本量平衡,否则树会有偏向
2. 注意
容易overfit,所以减少feature(降维),减少sample
3.各种算法区别
ID3:只接受分类变量,最大信息增益(熵),先建立最大的树,再修剪
C4.5:继承ID3,但使用信息增益率,可接受连续变量(会对其离散化),在树的构造过程中修剪。
CART:类似C4.5,接受目标变量是连续型,用gini指标算不纯度。
sklearn选用的是一个优化版的CART算法
三、Support Vector Machine SVM
1.特点
针对高维数据有效,甚至维数大于样本数时
建模完成后,只需存储少量的支持向量,节省存储
SVM不直接计算概率,而是用five-fold交叉验证法计算,花费较高(可以选择不计算)
数据需要归一化
2.多分类情况处理
SVC和NuSVC采用one-against-one策略,因此实际有n(n-1)/2个分类器
LinearSVC采用one-against-the rest策略,有n-1个分类器
OneClassSVM是非监督学习分类
3.注意
C惩罚因子值默认1,表示有多重视离群点,如果数据噪音大,可调低
一定要归一化数据
如果样本分类不平衡,可以用参数class_weight=‘balanced’
样本量最好不超过10000
4.核函数 linear、polynomial、rbf、sigmoid
5.SVR
是用SVM的方法做回归分析,不同的是,SVM是寻求一个最优化超平面使两类样本点分的最开,而SVR是寻求一个最优超平面,使所有样本点总偏差最小。
四、Nearest Neighbor
KNeighborsClassifier:找到K个最相近的点投票
RadiusNeighborsClassifier:找到半径内所有点投票
通常neighbors投票的权重都一样,weight=‘distance’,可以定义离得越近投票权重越大。
五、logistic regression
六、Ensemble methods
分两类:
1)平均方法,多分类器结果取平均
2)boosting methods 分类器逐个地建立起来,一个分类器可降低另一个的偏差,目的是联合起来多个弱的分类器。
RandomRorestClassifier:有放回取样;一个节点分裂时,从随机一组features中选最优;
AdaBoostClassifier:通过改进数据-->建模,这样多次迭代,得到多个分类器,然后看投票结果。最初所有样本的权重一样,一次建模后,预测错误的样本权重加大,预测正确的样本权重减小,再建模。
七、Multi-layer Perceptron多层感知机MLP
1.特点
适合非线性问题,可实时学习
用随机参数找残差和最低点时,最低点不只一个,所以不同的随机初始值会有不同结果。
激活函数:某个神经元接受了上一层神经元值加权和作为输入,用激活函数值作为输出
代价函数:用来计算输出值和实际值误差的,一般用二次代价函数
采用反向传播训练:一次前向传播后,计算出总误差,公式推导可得到总误差与上层某个权重的关系,调整这个权重值,