欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机器学习的一些概念

程序员文章站 2022-04-22 19:01:35
...

机器学习的一些概念

1**.**有监督学习(Supervised Learning)****:我们给学习算法一个数据集,这个数据集由“正确答案”组成
2。无监督学习(Unsupervised Learning):无监督学习中没有任何的标签或者是有相同的标签或者就是没标签。针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。无监督学习算法可能会把这些数据分成两个不同的簇,所以也叫做聚类算法。
3.泛化能力(generalization ability):是指机器学习算法对新样本的适应能力。 机器学习的目的就是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力

线性回归

是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析,其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。

原理:

   F检验  -它是一种在零假设(null hypothesis, H0)之下,统计值服从F-分布的检验
   如果是选择“用F检验的概率值”,越小代表这个变量越容易进入方程。原因是这个变量的F检验的概率小,说明它显著,也就是这个变量对回归方程的贡献越大,进一步说就是该变量被引入回归方程的资格越大。究其根本,就是零假设分水岭,例如要是把进入设为0.05,大于它说明接受零假设,这个变量对回归方程没有什么重要性,但是一旦小于0.05,说明,这个变量很重要应该引起注意。这个0.05就是进入回归方程的通行证

公式:

1.假设函数(Hypothesis )
2.代价函数(Cost Function)
3.目标函数(Goal):使得代价函数最小
机器学习的一些概念当我们给一组数据集分别为(0,0);(1,1);(2,2);
假设函数分别设为:y=0+0x; y=0+0.5x; y=0+x; y=0+2x;
根据假设函数我们可以分别算出不同theta1 (0,0.5,1)下的代价函数值,然后作图,可以看到在theta1=1时,代价函数最小,此时我们假设函数和数据集拟合的最好。
机器学习就是通过神经网络训练帮我们找出theta,使得代价函数最小,拟合效果达到最好
那么有哪些方法可以帮我们找到最合适的theta呢?
优化方法:
**1.梯度下降算法(Gradient Descent):**开始时我们随机选择一个参数的组合(????0, ????1, . . . . . . , ????????),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值
机器学习的一些概念
从不同的点开始(设定的初始参数theta不同),最后我们得到的局部最小值会不同。但是数学家已经证明只要神经网络层数够多,最后的局部最小值和我们的全局最小值基本接近甚至就是全局最小值。

机器学习的一些概念
牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f (x)的泰勒级数的前面几项来寻找方程f (x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。

具体步骤:
  首先,选择一个接近函数 f (x)零点的 x0,计算相应的 f (x0) 和切线斜率f ’ (x0)(这里f ’ 表示函数 f 的导数)。然后我们计算穿过点(x0, f (x0)) 并且斜率为f '(x0)的直线和 x 轴的交点的x坐标,也就是求如下方程的解:
机器学习的一些概念
  我们将新求得的点的 x 坐标命名为x1,通常x1会比x0更接近方程f (x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。迭代公式可化简为如下所示:
机器学习的一些概念
  已经证明,如果f ’ 是连续的,并且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果f ’ (x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。下图为一个牛顿法执行过程的例子。
  由于牛顿法是基于当前位置的切线来确定下一次的位置,所以牛顿法又被很形象地称为是"切线法"。牛顿法的搜索路径(二维情况)如下图所示:
  机器学习的一些概念
拟合表现:
在我们通过代价函数找到合适的theta,但是我们假设函数阶数可能太小也可能太大,导致预测趋势在新的数据集表现的并不好,即泛化能力不好
假设我们要在10 个不同次数的二项式模型之间进行选择:
机器学习的一些概念
显然,阶数越高,对于训练集的拟合越好,但是对于新的测试集呢?我们可以画出三种类型的假设函数对于同一组数据的表现
机器学习的一些概念
**1.欠拟合(高偏差):**设定的阶数太小,导致高偏差
2.刚刚合适:阶数设定非常合适
**3.过拟合:**阶数设定太高,导致高方差,在训练集中拟合的非常吻合,但是在新的测试集中拟合效果不太好,不能正确表现数据中的规律

线性回归的评估:
为了检验算法是否过拟合,我们将数据分成训练集和测试集,通常用70%的数据作为
训练集,用剩下30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,通常我们要对数据进行“洗牌”,然后再分成训练集和测试集
机器学习的一些概念
评价指标:误分率
机器学习的一些概念
交叉验证:
使用60%的数据作为训练集,使用 20%的数据作为交叉验证集,使用20%的数据
作为测试集
机器学习的一些概念
模型选择的方法为:

  1. 使用训练集训练出10 个模型
  2. 用10 个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)
  3. 选取代价函数值最小的模型
  4. 用步骤3 中选出的模型对测试集计算得出推广误差(代价函数的值)

sklearn参数详解
LinearSVC

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:正则化参数,L1和L2两种参数可选,仅LinearSVC有。
loss:损失函数,有‘hinge’和‘squared_hinge’两种可选,前者又称L1损失,后者称为L2损失,默认是是’squared_hinge’,其中hinge是SVM的标准损失,squared_hinge是hinge的平方。
dual:是否转化为对偶问题求解,默认是True。
tol:残差收敛条件,默认是0.0001,与LR中的一致。
C:惩罚系数,用来控制损失函数的惩罚系数,类似于LR中的正则化系数。
multi_class:负责多分类问题中分类策略制定,有‘ovr’和‘crammer_singer’ 两种参数值可选,默认值是’ovr’,'ovr’的分类原则是将待分类中的某一类当作正类,其他全部归为负类,通过这样求取得到每个类别作为正类时的正确率,取正确率最高的那个类别为正类;‘crammer_singer’ 是直接针对目标函数设置多个参数值,最后进行优化,得到不同类别的参数值大小。
fit_intercept:是否计算截距,与LR模型中的意思一致。
class_weight:与其他模型中参数含义一样,也是用来处理不平衡样本数据的,可以直接以字典的形式指定不同类别的权重,也可以使用balanced参数值。
verbose:是否冗余,默认是False.
random_state:随机种子的大小。
max_iter:最大迭代次数,默认是1000。

对象
coef_:各特征的系数(重要性)。
intercept_:截距的大小(常数值)