100-Days-Of-ML-Code Day2 简单线性回归模型

简单线性回归模型|第2天

Steps

Datasets

Hours Scores
0 2.5 21
1 5.1 47
2 3.2 27
3 8.5 75
4 3.5 30
5 1.5 20
6 9.2 88
7 5.5 60
8 8.3 81
9 2.7 25
10 7.7 85
11 5.9 62
12 4.5 41
13 3.3 42
14 1.1 17
15 8.9 95
16 2.5 30
17 1.9 24
18 6.4 67
19 7.4 69
20 2.7 30
21 4.8 54
22 3.8 35
23 6.9 76
24 7.8 86

Code

第1步:数据预处理

1
2
3
4
5
6
7
8
9
10
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

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

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

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

1
2
3
4
5
6
7
8
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
#普通最小二乘线性回归LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)
#fit_intercept是否计算此模型的借距
#normalize设置为False 时,将忽略此参数。如果为True,则回归量X将在回归之前通过减去平均值并除以l2范数来归一化
#如果为True,则将复制X; 否则,它可能会被覆盖
#n_jobs设定工作的core数量
regressor = regressor.fit(X_train,Y_train)

第3步:预测结果

1
Y_pred = regressor.predict(X_test)

第4步:可视化

训练集结果可视化

1
2
3
plt.scatter(X_train,Y_train,color = 'red')#根据数组绘制散点图
plt.plot(X_train,regressor.predict(X_train),color = 'blue')#绘制坐标图
plt.show()

测试集结果可视化

1
2
3
plt.scatter(X_test,Y_test,color = 'red')
plt.plot(X_test,Y_pred,color = 'blue')
plt.show()