一、机器学习的一些概念
-
监督学习(supervised learning):使用有标记的的训练数据构建模型,之后可以使用经训练得到的模型对未来数据进行预测。分类和回归就是监督学习的代表。
-
无监督学习(unsupervised learning):使用无标记的训练数据构建模型。聚类是无监督学习的代表。
-
泛化能力(generalization):学得模型适用于新样本的能力。
-
过拟合(overfitting):当学习器把训练样本自身的一些特点当作了所有样本潜在的一般性质,会导致泛化能力下降。
-
欠拟合(underfitting):对训练样本的一般性质尚未学好。
-
方差、偏差及解决办法:
-
交叉验证法(cross validation)
先将数据集 D D D 划分为 k k k 个大小相似的互斥子集,即 D = D 1 ∪ D 2 . . . ∪ D k , D i ∪ D k ≠ ∅ ( i ≠ j ) D = D_{1} \cup D_{2}...\cup D_{k}, D_{i}\cup D_{k} \ne \emptyset(i\ne j) D=D1∪D2...∪Dk,Di∪Dk̸=∅(i̸=j)。每个子集 D i D_{i} Di 都尽可能保持数据分布的一致性,即从 D D D 中分层采样得到。然后每次用 k − 1 k - 1 k−1 个子集的并集作为训练集,余下的那个作为测试集;这样可获得 k k k 组训练/测试集,从而进行 k k k 次训练和测试,最终返回的为 k k k 个测试结果的均值。
二、线性回归
一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。
三、线性回归损失函数、代价函数、目标函数
-
损失函数(Loss Function ):定义在单个样本上的,算的是一个样本的误差。
-
代价函数(Cost Function ):定义在整个训练集上的,是所有样本误差的平均,即损失函数的平均。
-
目标函数(Object Function):最终需要优化的函数。其等于经验风险+结构风险。
四、优化方法(梯度下降法、牛顿法、拟牛顿法)
-
梯度下降法
假设某个函数就代表着一座山,则目标为找到这个函数的最小值,也就是山底。最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,即找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快。因为梯度的方向就是函数之变化最快的方向。 -
牛顿法
方法使用函数f (x)的泰勒级数的前面几项来寻找方程f (x) = 0的根。其收敛速度较快。 -
拟牛顿法
拟牛顿法改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。
五、线性回归的评估指标
- 残差估计
总体思想是计算实际值与预测值间的差值简称残差。从而实现对回归模型的评估,一般可以画出残差图,进行分析评估、估计模型的异常值、同时还可以检查模型是否是线性的、以及误差是否随机分布 - 均方误差
均方误差是线性模型拟合过程中,最小化误差平方和(SSE)代价函数的平均值。
六、sklearn参数详解
class sklearn.svm.LinearSVC(penalty='l2', loss='squared_hinge', dual=True, tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True, intercept_scaling=1, class_weight=None, verbose=0, random_state=None, max_iter=1000)
- penalty:正则化参数
- loss:损失函数
- dual:是否转化为对偶问题求解,默认是为True
- tol:残差收敛条件,默认是0.0001
- C:惩罚系数,用来控制损失函数的惩罚系数
- multi_class:负责多分类问题中分类策略制定
- fit_intercept:是否计算截距
- class_weight:用来处理不平衡样本数据的
- verbose:是否冗余,默认为false
- random_state:随机种子的大小
- max_iter:最大迭代次数,默认为1000