用scikit-learn掌握机器学习(一)线性回归

一、 简单线性回归

一般来讲回归是通过连续数据用来预测的,除了逻辑回归,那是个分类算法。线性回归是个监督算法,通过已有的样本和观测值(标签)构成训练数据,然后通过训练模型,来预测以后那些没有标签的样本数据。简单线性回归就是说 样本值和标签之间的关系是线性的。我们先讲一个单样本参数和单一标签的例子。一个通过披萨尺寸预测披萨价格的例子。

尺寸(inch) 价格(dollar)
6 7
8 9
10 13
14 17.5
18 18

我们可以先用matplotlib画出这些点的分布

import matplotlib.pyplot as plt
%matplotlib inline
X = [[6],[8],[10],[14],[18]]
y = [[7],[9],[13],[17.5],[18]]
plt.figure()
plt.title("pizza price plot against diameter")
plt.xlabel("diameter")
plt.ylabel("price")
plt.plot(X,y,".")
plt.axis([0,25,0,25])
plt.grid(True)

用scikit-learn掌握机器学习(一)线性回归_第1张图片

可以很明显从图上看出这是一个正相关的两个变量,我们可以用一条最优直线来预测价格
下面的模块调用sl来预测披萨价格

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X,y)
print("A 12 inches pizza cost:$%.2f" %model.predict(12))

out: A 12 inches pizza cost: 13.68sklearn.linearmodel.LinearRegressionestimatorfitpredictfitpredictfit线 13.68 在 这 个 程 序 片 段 里 s k l e a r n . l i n e a r m o d e l . L i n e a r R e g r e s s i o n 是 个 e s t i m a t o r 估 测 器 , 估 测 器 通 过 已 有 带 标 签 的 样 本 来 预 测 值 , 评 估 期 都 有 f i t ( ) 和 p r e d i c t ( ) 方 法 。 f i t 用 来 学 习 , p r e d i c t 用 来 预 测 f i t 方 法 学 习 到 了 这 个 简 单 线 性 回 归 的 参 数 theta 线 , 简 单 线 性 回 归 的 表 达 式 如 下 y=wx+b y = w x + b $
首先,我们定义出拟合成本函数,然后对参数进行数理统计。成本函数(cost function)也叫损失函数(loss function),用来定义模型与观测值的误差。模型预测的价格与训练集数据的差异称为残差(residuals)或训练误差(training errors)。
后面我们会用模型计算测试集,那时模型预测的价格与测试集数据的差异称为预测误差(prediction errors)或训练误差(test errors)。

你可能感兴趣的:(机器学习)