机器学习十讲——第二讲学习总结

矩阵的逆:

若A为可逆矩阵,则逆矩阵是唯一的。

判断矩阵是否可逆:行列式不等于0;满秩;行或列向量组线性无关。

机器学习十讲——第二讲学习总结
#求逆矩阵
import numpy as np
#格式化numpy输出
np.set_printoptions(formatter={'float':'{: 0.2f}'.format})
A = np.array([[4,5,1],[0,8,3],[9,4,7]])
#求行列式
print("行列式:"+str(np.linalg.det(A)))
#求逆
B = np.linalg.inv(A)
print("A的逆矩阵B")
print(B)
#结果验证
print("BA:")
print(B.dot(A))
print("AB:")
print(A.dot(B))
机器学习十讲——第二讲学习总结

机器学习十讲——第二讲学习总结

 .dot,.inv都是后面经常用到的东西,下面进入回归正题。

回归:

概述:最早由英国生物统计学家高尔顿和他的学生皮尔逊在研究父母亲和子女的身高遗传特性时提出,如今指用一个或多个自变量来预测因变量的·数学方法。在机器学习中,回归指的是一类预测变量为连续值有监督学习方法。

因变量:需要预测的变量(Y)

自变量:解释因变量变化的变量(X)

一元线性回归:

模型:y=w1*x+w0,其中w0,w1为回归系数

说明:给定训练集D={(x1,y1),…,(xn,yn)},我们的目标是找到一条直线y=w1*x+w0使得所有样本尽可能落在它的附近。

优化目标(均方误差):机器学习十讲——第二讲学习总结

求解:

机器学习十讲——第二讲学习总结

多元线性回归:

模型:y是多个特征的线性组合:y=w1*x1+w2*x2+…+wd*xd+w0

训练集:D={(x1,y1),…,(xn,yn)},

补充:xi为d维特征向量xi=(x11,x12,…,x1d)^T,设模型对xi的预测值为机器学习十讲——第二讲学习总结

优化目标(最小化均方误差):机器学习十讲——第二讲学习总结

注:寻找一个超平面,使得训练集中样本到超平面的误差平方和最小。

矩阵表示:

假设训练集特征部分记为n*(d+1)矩阵X,最后一列取值全为1。

标签部分记为y=(y1,y2,…,yn)^T,参数记为w=(w1,w2,…,wd,w0)^T

机器学习十讲——第二讲学习总结

多元线性回归模型就可以表示成下列形式:机器学习十讲——第二讲学习总结

优化目标的矩阵表示如下:

机器学习十讲——第二讲学习总结机器学习十讲——第二讲学习总结

其中w是未知量,Xy是已知量(训练集)。

将优化目标矩阵表示之后,可以进行参数估计:

 机器学习十讲——第二讲学习总结

线性回归问题:

问题1:实际数据可能不是线性的。

解决方法:多项式回归:使用原始特征的二次项,三次项。问题在于会发生维度灾难,过度拟合。

问题2:多重共线性。

机器学习十讲——第二讲学习总结

奇异:将X^TX展开时,由于共线性问题,极端情况下会有两行(列)是一样的。

解决方法:最简单的解决方法是在发生共线性的数据中仅选择一个,或者使用正则化,主成分回归,偏最小二乘回归

问题3:过度拟合问题:当模型变量过多时,线性回归可能会出现过度拟合问题。

解决方法:正则化:

机器学习十讲——第二讲学习总结

后加的项称为正则项惩罚函数,λ是自定义的超参数。q=2时:岭回归;q=1时:LASSO。

正则化模型介绍:

岭回归:目标函数:机器学习十讲——第二讲学习总结

w求导并令导数等于0易得:机器学习十讲——第二讲学习总结

注意在线性回归目标函数中w包括了w1-w0,而惩罚项中w里不包括w0,只包括w1-wd。

因此在求得结果中单位矩阵I的右下角处1改为0:

机器学习十讲——第二讲学习总结

岭迹:当不断增大正则化参数λ,估计参数(岭回归系数)机器学习十讲——第二讲学习总结

在坐标系上的变化曲线称为岭迹。岭迹波动很大,说明该变量有共线性。可根据岭迹做超参数λ的选择。