学习机器学习100天系列_Day02_简单线性回归

学习机器学习100天系列_Day02

  • 简单线性回归:
    • 目的:使用单一特征来预测响应值;
    • 怎么找最佳拟合线:
    • 步骤:

简单线性回归:

目的:使用单一特征来预测响应值;

这是一种基于自变量值(x)来预测因变量(y)的方法,假设这两个变量是线性相关的,因此可以尝试寻找一种根据特征或者自变量(x)的线性函数来描述和预测(y)值

怎么找最佳拟合线:

在这个回归任务,我们将通过找到”最佳拟合线”来最小化预测误差—回归线误差最小,简单来说就缩小预测值(拟合值)与真实值(测量值)的差距。

步骤:

1、 数据预处理
上一篇文章的6个步骤;

2、 通过训练集来训练简单线性回归模型
使用sklearn.liner_model中的LinearRegression类
先实例化LinearRegression类再使用fit方法拟合训练集

3、 预测结果
使用fit出的模型返回的LinearRegression类中的predict类预测测试集的结果

4、 可视化
使用matplotlib.pyplot中的plot画出拟合线,使用scatter画出训练集的散点


#第一步数据预处理

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

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

print(X)
print(Y)

from sklearn.impute import SimpleImputer

simp = SimpleImputer(missing_values=np.nan, strategy="mean")

simp.fit(X)
X = simp.fit_transform(X)

from sklearn.model_selection import train_test_split

X_trian, X_test, Y_trian, Y_test = train_test_split(X, Y, test_size=1/4, random_state= 0)

print(X_trian)
print(X_test)
print(Y_trian)
print(Y_test)

#第二步 训练集使用简单线性回归模型来训练

from sklearn.linear_model import LinearRegression

LinerReg= LinearRegression()

LinerReg.fit(X_trian,Y_trian)

#第三步 预测结果

Y_Pred = LinerReg.predict(X_test)
print("预测:")
print(Y_Pred)
print("增益")
print(LinerReg.coef_)
print("偏置")
print(LinerReg.intercept_)

#可视化
plt.scatter(X_trian, Y_trian,marker= 'p', color='green')
plt.plot(X_trian,LinerReg.predict(X_trian),color= 'blue')
plt.show()

plt.scatter(X_test, Y_test, color='red')
plt.plot(X_test, LinerReg.predict(X_test), color='blue')
plt.show()

结果图:
学习机器学习100天系列_Day02_简单线性回归_第1张图片

学习机器学习100天系列_Day02_简单线性回归_第2张图片

你可能感兴趣的:(机器学习100Day,机器学习,学习,python)