♐️ 零基础入门机器学习!从线性回归开始,30 分钟实现简单的机器学习预测

🌟 初识机器学习

🤔 什么是机器学习?
机器学习是让计算机从数据中学习规律,并做出预测或决策的技术。

就像教孩子认识动物一样,我们给计算机 “看” 大量数据,它就能学会识别模式和做出判断。

💡 为什么要学机器学习?

  • 自动化处理重复性决策任务
  • 从海量数据中发现隐藏规律
  • 构建智能预测系统
  • 未来最具竞争力的技能之一

接下里我将展示一些简单的例子,带你走进机器学习的世界

🎁 完整项目和数据集:Gitee仓库

🛠️ 环境准备

关于虚拟环境前文已有详细讲解 ⚠️ Python 环境乱成一锅粥?Conda 向你展示神力!

老规矩:激活 conda、创建该项目的虚拟环境、进入新环境、下载 sklearn 和 pandas

activate

conda create --name sklearn python==3.6.3
activate sklearn

pip install sklearn -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

📈 一元线性回归

案例:学习时长 vs 考试成绩

1.观察数据集

要求:根据学习时长预测学习成绩

在这里插入图片描述

聚集后两列,这个数据集十分简单,就是学习时长与成绩之间的关系,观察易发现,学习成绩大约是学习时长的 10 倍左右,呈线性分布。

2.取出关键数据

取出时长和成绩两列,用来给后续的机器模型 “学习”

X_data = data.loc[:, ['Hours']].values   # 学习时长
Y_data = data['Scores'].values           # 学习成绩

3.创建模型

直接导入现成的模型并训练

regressor = LinearRegression()             # 创建 regressor
regressor = regressor.fit(X_data, Y_data)  # 用 fit 方法对训练集进行训练

4.模拟数据并预测

假设有五个人他们的学习时长分别为 6.8,1.3,3.4,8.8,9.5 小时

让我们来期待一下上面这个机器模型给出的每个人的预测成绩

# 模拟需要预测的数据
test = [[6.8], [1.3], [3.4], [8.8], [9.5]]

# 预测
Y_pred = regressor.predict(test)
print(Y_pred)

5.预测结果展示

输出跟之前的假设一样:学习成绩为学习时长的 10 倍左右。说明该模型预测的结果具有一定可信度

在这里插入图片描述

💡 关键理解:

  • 模型学会了 “考试成绩 ≈ 10 × 学习时长” 的规律
  • 可用于预测新的学习时长对应的成绩

6.完整代码

# 根据学习时长预测成绩
import pandas as pd
# 导入sklearn的线性回归方法
from sklearn.linear_model import LinearRegression

# 定位到数据集
data = pd.read_csv('dataset/studentscores.csv')
X_data = data.loc[:, ['Hours']].values  # 传入学习时长
# 或者 X_data = data.iloc[:, 1:2].values
# 或者 X_data = np.array(data.loc[:, 'Hours']).reshape(-1, 1)
Y_data = data['Scores'].values  # 传入学习成绩
# print(X_data)


regressor = LinearRegression()             # 创建 regressor
regressor = regressor.fit(X_data, Y_data)  # 用 fit 方法对训练集进行训练

# 让上面这个训练好的模型预测一些数据, 使用predi函数
# 模拟需要预测的数据
test = [[6.8], [1.3], [3.4], [8.8], [9.5]]

# 预测
Y_pred = regressor.predict(test)
print(Y_pred)

📊 多元线性回归

案例:薪资&年龄 vs 贷款额度

是不是觉得上一个例子太过简单,那么接下来加点小难度,多加一个维度的训练数据(多元)

1.观察数据集

要求:根据薪资和年龄,预测出可贷款额度。

在这里插入图片描述

该多元线性回归的例子,拥有两个判断条件(薪资和年龄),观察易知,依然呈现线性关系。

2.取出训练数据

# 定位到数据集
data = pd.read_csv('dataset/loans.csv')
X_data = data[['salary', 'age']].values  # X数据为工资年龄两列, 手动构成二维列表
Y_data = data['loans'].values

3.创建模型

根据观察数据集发现,该例子仍可以使用线性机器模型

# 训练代码不变
regressor = LinearRegression()
regressor = regressor.fit(X_data, Y_data)

4.预测训练集

输入原数据表的薪资和年龄两列,看看这个机器模型会给我们多少 “贷款额度”

# 预测训练集
Y_pred = regressor.predict(X_data)
print(Y_pred)

在这里插入图片描述

运行程序,发现预测结果与原表 loans 列数据接近,说明该模型具有一定可信度。

5.模拟数据并预测

手动写入一个薪资 10000,年龄 30 的数据,继续看看该机器模型会给我们多少 “贷款额度”

# 自定义数据预测
test_data = [[10000,30]]
test_pred = regressor.predict(test_data)
print(test_pred)

在这里插入图片描述

数据依然合理,说明该机器模型具有一定的健壮性。

6.绘制可视化图表

1.下载 matplotlib 库

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

2.绘制图表

# 散点图排序版
x = sorted(data['salary'])
y = sorted(Y_pred)
plt.plot(x, y, color = 'blue')
plt.show()

运行程序后发现,这样更能直观的看出线性关系。

在这里插入图片描述

🎯 下期预告

  • 逻辑回归:解决分类问题(如判断邮件是否垃圾邮件、判断某人是否会做某事等)
  • 分类算法:KNN、决策树等更强大的模型
  • 模型评估:如何判断模型的好坏?

🚀 现在就开始你的机器学习之旅吧!有任何问题欢迎在评论区留言讨论~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值