广义线性模型之最小二乘法

广义线性模型是线性模型的扩展,它通过联结函数建立响应变量的数学期望值与线性组合的预测变量之间的关系,其特点是不强行改变数据的自然度量,数据可以具有非线性和非恒定方差结构。下列是一组用于回归的方法,其中y是x的线性组合。

普通最小二乘法

以下代码是使用第三方糖尿病数据集diabetes中的第一个特征说明图中的特点。

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model
from sklearn.metrics import mean_squared_error,r2_score

#加载糖尿病数据集
diabetes_X,diabetes_y=datasets.load_diabetes(return_X_y=True)
#只使用一个功能
diabetes_X=diabetes_X[:,np.newaxis,2]
#将数据拆分为训练/测试集
diabetes_X_train=diabetes_X[:-20]
diabetes_X_test=diabetes_X[-20:]
#将目标划分为“训练/测试"类
diabetes_y_train=diabetes_y[:-20]
diabetes_y_test=diabetes_y[-20:]

#创建线性回归对象
regr=linear_model.LinearRegression()

#使用训练集训练模型
regr.fit(diabetes_y_train,diabetes_y_train)

#使用测试集进行预测
diabetes_y_pred=regr.predict(diabetes_X_test)
#系数
print('系数:\n',regr.coef_)
#均方误差
print('均方误差:%.2f'
      % mean_squared_error(diabetes_y_test,diabetes_y_pred))
#确定系数:如果是1则为完美预测
print('确定系数:%.2f'
      % r2_score(diabetes_y_test,diabetes_y_pred))
#输出绘图
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()

执行后

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

抽象保安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值