@100days of ml coding 简单线性回归
@100days of ml coding 简单线性回归
简单线性回归
100days of ml coding 中有多个机器学习算法,理解算法的意义后,使用sklearn库中的函数就可实现算法。
线性回归,是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。线性回归适用于有监督学习的预测。
线性回归分为简单线性回归及多元线性回归:
一元线性回归分析:y=ax+b,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示。
多元线性回归分析:hθ(x)=θ0+θ1x1+…+θnxn,包括两个或两个以上的自变量,并且因变量和自变量是线性关系。
本次实现简单线性回归。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('studentscores.csv')
#iloc比较简单,它是基于索引位来选取数据集
#0:4就是选取 0,1,2,3这四行,需要注意的是这里是前闭后开集合
#print(df.iloc[0:4,6:9])
#取得是index为0到3四行,以及第6到8列(从0列开始)3列数据
X = dataset.iloc[ : , 0:1].values #取dataset所有行,0到1列数据
Y = dataset.iloc[ : , 1:2 ].values
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test =train_test_split( X, Y, test_size = 0.2, 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.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='blue')
#x,y轴坐标名
plt.xlabel('Hours')
plt.ylabel("Score")
#可视化测试结果
plt.scatter(X_test , Y_test, color = 'red')
plt.plot(X_test , regressor.predict(X_test), color ='blue')
#for a,b in zip(X,Y):
# plt.text(a,b,(a,b))
#保存&显示图片
plt.savefig('./test.png')
plt.show()
以下根据数据集生成学习每天学习时间与分数的预测函数。