scikit-learn学习:Ordinary Least Squares

来源:互联网 发布:淘宝排名查询助手 编辑:程序博客网 时间:2024/05/12 20:49

最近系统学习scikit-learn,记录一下以便于以后查找运用方便,如果有错误也欢迎大家指正。

实验结果如图所示:


代码:

# -*- coding: utf-8 -*-'''Created on 2017-2-15@author: admin'''import matplotlib.pyplot as pltimport numpy as npfrom 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 predictionprint('Variance score: %.2f' % regr.score(diabetes_X_test, diabetes_y_test))# Plot outputsplt.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(Xysample_weight=None):训练线性模型:

X:训练数据

y:训练数据标签。

sample_weight:对于每个样本的权重。

get_params(deep=True):得到模型的参数。

predict(X):预测X的结果

X:测试数据

score(Xysample_weight=None):验证识别效果

X:测试数据

y:标签数据

sample_weight:样本权重

set_params(**params):设置模型参数。




本博客为博主辛苦总结,如有转载,请附原地址链接:http://blog.csdn.net/u014662865/article/details/55194199

0 0