网站首页 > 技术文章 正文
初识机器学习,内容包括安装 scikit-learn、简单线性回归示例以及预测身高与体重的练习。我会详细设计一个结构化的任务,适合初学者逐步完成。
任务目标
- 掌握机器学习基础库 scikit-learn 的安装与使用。
- 理解简单线性回归的基本原理。
- 动手完成一个预测身高与体重关系的练习。
任务详情
1. 环境准备
- 安装 scikit-learn
- 打开终端或命令行,输入以下命令安装 scikit-learn:
- pip install scikit-learn
- 验证安装:创建一个 Python 文件(例如 test_sklearn.py),输入以下代码并运行:
- python
- import sklearn print("scikit-learn 安装成功,版本号:", sklearn.__version__)
- 如果没有报错并显示版本号,说明安装成功。
- 安装依赖工具(可选)
- 确保已安装 numpy 和 matplotlib,用于数据处理和可视化:
- pip install numpy matplotlib
2. 简单线性回归示例
- 任务要求:编写一个简单的线性回归模型,预测输入数据与输出数据之间的关系。
- 示例代码:
- python
- import numpy as np from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt # 模拟数据:X 是输入(例如小时数),y 是输出(例如成绩) X = np.array([[1], [2], [3], [4], [5]]) # 特征(二维数组) y = np.array([2, 4, 5, 4, 5]) # 目标值 # 创建并训练模型 model = LinearRegression() model.fit(X, y) # 预测 y_pred = model.predict(X) # 可视化结果 plt.scatter(X, y, color='blue', label='实际数据') plt.plot(X, y_pred, color='red', label='回归线') plt.xlabel('X (输入)') plt.ylabel('y (输出)') plt.legend() plt.title('简单线性回归示例') plt.show() # 输出斜率和截距 print("斜率 (slope):", model.coef_) print("截距 (intercept):", model.intercept_)
- 任务:
- 运行代码,观察散点图和回归线的拟合效果。
- 修改 X 和 y 的数据,尝试不同的值,看看回归线如何变化。
3. 练习:预测身高与体重的关系
- 任务要求:使用简单线性回归,基于身高预测体重。
- 数据准备:
- 假设你有以下简单数据集(单位:身高/cm,体重/kg):
- 身高 (X): [150, 160, 170, 180, 190] 体重 (y): [50, 55, 65, 70, 80]
- 练习代码:
- python
- import numpy as np from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt # 数据 X = np.array([[150], [160], [170], [180], [190]]) # 身高 y = np.array([50, 55, 65, 70, 80]) # 体重 # 创建并训练模型 model = LinearRegression() model.fit(X, y) # 预测 y_pred = model.predict(X) # 可视化 plt.scatter(X, y, color='blue', label='实际数据') plt.plot(X, y_pred, color='red', label='回归线') plt.xlabel('身高 (cm)') plt.ylabel('体重 (kg)') plt.legend() plt.title('身高与体重的线性回归') plt.show() # 输出模型参数 print("斜率 (体重随身高变化率):", model.coef_) print("截距 (基础体重):", model.intercept_) # 预测新数据 height_new = np.array([[165]]) # 预测身高 165cm 的体重 weight_pred = model.predict(height_new) print("预测身高 165cm 的体重:", weight_pred[0], "kg")
- 任务:
- 运行代码,观察身高与体重的拟合效果。
- 修改数据集,添加更多身高和体重数据(至少 5 组),重新运行代码。
- 输入自己的身高,预测对应的体重,并与实际体重对比。
- 思考:如果数据点偏离直线较多,说明什么问题?如何改进?
进阶挑战(可选)
- 数据扩展:从网上搜索一个更大的身高-体重数据集(例如 CSV 文件),导入并训练模型。
- 评估模型:使用 sklearn.metrics 中的 mean_squared_error 计算预测值与实际值的误差。
学习成果
- 完成任务后,你将:
- 学会安装和使用 scikit-learn。
- 理解线性回归的基本工作原理。
- 能够用 Python 实现身高与体重的简单预测模型。
希望这个学习任务对你有帮助!如果需要进一步解释代码或调整任务难度,请随时告诉我。
猜你喜欢
- 2025-03-20 如何用Python列表推导式减少代码运行时间
- 2025-03-20 [今日推荐:pyTermTk] 轻松打造酷炫终端界面的利器
- 2025-03-20 在python终端中打印颜色的3中方式(python3经典编程案例)
- 2025-03-20 超算互联网DeepSeek-R1 API接口服务开启,免费100万Tokens
- 2025-03-20 python入门-Day 17: NumPy 基础(python3.10 numpy)
- 2025-03-20 OpenAI Python SDK 使用指南(open python3)
- 2025-03-20 Github高星终端高亮和色彩渲染库——Rich
- 2025-03-20 python远程管理编程中如何处理Fn(功能)键
- 2025-03-20 不花一分钱:用DeepSeek学Python,保姆级教程
- 2025-03-20 零基础也能轻松上手!Python Flask快速构建你的第一个Web应用
- 261℃Python短文,Python中的嵌套条件语句(六)
- 261℃python笔记:for循环嵌套。end=""的作用,图形打印
- 260℃PythonNet:实现Python与.Net代码相互调用!
- 255℃Python实现字符串小写转大写并写入文件
- 254℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 110℃原来2025是完美的平方年,一起探索六种平方的算吧
- 94℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)