学习sklearn_岭回归笔记

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

#载入数据
data = genfromtxt(‘文件名’,delimiter=’,’)
#genfromtxt()获取数值型数据,delimiter分隔符

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

#创建模型
#生成50个λ值(λ为岭系数)
alphas_to_test = np.linspace(0.001,1)
#linespace(x,y,n)生成n个x-y之间的值,默认值为50个
#创建模型,保存误差值
#利用RidgeCV可以自动求适合的λ值
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))
#mean是均值
#选取岭系数值得位置
plt.plot(model.alpha_,min(model.cv_values_.mean(axis=0)),‘ro’)
plt.show()
#输出如下岭系数与loss值得关系图,图中红色点为RidgeCV求得的最适合的岭系数值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
scikit-learn中的岭回归(Ridge Regression)通过对系数进行惩罚来解决线性回归中的过拟合问题。岭回归的核心思想是在目标函数中增加一个由系数的平方和与一个正则化参数α(一般需要手动设置)的乘积,使得在拟合训练数据的同时能够限制模型的复杂度。 下面是使用scikit-learn中的岭回归的基本步骤: 1.导入需要的库 ```python from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split ``` 2.准备数据 首先需要准备训练数据,包括特征矩阵X和目标变量y。这里假设数据已经被处理成这样的形式,并且已经被分成了训练集和测试集: ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0) ``` 3.创建模型 创建岭回归模型并设置正则化参数α: ```python ridge = Ridge(alpha=1.0) ``` 4.训练模型 使用训练数据来拟合模型: ```python ridge.fit(X_train, y_train) ``` 5.评估模型 使用测试数据来评估模型的性能: ```python score = ridge.score(X_test, y_test) ``` 完整的代码如下所示: ```python from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split # 准备数据 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0) # 创建模型 ridge = Ridge(alpha=1.0) # 训练模型 ridge.fit(X_train, y_train) # 评估模型 score = ridge.score(X_test, y_test) ``` 需要注意的是,α的取值可以通过交叉验证等方法进行调整,以得到最好的模型性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值