机器学习是什么
机器学习为:在进行特定编程的情况下,给予计算机 学习能力的领域
什么是有监督学习?什么是无监督学习
监督学习指的就是我们给学习算法一个数据集(训练集)。这个数据集由“正确答案”组成
训练集有输入有输出是有监督学习,包括所有的回归算法分类算法,比如线性回归、决策树、神经网络、KNN、SVM等;
无监督学习中,数据集没有任何的标签或者是有相同的标签。所以我们已知数据集,却不知如何处理,也未告知每个数据点是什么
无监督学习就是运行一个聚类算法(无监督学习算法),把不同的个体,归入不同类或者归为不同的类型的人
常见的无监督学习算法有聚类算法,鸡尾酒会算法
什么是回归问题?什么是分类问题
回归 这个词的意思是,我们在试着推测出这一系列连续值属性
分类指的是,我们试着推测出离散的输出值,如是否是肿瘤(是为1,不是为0)
单变量线性回归与多变量线性回归
假设函数
单变量线性回归 h𝜃(𝑥) = 𝜃0 + 𝜃1𝑥
多变量线性回归h𝜃(𝑥) = 𝜃0 + 𝜃1𝑥1 + 𝜃2𝑥2+. . . +𝜃𝑛𝑥𝑛
代价函数:平方误差函数
在线性回归当中自动寻找代价函数建模误差最小的参数的算法有:梯度下降算法,正规方程(选择的参数决定了得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距就是建模误差)
(1)梯度下降算法(以多变量线性回归为例):
梯度下降具体来说就是选择一个学习率,然后求偏微分,不停的迭代,直到收敛,收敛的标准是当代价函数J(x)在某次迭代中减少的数值小于 10-3 次方时,就认为已经收敛
(2)正规方程算法
不用像梯度下降要指定学习率,也不用迭代求偏微分,直接可通过以下方程,获取当代价函数J(𝜃) 的最小值时对应的参数𝜃
注意:使用正规方程不用进行特征缩放
梯度下降和正规方程的区别
总结一下,只要特征变量的数目并不大,标准方程是一个很好的计算参数𝜃的替代方法。 具体地说,只要特征变量数量小于一万,我通常使用标准方程法,而不使用梯度下降法
梯度下降的三个实用技巧
(1)特征缩放
使用梯度下降,需要进行特征缩放。特征缩放时,可能还要进行均值归一化
(2)学习率的选择
梯度下降算法的每次迭代受到学习率的影响,如果学习率𝑎过小,则达到收敛所需的迭 代次数会非常高;如果学习率𝑎过大,每次迭代可能不会减小代价函数,可能会越过局部最 小值导致无法收敛。
可以参考的学习率
𝛼 = 0.01,0.03,0.1,0.3,1,3,10
先找一个最小的学习率,再找一个太大的学习率,然后取一个最大可能值或比最大值小一些的值,作为学习率
(3)向量化
梯度下降的偏微分计算,可以进行向量化,提高计算的效率
未向量化前
向量化后的公式
正规方程在矩阵不可逆的情况下的解决方案
(1)XT.X不可逆的情况下,仍然可以使用Octave 里面的伪逆函数pinv 获取正确的结果
(2)一些已经线性相关的特征,如x1=(3.28)平方* x2,这时候可以去掉x2这个特征
(3)如果特征太多(比如样本m太少,而特征n太多),可以删除一些特征,或者使用正则化方法
线性回归的使用技巧
(1)特征选取
可以将两个特征的乘积,作为一个新的特征
(2)多项式回归
在假设函数h(x)加入多项式(二次方,三次方,平方根),更好的拟合样本点
逻辑回归(二分类问题和多分类问题)
逻辑回归算法解决分类问题,二分类问题和多分类问题都可以
假设函数
h𝜃(x)=0.5 是假设函数的阀值,高于这个阀值则预测样本结果y=1,低于则预测样本结果y=0 ,注意h𝜃(x)在分类问题中,表示概率 h𝜃(𝑥) = 𝑃(𝑦 = 1|𝑥; 𝜃)
判定边界
下图都是判定边界,可以是直线,也可以使用多项式来适应复杂的判定边界
h (𝑥)=𝑔(𝜃 +𝜃 𝑥 +𝜃 𝑥 +𝜃 𝑥2 +𝜃 𝑥2)
代价函数
逻辑回归当中自动寻找代价函数建模误差最小的参数的算法有:(1)梯度下降
除了 使用梯度下降,逻辑回归当中还可以用以下3个高级算法获取到代价函数最小值时对应的参数
(2)共轭梯度法 (3)BFGS(变尺度法) (4)L-BFGS(限制变尺度法)
逻辑回归(处理多元分类问题)
(1)多分类转化为二分类
我们将多个类中的一个类标记为正向类(𝑦 = 1),然后将其 他所有类都标记为负向类,这个模型记作h(1) (𝑥)。接着,类似地第我们选择另一个类标记为
正向类(𝑦 = 2),再将其它类都标记为负向类,将这个模型记作 h(2)(𝑥),依此类推。
(2)转化后的假设函数
h(𝑖)(𝑥) = 𝑝(𝑦 = 𝑖|𝑥; 𝜃)其中:𝑖 = (1,2,3. . . . 𝑘)
(3)分别训练逻辑回归分类器
现在要做的就是训练这个逻辑回归分类器:h(𝑖)(𝑥), 𝜃
其中 𝑖 对应每一个可能的 𝑦 = 𝑖,
(4)作出预测
给出输入一个新的 𝑥 值,用 这个做预测。我们要做的就是在我们三个分类器里面输入 𝑥,然后我们选择一个让 h(𝑖)(𝑥)
最大的𝑖,即max h(𝑖)(𝑥)
输入x的样本,h1(x) 为0.4 ,h2(x)为0.3 ,h3(x)为0.2,那么预测该样本x,对应为y=1(因为i=1是,h(x)最大)
拟合,欠拟合,过拟合
拟合:所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1, λ2,…,λn),使得该函数与已知点集的差别(最小二乘意义)最小
一类是模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);
另一类是模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)就是说测试集上误差太大,不能泛化
发现过拟合怎么处理?
1.丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一 些模型选择的算法来帮忙(例如 PCA)
2.正则化。 保留所有的特征,但是减少参数的大小(magnitude)。
正则化
其中𝜆又称为正则化参数(Regularization Parameter)。 注:根据惯例,我们不对𝜃0 进
行惩罚
因为如果我们令 𝜆 的值很大的话,为了使 Cost Function 尽可能的小,所有的 𝜃 的值
(不包括𝜃0)都会在一定程度上减小。但若 λ 的值太大了,那么𝜃(不包括𝜃0)都会趋近于 0,这样我们所得到的只能是一条 平行于𝑥轴的直线。
线性回归正则化
逻辑回归正则化