scikit-learn学习笔记(3)

时间:2022-09-30 23:51:57

1.1.2 Ridge Regression(Tikhonov Regularization)

我也没找到中文翻译叫什么,这个东西用来使线性非良设定问题(linear ill posed problem)正规化(regularization)

ill-posed problem对应well-posed problem,日语翻译为良设定问题,比中文翻译为适定性问题更恰当,这里要吐槽一下现代的翻译,我是学计算机的,所以见过各种翻译的光怪陆离的中文软件开发教材,术语翻译的驴唇不对马嘴,词不达意更别提信达雅,表达晦涩至不如机器翻译,甚至能感受到浓浓的英语文法,真是难为了那些专业弱英语弱中文也弱的人了,反观大学里相对基础的数学书籍翻译的就好太多了,但是很多新兴词在百度百科中的翻译汇仍然不尽如人意,害得我去看日语怎么翻译,好在老祖宗给力教会了他们些汉字

这种尴尬的翻译问题迫使绝大多数人都放弃阅读中文文献,即便我坚信中文是世界上*的语言,但是我们的学者不给力啊

跑题了,回归到正题

非良设定就是一个问题无法找到合理的独一无二的解决方案,RR通过减少系数的个数来解决问题,如下面python代码所述,通过引入alpha来控制减少系数的程度

from sklearn import linear_model reg = linear_model.Ridge (alpha = .5) reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) reg.coef_ reg.intercept_

scikit-learn提供了一个例子(轻点打开),这个例子将alpha变化所带来的系数变化绘制在了一个图里, 这个例子展示了对一个估计量的系数的影响

估计量是一个通过样本提供信息估计总体参数(前面几篇中各处提到的β)的方法或者公式,在rr中,每改变alpha都会得到一个新的评估量,而能否得到一个新的β要看样本,以上面那个简单的python代码为例,最终只能得到4个左右的不同coefficient。

在这个例子的图里,不同颜色表示系数变量的特征(这里的特征(feature)就是组成系数向量的里面的每一个值v=(a,b,c),那么v有3个特征),所以ax.plot(x,y)所做的就是,假设x=(1,2,3),y=((2,3),(3,4),(5,6)),画2条线,第一条线是((x1,y11),(x2,y21),(x3,y31)),第二条((x1,y12),(x2,y22),(x3,y32))

所以从图中能看出,alpha越接近0,意味着估计量更接近OLS,而随着alpha增大,coefficient的值震荡幅度减少集中也越接近于0

1.1.2.1 RR的时间复杂度

和OLS一样是O(np^2)

1.1.2.2 设置正规化参数:Generalized Cross-Validation

scikit提供的RidgeCV实现了了这个功能,通过使用RidgeCV来fit一组观察值,可以得到一个alpha值