基于Scikit-learn的机器学习基本算法(一)线性回归

关于线性回归的数学原理本文不作赘述(懒得敲公式。。。),各种机器学习入门的书籍和帖子里应该都有,直接上在Python里面的使用方法。

首先构建一个随机训练数据集,需要符合线性关系。

import numpy as np
from numpy import random
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

import matplotlib.pyplot as plt
plt.plot(X, y, "b.")
训练数据

第二步即需要使用scikit-learning的工具来做线性回归。

from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(X, y)

来看一下拟合后的模型:

lin_reg.intercept_, lin_reg.coef_

(array([4.02040005]), array([[3.04161372]]))

可以看到与我们构建的模型参数吻合度很高。

接下来我们来做一个预测,构建测试数据(0和2):

X_new = np.array([[0], [2]])
y_predict = lin_reg.predict(X_new)

最后我们将训练数据和模型做一个可视化:

plt.plot(X, y, "b.")
plt.plot(X_new, y_predict, "r-")
预测结果

本节需要记忆的语法:

1. random.rand(d0, d1, ..., dn) #生成[0, 1)之间的随机数
2. random.randn(d0, d1, ..., dn) #生成正态分布随机数
3. lin_reg = LinearRegression() #新建一个线性回归模型
4. lin_reg.fit(X, y) #拟合线性回归模型
5. y_predict = lin_reg.predict(X_new) #对测试数据进行预测
6. plt.plot(X, y, "b.") #画图,横坐标X,纵坐标y,颜色blue,形状点

你可能感兴趣的:(基于Scikit-learn的机器学习基本算法(一)线性回归)