sklearn.linear_model之LinearRegression

          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


  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值