监督学习:简单线性回归

本文介绍了如何在监督学习框架下,利用Scikit-Learn库进行简单线性回归模型的选择、超参数设置、数据整理、模型拟合及新数据的预测。详细步骤包括导入线性回归模型类,将数据转换为特征矩阵和目标数组,并通过fit()方法训练模型,最后使用predict()方法进行预测。
摘要由CSDN通过智能技术生成

监督学习:简单线性回归

为散点数据集(x,y)拟合一条曲线

import matplotlib.pyplot as plt
import seaborn as sns
sns.set();
import numpy as np
rng = np.random.RandomState(42)
x = 10 * rng.rand(50)
y = 2 * x - 1 + rng.randn(50)
plt.scatter(x, y);

在这里插入图片描述

1.选择模型类:

在 Scikit-Learn 中,每个模型类都是一个 Python 类。因此,假如我们想要计算一个简单
线性回归模型,那么可以直接导入线性回归模型类:

from sklearn.linear_model import LinearRegression

具体内容请参考 sklearn.linear_model模块文档(http://scikit-learn.org/stable/modules/linear_model.html)。

2.选择模型超参数

模型类与模型实例不同

model = LinearRegression(fit_intercept=True)
model

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

需要注意的是,对模型进行实例化其实仅仅是存储了超参数的值。我们还没有将模型应
用到数据上: Scikit-Learn 的 API 对选择模型将模型应用到数据区别得很清晰。

3.将数据整理成特征矩阵和目标数组

虽然我们
的目标数组已经有了 y(长度为 n_samples 的数组),但还需要将数据 x 整理成[n_samples, n_features]

X = x[:, np.newaxis]
X.shape

(50, 1)

4.用模型拟合数据

model.fit(X, y)

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

在Scikit-Learn中,所有通过fit()方法获得的模型参数都带一条下划线

In[10]: model.coef_      #斜率
Out[10]: array([ 1.9776566])
In[11]: model.intercept_ #截距
Out[11]: -0.90331072553111635

5.预测新数据的标签

在 Scikit-Learn 中,我们用 predict() 方法进行预测。“新数据”是特征矩阵的 x坐标值,我们需要用模型预测出目标数组的 y 轴坐标:

xfit = np.linspace(-1, 11)

Xfit = xfit[:, np.newaxis]
yfit = model.predict(Xfit)

plt.scatter(x, y)
plt.plot(xfit, yfit);

在这里插入图片描述


参考:https://jakevdp.github.io/PythonDataScienceHandbook/05.02-introducing-scikit-learn.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值