import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model
from sklearn.metrics import mean_absolute_error,r2_score
# Load the dataset 糖尿病 看源码呗
diabetes = datasets.load_diabetes()
# use only one featrue np.newaxis:(:,) 变成(:,1)的矩阵,增加维数
diabetes_x = diabetes.data[:,np.newaxis,2]
# splite the data into training/testing sets
diabetes_x_train = diabetes_x[:-20]
diabetes_x_test = diabetes_x[-20:]
# splite the targets into training/testing sets
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
# create linear regression object
regr = linear_model.LinearRegression()
# training the model
regr.fit(diabetes_x_train,diabetes_y_train)
# make predictions using the testiong set
diabetes_y_pred = regr.predict(diabetes_x_test)
# the cofficients
print(regr.coef_)
print(diabetes_y_pred)
print("mean squared error:%.2f"%mean_absolute_error(diabetes_x_test,diabetes_y_pred))
print("variance scor:%.2f"%r2_score(diabetes_y_test,diabetes_y_pred))
# Plot outputs
plt.scatter(diabetes_x_test, diabetes_y_test, color=‘black‘)
plt.plot(diabetes_x_test, diabetes_y_pred, color=‘blue‘, linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
remark:
>>>X[:, 1][:, np.newaxis] #索引数组的一列 如果没有[:,np.newaxis]索引的结果是一行,X[:, 1][:, np.newaxis]可以简化为:X[:, np.newaxis, 1]
Linear least squares,Lasso,ridge regression有何本质区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linear least squares,Lasso,ridge regression有何本质区别相关的知识,希望对你有一定的参考价值。
参考技术A Linear least squares,Lasso,ridge regression他们的区别是1、Linear least squares
意思是最小二乘法。
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。
2、Lasso
意思是套索算法。
套索工具源于Photoshop,在Photoshop CS6中,需要自由绘制出形状不规则的选区时,可以使用套索工具。选择使用套索工具后,在图像上拖拽鼠标指针绘制选区边界,松开鼠标左键时,选区将会进行自动闭合。
套索工具算法,通过构造一个惩罚函数获得一个精炼的模型;通过最终确定一些指标的系数为零,套索工具算法实现了指标集合精简的目的。这是一种处理具有复共线性数据的有偏估计。套索工具的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0的回归系数,得到解释力较强的模型。R统计软件的Lars算法的软件包提供了套索工具算法。根据模型改进的需要,数据挖掘工作者可以借助于套索工具算法,利用AIC准则和BIC准则精炼简化统计模型的变量集合,达到降维的目的。因此,套索工具算法是可以应用到数据挖掘中的实用算法。
3、ridge regression
意思是岭回归算法。
在回归分析中,用一种方法改进回归系数的最小二乘估计后所得的回归称为岭回归算法。
在多元回归方程中,用最小二乘估计求得的回归系数值尽管是其真值β=(β0,β1,···βp)1的无偏估计,但若将与β分别看成p+1维空间中两个点的话,它们之间的平均距离E(—β)1(-β)(称为均方差)仍可能很大,为减小此均方差,用(k)=(X′X+KI)-1X′Y去代替2,称(K)为β的岭回归估计。其中X为各变量的观测值所构成的一个n×(p+1)阶矩阵,Y是随机变量的观测值组成的n维向量,I为p+1阶单位阵,K是与未知参数有关的参数,选择它使E[(K)-β]1[(K)-β]达到最小。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
sklearn-least squares(data set of diabetes)
以上是关于Linear least squares,Lasso,ridge regression有何本质区别的主要内容,如果未能解决你的问题,请参考以下文章
Least Squares & Nearest Neighbors
Least square method using matlab
当 scipy.optimize.minimize 可能用于相同的事情时,为啥 scipy.optimize.least_squares 存在?