【python机器学习100天—2022年】Day2-简单线性回归

大家好,我是ly甲烷,后端开发也有做算法的心呀 ,我们来学习python机器学习
github有37.1k star的机器学习100天原项目地址https://github.com/Avik-Jain/100-Days-Of-ML-Code
之前的机器学习100天有很多库或者函数已经不用了,还有刚入门机器学习可能很多函数或者设置搞不明白,
所以,从python基础无缝到机器学习的教程来了。博主亲自操作一遍过的记录,绝对细致。如果学不会可以评论区讨论,如果我懂,我会回复的。

今天是机器学习第二天——简单线性回归 。前一天——数据预处理。

相关概念

1.1 什么是回归?

回归实际上就是“最佳拟合”。
根据已有的数据拟合出一条最佳的直线、曲线、超平面或函数等,用于预测其它数据的目标值。

1.2 什么是线性回归?

由已有的数据拟合出最佳的直线,然后用这个直线的线性关系去预测其他数据。比如一直蜗牛在沿直线往前走,我们观察它,一秒钟的时候在1cm处,两秒钟的时候在2cm处,三秒钟的时候在3cm处…等等我们可以预测十秒钟时它在10cm处,这就是线性回归。当然这个问题很简单在于我们知道速度、时间、路程的物理关系。对于有些不那么明显的线性关系的,机器学习就可以帮我们找出来,比如通过鸢尾花的花瓣长度与宽度的线性关系来预测花瓣宽度

1.数据预处理

import pandas as pd
from sklearn.model_selection import train_test_split
# 第一步:数据预处理
dataset = pd.read_csv(r'E:\workspace\python_workspace\datasets\studentscores.csv')
X = dataset.iloc[:, :1].values
Y = dataset.iloc[:, 1].values

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=1/4, 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.可视化显示

import matplotlib.pyplot as plt
# 训练集结果可视化
plt.scatter(X_train, Y_train, color='red')  # 绘制实际数据的散点图
plt.plot(X_train, regressor.predict(X_train), color='blue')   # 绘制预测的直线

# 测试集结果可视化
plt.scatter(X_test, Y_test, color='red')
plt.plot(X_test, regressor.predict(X_test), color='blue')
plt.show() # 展示图像

最终结果

训练集可视化结果:
【python机器学习100天—2022年】Day2-简单线性回归_第1张图片
预测集可视化结果
【python机器学习100天—2022年】Day2-简单线性回归_第2张图片
蓝色直线是预测的结果,红点是数据实际的分布,可以看到,预测的结果还不错。

函数学习

matplotlib.pyplot.scatter :散点图
matplotlib.pyplot.plot : 绘制为线条

plt.plot() 函数详解:https://zhuanlan.zhihu.com/p/258106097


今日总结:
完整的机器学习流程差不多就是这样: 数据预处理——训练模型——预测结果——可视化显示
当然最强的是搭建模型,我们先学会用别人搭建好的模型吧~


今天就到这里啦,如果不懂,可以调试调试,看看变量是怎么变的,有不足和错误的地方欢迎大家指正
大家可以在评论区留下足迹 ⭐️、留下遇到的问题哦。或者你也可以记录学习博客,留下你的博客地址
每天半小时,100天打卡挑战,让我们学会机器学习~

你可能感兴趣的:(python机器学习,python,机器学习,线性回归)