最近系统学习scikit-learn,记录一下以便于以后查找运用方便,如果有错误也欢迎大家指正。
实验结果如图所示:
代码:
# -*- coding: utf-8 -*-
'''
Created on 2017-2-15
@author: admin
'''
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
#加载数据,并且将训练集和数据集进行分割。
diabetes = datasets.load_diabetes()
diabetes_X = diabetes.data[:, np.newaxis, 2]
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
# 创建训练模型
regr = linear_model.LinearRegression()
# 通过训练数据训练模型
regr.fit(diabetes_X_train, diabetes_y_train)
#输出模型系数
print('Coefficients: ', regr.coef_)
# 输出错误差值平方均值
print("Residual sum of squares: %.2f"
% np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % regr.score(diabetes_X_test, diabetes_y_test))
# Plot outputs
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue',
linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
LinearRegression参数:
fit_intercept:为true则计算截距,否则不计算。
normalize:为true,则先将X标准化,在进行计算。
copy_X :为true,X被复制,否则被重写。
n_jobs:If -1 all CPUs are used. This will only provide speedup for n_targets > 1 and sufficient large problems.
属性:
coef_:为线性模型的系数
intercept:为截距。
函数:
fit(X, y, sample_weight=None):训练线性模型:
X:训练数据
y:训练数据标签。
sample_weight:对于每个样本的权重。
get_params(deep=True):得到模型的参数。
predict(X):预测X的结果
X:测试数据
score(X, y, sample_weight=None):验证识别效果
X:测试数据
y:标签数据
sample_weight:样本权重
set_params(**params):设置模型参数。
本博客为博主辛苦总结,如有转载,请附原地址链接:http://blog.csdn.net/u014662865/article/details/55194199