sklearn.linear_model之LinearRegression

云计算 waitig 874℃ 百度已收录 0评论

          sklearn.linear_model模型实现了广义线性模型,包括线性回归、Ridge回归、Bayesian回归等。今天我们就来学习较为简单的线性回归LinearRegression模型。


1.模型定义

 sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False,copy_X=True, n_jobs=1)

fit_intercept:布尔类型,可选参数;设置模型是否计算截距,false表示不使用截距。

-normalize:布尔类型,可选参数,默认值为false;设置为true之前,解释变量x将在回归前进行标准化。

-copy_X:布尔类型,可选参数,默认值为true;如果为true,x将被复制;否则被重写。

-n_jobs:int类型,可选参数,默认值为1;如果设为1,将启动所有CPU


2.几个常用的函数

fit(X,y, [sample_weight])  # 拟合线性模型

-X:训练数据,形状如 [n_samples,n_features]

-y:函数值,形状如 [n_samples, n_targets]

sample_weight: 每个样本的个体权重,形状如[n_samples]


get_params([deep])  # 获取参数估计量

set_params(**params) # 设置参数估计量


predict(X) # 利用训练好的模型进行预测,返回预测的函数值

-X:预测数据集,形状如 (n_samples, n_features)

score(X, y, [sample_weight]) # 返回预测的决定系数R^2

-X;训练数据,形状如 [n_samples,n_features]

-y;关于X的真实函数值,形状如 (n_samples) or (n_samples, n_outputs)

sample_weight:样本权重


3.示例演示

演示一:

from sklearn import linear_model # 导入线性模型

clf = linear_model.LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False) # 使用线性回归模型,并设置相关参数

clf.fit([[0,0],[1,1],[2,2]], [0,1,2]) # 给定数据训练模型

print clf.coef_ # 输出系数矩阵

输出结果:

[ 0.5  0.5]

演示二:

# 训练数据
train_data_x = [[1,2,3,4,5,6], [6,4,7,5,3,2], [2,6,5,4,3,7], [5,3,2,7,8,9], [-1,2,3,5,6,7]]
train_data_y = [[1,2], [2,3], [2,5], [1,6], [3,1]]

# 测试数据
test_data_x = [[1,2,3.1,4,5,6], [6,4.2,7,5,3,2], [2,6,5,4,3,7.2], [5,3,2,7,8.2,9], [-1,2.5,3,5,6,7]]
real_data_y = [[1,2], [2,3], [2,5], [1,6], [3,1]]
clf = linear_model.LinearRegression() # 使用线性回归模型
clf.fit(train_data_x, train_data_y) # 给定数据训练模型
predict_data_y = clf.predict(test_data_x)
print predict_data_y # 输出预测的函数值
print clf.score(test_data_x, real_data_y) # 输出R^2

输出结果:

[[ 1.06573794  1.97591703]
 [ 2.04586648  3.09993344]
 [ 1.97463002  5.11394548]
 [ 1.05480432  5.97126871]
 [ 3.11466621  1.2498336 ]]
0.99449933654


本文由【waitig】发表在等英博客
本文固定链接:sklearn.linear_model之LinearRegression
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)