简书:
简单的记录,有写于《统计学习方法》中明确的基本知识没记
线性模型
的形式: f(x⃗ )=w⃗ ⋅x⃗ +b f ( x → ) = w → ⋅ x → + b 广义线性模型
,包括岭回归、lasso回归、Elastic Net、逻辑回归、线性判别分析等普通线性回归
,平方损失函数,梯度下降法求解归一化
,(1)提升模型收敛速度,归一化前狭长椭圆形,归一化后圆形,迭代更快。(2)提升模型精度,取值范围大的严重影响小的效果。广义线性模型
, h(y)=w⃗ Tx⃗ +b h ( y ) = w → T x → + b ,如对数线性回归
, lny=w⃗ Tx⃗ +b ln y = w → T x → + b 逻辑回归
(logistic regression, LR),用于分类,用极大似然估计法估计,用梯度下降法或拟牛顿法求解线性判别分析
(Linear Discriminant Analysis, LDA)。目标:投影到一条直线上,是的同类相近,异类远离。推广后为将M维投影到M-1维,可用于监督降维调参
:先 α α 置0调学习率,再调 α α Python实战:
线性回归:LinearRegression
class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)
岭回归:Ridge Regression
class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver=’auto’, random_state=None)
Lasso回归:Lasso Regression
class sklearn.linear_model.Lasso(alpha=1.0, fit_intercept=True, normalize=False, precompute=False, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, positive=False, random_state=None, selection=’cyclic’)
ElasticNet回归:Elastic Net
class sklearn.linear_model.ElasticNet(alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False, precompute=False, max_iter=1000, copy_X=True, tol=0.0001, warm_start=False, positive=False, random_state=None, selection=’cyclic’)
逻辑回归:Logistic Regression
class sklearn.linear_model.LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=’liblinear’, max_iter=100, multi_class=’ovr’, verbose=0, warm_start=False, n_jobs=1)
#solver : {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’},小数据集适合liblinear,大数据集适合sag,newton-cg\lbfgs\sag只对l2
线性判别分析:Linear Discriminant Analysis
class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver=’svd’, shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)
#solver=svd适合大规模特征
特征选择;决策树生成;决策树剪枝
正则化的极大似然函数
作为损失函数熵、基尼系数、方差(回归)
离散化
处理 缺失
数据处理:把缺失样本划入所有子结点剪枝
:解决过拟合现象,由于模型过于复杂;目的在于提高泛化能力,在训练数据预测误差和模型复杂度的平衡。CART剪枝
:形成剪枝树序列,挑选最优剪枝树Python实战
回归决策树DecisionTreeRegressor
class sklearn.tree.DecisionTreeRegressor(criterion=’mse’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, presort=False)
分类决策树DecisionTreeClassifier
class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)
先验概率
,利用贝叶斯公式
计算后验概率
,选择最大后验概率全概率公式
: P(A)=∑nj=1P(A|Bj)P(Bj) P ( A ) = ∑ j = 1 n P ( A | B j ) P ( B j ) 贝叶斯定理
: P(Bi|A)=P(A|Bi)P(Bi)∑nj=1P(A|Bj)P(Bj) P ( B i | A ) = P ( A | B i ) P ( B i ) ∑ j = 1 n P ( A | B j ) P ( B j ) 贝叶斯估计
处理极大似然估计中可能出现的概率值为0的情况Python实战
高斯贝叶斯分类器GaussianNB
class sklearn.naive_bayes.GaussianNB(priors=None)
#可以追加训练
多项式贝叶斯分类器BernoulliNB
class sklearn.naive_bayes.BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
#可以追加训练
伯努利贝叶斯分类器BernoulliNB
class sklearn.naive_bayes.BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
#可以追加训练
k值选择、距离度量、决策规则
交叉验证
选择最优k值归一化
处理Python实战
KNN分类KNeighborsClassifier
class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights=’uniform’, algorithm=’auto’, leaf_size=30, p=2, metric=’minkowski’, metric_params=None, n_jobs=1, **kwargs)
KNN回归KNeighborsRegressor
class sklearn.neighbors.KNeighborsRegressor(n_neighbors=5, weights=’uniform’, algorithm=’auto’, leaf_size=30, p=2, metric=’minkowski’, metric_params=None, n_jobs=1, **kwargs)
降维
,指采用某种映射方法,将原高维空间中的数据点映射到低位空间中维度灾难
主成分分析
PCA,非监督降维 奇异值分解
SVD,等价于主成分分析,核心都是求解 XXT X X T 的特征值以及对应的特征向量核化线性降维
KPCA,对PCA的推广,实现非线性映射降维流行学习降维
,借鉴拓扑流形概念的降维方法,要求数据样本比较密集多维缩放降维
MDS,要求原始空间中样本之间的距离在低维空间中得到保持等度量映射降维
Isomap,简历近邻图(近邻个数、近邻距离),计算点之间最短距离,用MDS算法计算低维空间中的坐标。近邻范围控制不佳会导致短路和断路问题。对新样本要重新计算。局部线性嵌入
LLE,目标是保持临域内样本之间的线性关系Python实战
(略)
无监督学习
,主要工具时聚类
有效性指标
:同类相近,异类远离。外部指标(有参考模型),内部指标距离度量
,明可夫斯基距离、VDM距离原型聚类
,假设聚类结构能通过一组原型刻画。k-means、高斯混合聚类k-means
:选择初始中心->分簇->调整中心->迭代->over密度聚类
DBSCAN,假设聚类结构能够通过样本分布的紧密程度确定,通过邻域参数 (ϵ,MinPts) ( ϵ , M i n P t s ) 即(邻域距离、样本数量);概念:邻域、核心对象、密度直达、密度可达、密度相连;算法:从核心对象出发,寻找密度可达样本。层次聚类
:AGNES算法,首先将每个样本看作一个类,然后不断找距离最近的两个簇进行合并。EM算法
,一种迭代算法,用于含有隐变量的概率模型参数估计。每次分为两步——E步求期望,M步求极大支持向量机
SVM的基本模型是定义在特征空间上间隔最大的线性分类器感知机的损失函数
:误分类点到超平面S的总距离感知机的学习算法
:梯度下降法,迭代标准BP算法
:误差逆传播算法,每次对单个样本的误差最小化原则推导,迭代次数更多,存在样本间的抵消累计误差逆传播算法
:每次对整个T进行一轮迭代,对整体的误差最小化Boosting
:个体学习器之间存在强依赖关系,必须串行Bagging
:个体学习器之间不存在强依赖关系,可以并行自主采样法
,进行N次有放回重复独立采样形成采样集,则越有63.2%的样本出现在采样集中。采用M轮自主采样法,得到M个采样集,分别训练基学习器并组合随机森林
,以决策树为基学习器的Bagging算法,并引入了随机属性选择 多样性增强
:数据样本扰动(对不稳定学习器有效如决策树、神经网络;对稳定学习器无效,如线性学习器,支持向量机,朴素贝叶斯,KNN等);属性扰动(适合于含大量冗余属性,不适用于属性少的)唯一值
:删除缺失值
:直接使用,如决策树缺失值补全
:均值插补、同类均值插补、建模预测、高维映射(one-hot)、多重插补(估计+噪声)、压缩感知和矩阵补全特征编码
:二元化、独热编码(可处理非数值属性,扩充特征,属性稀疏)数据标准化
:使样本数据缩放到某个指定范围。原因:数量级大的属性占主导,收敛速度慢,所有依赖于样本距离的算法对数据的数量级都比较敏感。方法:min-max,z-score,数据正则化
:正则化过程针对单个样本,对核方法计算样本相似性有效特征选择
和降维技术是处理高维数据的两大主要方法,包括过滤式、包裹式、嵌入式过滤式选择
:Relief,判断两个样本在属性j上的差异值,若最终某个属性差异值很弱,可过滤;推广多分类为Relief-F包裹式选择
:直接把要是使用的学习器的性能作为特征子集的评价准则,需要多次训练。如LVW,通过随机产生特征子集来调整嵌入式选择和L1正则化
:L1范数会降低过拟合风险,得到的权重中大量为0,可以作为特征选择稀疏表示和字典学习