sklearn之岭回归

岭回归(Ridge Regression)
如果数据的特征比样本点还多,数据特征n,样本个数m,如果n>m,则计算(XTX)的逆矩阵时会出错,因为(XTX)不是满秩矩阵,所以不可逆。(注:XT表示X的转置矩阵)

岭回归是有偏估计
岭回归代价函数这里就不贴了

选取λ值使得:
1.各回归系数的岭估计基本稳定;
2.残差平方和增大不多。

import numpy as np
from numpy import genfromtxt
from sklearn import linear_model
import matplotlib.pyplot as plt

# 导入数据
data = np.genfromtxt("C:\\ML\\chapter-1\\longley.csv",delimiter=",") # 这种方法只能读取数字,不能读取字符,字符会变成nan
print(data)

# 切分数据
x_data = data[1:,2:]
y_data = data[1:,1]
print(x_data)
print(y_data)

# 创建模型
# 生成50个值
alphas_to_test = np.linspace(0.001,1) # 默认是50,均匀变大
# 创建模型,保存误差值
model = linear_model.RidgeCV(alphas=alphas_to_test,store_cv_values=True)
model.fit(x_data,y_data)

# 岭系数
print(model.alpha_)
# loss值
print(model.cv_values_.shape)

# 画图
# 岭系数跟loss值的关系
plt.plot(alphas_to_test,model.cv_values_.mean(axis=0)) # axis=0代表方向
# 获取的岭系数值的位置
plt.plot(model.alpha_,min(model.cv_values_.mean(axis=0)),'ro')
plt.show()

print(model.predict(x_data[2,np.newaxis])) # x_data的带三行数据,是一维的,np.newaxis将其变为二维的,得到预测结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值