线性回归模型的sklearn实现

关于线性回归模型的知识总结,请参见这里。此处主要介绍线性模型的相关算法在sklearn中的实现:

一、线性回归(最小二乘法)

from sklearn.linear_model import LinearRegression
X, y = mglearn.datasets.make_wave(n_samples=60)#导入数据
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

lr = LinearRegression().fit(X_train, y_train)#拟合模型

print("lr.coef_: {}".format(lr.coef_))#输出系数(斜率)
print("lr.intercept_: {}".format(lr.intercept_))#输出截距(偏移量)

#准确率(模型效果)
print("Training set score: {:.2f}".format(lr.score(X_train, y_train)))
print("Test set score: {:.2f}".format(lr.score(X_test, y_test)))

#用训练好的模型求新数据的值
lr.predict(X_test)

二、岭回归

岭回归也是一种用于回归的线性模型,它要求系数w的所有元素都接近0(直观来看,既要求每个特征对输入的影响尽可能小,还要给出很好的预测结果)。这种约束就是所谓正则化的一个例子,正则化是指对模型做显式约束,以避免过拟合。岭回归用L2正则化。

from sklearn.linear_model import Ridge

X, y = mglearn.datasets.make_wave(n_samples=60)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

ridge = Ridge().fit(X_train, y_train)
print("Training set score: {:.2f}".format(ridge.score(X_train, y_train)))
print("Test set score: {:.2f}".format(ridge.score(X_test, y_test)))

Ridge模型在模型的简单性(系数都接近于0)与训练集性能之间做出权衡。简单性和训练集性能二者对于模型的重要程度可以由用户通过设置alpha参数来指定。alpha默认值为1,其最佳设定取决于具体的数据集。增大alpha会使得系数更趋于0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值