近期有国外大神在github上写了100天入门机器学习:
国外大神的100天入门机器学习
也有人进行了汉化:汉化版
仅以此记录,一起学习!
第二天:
简单线性回归模型
- 数据预处理
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)
这里的内容都是第一天的,对数据预处理,这里不再重复阐述
- 训练集使用简单线性回归模型来训练
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
LinearRegression 拟合一个带有系数 w = (w_1, …, w_p) 的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。里面有参数:fit_intercept:是否有截据,如果没有则直线过原点;normalize:是否将数据归一化;copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写;n_jobs:默认值为1,计算时使用的核数。
- 预测结果
Y_pred = regressor.predict(X_test)
通过第二步的拟合操作,线性回归模型已经训练完毕,通过predict方法,输入测试数据来预测产生的结果Y_pred,和Y_test比较,可以得到模型的准确率是多少。
- 可视化
训练集结果可视化
plt.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='blue')
plt.show()
测试集结果可视化
plt.scatter(X_test , Y_test, color = 'red')
plt.plot(X_test , regressor.predict(X_test), color ='blue')
plt.show()
总结,第二天是将数据线性拟合,然后可视化,这是最简单的一个线性拟合过程,其中其实主要涉及到的还是sklearn中线性回归模型linear_model的使用,还有通过matplotlib.pyplot的使用对其做可视化(即画图)
感谢Avik-Jain和MLEveryday,前者制作了这个项目,后者进行了汉化