100-Days-Of-ML-Code
中文版《机器学习100天》
GitHub :https://github.com/MLEveryday/100-Days-Of-ML-Code
分为四步走:
1、数据预处理
# Data Preprocessing
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('D:\PycharmProjects\DataSet\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)
iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。
2、训练集使用简单线性回归模型来训练
# Fitting Simple Linear Regression Model to the training set
from sklearn.linear_model import LinearRegression
regressor = LinearRegression() #先创建一个LinearRegression类的regressor对象
regressor = regressor.fit(X_train, Y_train) #使用LinearRegression类的fit()方法对数据集进行训练
LinearRegression 拟合一个带有系数 w = (w_1, …, w_p) 的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。
3、预测结果
# Predecting the Result
Y_pred = regressor.predict(X_test) #使用LinearRegression类的predict()方法预测来自测试集的结果,并把输出保存在Y_pred向量中
4、可视化
使用matplotlib.pyplot库对训练集和测试集结果绘制散点图,查看模型预测效果。
(1)训练集结果可视化
# Visualising the Training results
plt.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='yellow')
plt.show()
结果如下:
(2)测试集结果可视化
# Visualizing the test results
plt.scatter(X_test , Y_test, color = 'black')
plt.plot(X_test , regressor.predict(X_test), color ='blue')
plt.show()
结果如下:
完整代码如下:
# Data Preprocessing
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('D:\PycharmProjects\DataSet\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)
# Fitting Simple Linear Regression Model to the training set
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
# Predecting the Result
Y_pred = regressor.predict(X_test)
# Visualising the Training results
plt.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='yellow')
plt.show()
# Visualizing the test results
plt.scatter(X_test , Y_test, color = 'black')
plt.plot(X_test , regressor.predict(X_test), color ='blue')
plt.show()