前言
回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。例如,工作经验与薪水之间的关系,最好的研究方法就是回归。
回归分析是建模和分析数据的重要工具。在这里,我们使用曲线/线来拟合这些数据点,在这种方式下,从曲线或线到数据点的距离差异最小。
1 数据预处理
这里导入我们需要的库,值得注意的是,这里比第一天多了一个matplotlib.pyplot,matplotlib是python上的一个2D绘图库, matplotlib下的模块pyplot是一个有命令样式的函数集合, matplotlib.pyplot是为我们对结果进行图像化作准备的。
这里我们需要使用pandas的iloc(区分于loc根据index来索引,iloc利用行号来索引)方法来对数据进行处理,第一个参数为行号,:表示全部行,第二个参数 :1表示截到第1列(也就是取第0列)
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
dataset = pd.read_csv("studentscore.csv")
X = dataset.iloc[ : , : 1].values
Y = dataset.iloc[ : , 1].values
from sklearn.model_selection import train_test_split
# 拆分数据,0.25为测试集
X_train, X_test, Y_train, Y_test, = train_test_split(X,Y,test_size=0.25,random_state=0)
2 训练线性回归
from sklearn.linear_model import LinearRegression
#对训练集进行训练
regressor = LinearRegression()
regressor = regressor.fit(X_train,Y_train)
3 预测训练结果
Y_pred = regressor.predict(X_test)
4 可视化
训练集结果可视化
plt.title("Hours Vs Score (Training set)")
plt.xlabel("Studying Hours")
plt.ylabel("Student's score")
plt.scatter(X_train,Y_train,color = "red")
plt.plot(X_train,regressor.predict(X_train),'bo-')
plt.show()
训练结果:
测试集结果可视化
plt.title("Hours Vs Score (Testing set)")
plt.xlabel("Studying Hours")
plt.ylabel("Student's score")
#散点图
plt.scatter(X_test,Y_test,color= "red")
#线图
plt.plot(X_test,Y_pred,'bo-')
plt.show()
我会持续更新的我的机器学习笔记······
相关代码:Github
欢迎大家Star哟~