您的位置:首页 > 其它

【sklearn】——1. 广义线性模型 Generalized Linear Models

2018-02-27 15:26 671 查看
1.线性回归Linear Regression#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 18/2/27 上午11:25
# @Author : cicada@hole
# @File : lineModel.py
# @Desc : 第一节广义线性模型
# @Link : http://scikit-learn.org/stable/modules/linear_model.html
# reg = linear_model.LinearRegression() #线性回归
# reg.fit([[0, 0, 0],[1, 1, 1],[2, 2,2]],[0, 1, 2]) # 前边是x的列表,后边是对应的y值,即 y= w0x0+w1x1
# print(reg.coef_)# coef_拟合参数
# rt = reg.predict([[2,2,2],[3,4,3],[3,1,0]])
# print(rt)

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

class LinearRegression:

# 加载糖尿病数据集
diabetes = datasets.load_diabetes()

#使用一个特征
diabetes_X = diabetes.data[:, np.newaxis, 2] #np.newaxis的功能是插入新维度

#把数据分成训练集和测试集
diabetes_X_train = diabetes_X[:-5]
diabetes_X_test = diabetes_X[-5:]
diabetes_y_train = diabetes.target[:-5]
diabetes_y_test = diabetes.target[-5:]

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

#用训练集训练数据
regr.fit(diabetes_X_train, diabetes_y_train)

#预测结果
diabetes_y_pred = regr.predict(diabetes_X_test)

print(np.hstack((diabetes_y_test,diabetes_y_pred)))
#打印系数
print('Coefficients: \n', regr.coef_)

#最小均方差
print("Mean squared error: %.2f"
% mean_squared_error(diabetes_y_test, diabetes_y_pred))
print('Variance score: %.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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: