广义线性模型

概述

在这里插入图片描述

理论推导

请添加图片描述
在这里插入图片描述

线性回归算法

在这里插入图片描述

实验步骤

1 安装并引入必要的库

!pip install numpy==1.16.0
!pip install scikit-learn==0.22.1
import numpy as np
from sklearn import datasets, linear_model, model_selection

2 数据分析处理

在这里插入图片描述

2.1 加载数据

我们需要从sklearn的datasets导入数据集并对数据集命名:

diabetes = datasets.load_diabetes()

现在我们来看看diabetes数据集的类型和数据。 该类型应该是’Bunch’,它是一个类似于字典的对象,特别适用于加载sklearn内部示例数据集:

print(type(diabetes))
print(diabetes)

让我们来看看这个数据集的描述(description)了解更多的信息:

print(diabetes.DESCR)

让我们来看看这个数据集的样本特征集和样本标签:

print('******data******')
print(diabetes.data)
print('******target******')
print(diabetes.target)

让我们来看看这个数据集的样本特征集和样本标签的形状。 注意,样本特征集的形状是一个元组:

print (diabetes.data.shape)
print (diabetes.target.shape)

2.2 拆分数据

利用model_seletion模块中的train_test_split函数,用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集样本、测试集样本、训练集标签、测试集标签,并分别被定义为:X_train, X_test, y_train, y_test:

X_train, X_test, y_train, y_test = model_selection.train_test_split(diabetes.data,diabetes.target,test_size=0.25, random_state=0)

参数解释:

  • diabetes.data:被划分的diabetes样本特征集
  • diabetes.target: 被划分的样本标签
  • test_size:如果是浮点数,在0-1之间,表示样本占比;如果是整数的话就是样本的数量
  • random_state:是随机数的种子

让我们来看看训练集样本X_train、测试集样本X_test、训练集标签y_train、测试集标签y_test:

print('######X_train######')
print(X_train)
print('######X_test######')
print(X_test)
print('######y_train######')
print(y_train)
print('######y_test######')
print(y_test)

让我们来看看训练集样本X_train、测试集样本X_test、训练集标签y_train、测试集标签y_test的形状:

print('######X_train######')
print(X_train.shape)
print('######X_test######')
print(X_test.shape)
print('######y_train######')
print(y_train.shape)
print('######y_test######')
print(y_test.shape)

3 拟合预测

3.1 线性回归模型

在这里插入图片描述
现在创建一个名为regr的LinearRegression实例:

regr = linear_model.LinearRegression()

利用regr模型训练X_train和y_train:

regr.fit(X_train, y_train)

回归评价:

print('Coefficients:%s, intercept %s' % (regr.coef_,regr.intercept_))
print("Residual sum of squares: %.2f"% np.mean((regr.predict(X_test) - y_test) ** 2))
print('Score: %.2f' % regr.score(X_test, y_test))

3.2 岭回归

在这里插入图片描述
现在创建一个名为regr_R的Ridge实例:

regr_R = linear_model.Ridge()

利用regr_R模型训练X_train和y_train:

regr_R.fit(X_train, y_train)

回归评价:

print('Coefficients:%s, intercept %s'%(regr_R.coef_,regr_R.intercept_))
print("Residual sum of squares: %.2f"% np.mean((regr_R.predict(X_test) - y_test) ** 2))
print('Score: %.2f' % regr_R.score(X_test, y_test))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追阳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值