程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

python入门-day23:初识机器学习(python 机器学习)

hfteth 2025-03-20 15:06:39 技术文章 15 ℃

初识机器学习,内容包括安装 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 实现身高与体重的简单预测模型。

希望这个学习任务对你有帮助!如果需要进一步解释代码或调整任务难度,请随时告诉我。

Tags:

最近发表
标签列表