100天机器学习实践之第2天

2019-08-20 11:30:03 浏览数 (1)

这是github上的一个项目,地址在这儿,作者@# Avik-Jain。


Day 2, 简单线性回归

使用一个特征值预测结果

这是一种基于独立的变量X预测相关变量Y的方法。这种方法假设两个变量线性相关。因此,我们的目标是找到一种函数,能够根据X尽可能精确地预测Y值。

如何找到最佳拟合直线

在这个回归模型中,我们试图通过找到“最佳拟合直线”来最小化误差——找到的回顾直线误差是最小的。我们尽量使样本值Yi与预测值Yp之间的长度最小。

这个任务中,我们将会根据学生学习的时长预测其分数。

Step 1:预处理数据

我们会按照上一节的步骤来处理数据。

  • 导入库
  • 导入数据集
  • 检查缺失数据
  • 分割数据
  • 特征值规范化以准备使用简单线性回归模型
代码语言:javascript复制
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

dataset = pd.read_csv('../datasets/studentscores.csv')
X = dataset.iloc[:,:1].values
Y = dataset.iloc[:,1].values

from sklearn.cross_validation import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X,Y,test_size=1/4,random_state=0)

Step 2:使用训练数据训练简单线性回归模型

我们将使用sklearn.linear_modelLiearRegression类训练数据。然后产生LinearRegression类的regressor对象。现在我们将使用fit()方法将数据载入到回归对象中。

代码语言:javascript复制
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)

Step 3:预测结果

现在我们将用测试数据集预测结果,输出将保存到向量Y_pred中。为了预测结果,我们使用LinearRegression类的预测方法。

代码语言:javascript复制
Y_pred = regressor.predict(X_test)

Step 4:可视化

最后的步骤是可视化我们的结果。我们会用matplotlib.pyplot库打印散点图,可视化训练集与测试集结果,对比我们预测的模型与实际值接近程度。

可视化训练集

代码语言:javascript复制
plt.scatter(X_train, Y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color='blue')

图片.png

可视化测试集

代码语言:javascript复制
plt.scatter(X_test, Y_test, color='red')
plt.plot(X_test, regressor.predict(X_test),color='blue')

图片.png

0 人点赞