对应<机器学习实战>P146的岭回归公式
#--------------------------------------------------------------------------------------------------------------------------------------------
上面的不太详细,来个详细版本的吧。
变量 | 定义 | 举例 | 属性 |
矩阵,输入array是一个二维数组,每一行是一个样本(一条数据),每一列是一个特征(一条数据的特征的取值)。 所以,举例中是三条数据,你可以想象一下: xi=(是否长发,声音高低频) yi=(根据上述属性判断此人是男是女)
显然,李宇春只有上述两个属性,可以被分类器误判为男的。(只是举例,没有人身攻击的意思)
| |||
列向量 | |||
列向量 |
sklearn代码如下:
from sklearn.linear_model import Ridge
X = [[1,2],[2,3],[4,5]]
y = [1.5,2.5,4.5]
clf.fit(X,y)
print(clf.intercept_)
0.14406779661017
print(clf.coef_)
[0.47457627 0.47457627]
所以根据上述实验结果可知,岭回归中有如下关系
Y=XW+误差列
#--------------------------------------------------------------------------------------------------------------------------------------------
我们的目标是求时,矩阵中每个元素的取值
那么为了求得最小值,令=0(高中的知识,极小值处,导数为0)
注意,这里不要基于上面的式子展开,否则下面的计算量会比较大
=(因为行向量乘以列向量=一个数)
=(这里注意,中不存在因子,所以无需对求导)
(有人会想,我要的不就是Y=WX吗?怎么会中不存在因子呢?)
注意,这里的是你的真实数据,是你对真实数据集建模后得到的系数,前者来自客观世界,后者是你主观建模。
=
=
==0
=>
=>
这里是一个列向量,是一个对角矩阵
这个证明最困难的地方是哪里?
需要一开始就十分清楚X、Y、W的严格定义以及各自的维度,这样才能顺利推导下来。
至于决定他们维度的依据,Y其实是整套数据集的类别标签,X其实是不带类别标签的裸数据集,W是模型系数。
另外注意:
根据参考文献[2]可知:
Z is assumed to be standardized (mean 0, unit variance) (标准化)
y is assumed to be centered(必须减去平均值)
参考:
[1]https://arxiv.org/pdf/1509.09169.pdf
[2]http://statweb.stanford.edu/~tibs/sta305files/Rudyregularization.pdf