当前位置: 首页 > news >正文

保姆级别使用Python实现“机器学习“案例

从安装到运行手把手教学,保证不迷路~


🌈 零基础友好版教程


📦 第一步:安装必备工具包

别慌!这里有两种安装方式,选你顺手的

方式1:用代码自动安装(推荐新手)
直接在你的Python代码最前面加这几行,运行时会自动安装:

# 把这坨代码贴在文件最前面!
import sys
import subprocess

# 需要装的包列表
packages = ['numpy', 'pandas', 'matplotlib', 'scikit-learn']

# 自动安装 missing 的包
for package in packages:
    try:
        __import__(package)
    except ImportError:
        subprocess.check_call([sys.executable, "-m", "pip", "install", package])

方式2:手动安装(知道在哪写命令的用)

  1. Win键+R 输入 cmd 回车(Windows)
  2. Mac在启动台搜「终端」
  3. 复制下面命令粘贴进去回车:
pip install numpy pandas matplotlib scikit-learn

🎨 第二步:完整代码(带逐行解析)

新建文件 iris_demo.py完整代码+注释 如下:

# -*- coding: utf-8 -*-
# 自动安装包(如果没装的话)
import sys
import subprocess
packages = ['numpy', 'pandas', 'matplotlib', 'scikit-learn']
for package in packages:
    try:
        __import__(package)
    except ImportError:
        subprocess.check_call([sys.executable, "-m", "pip", "install", package])

# ---------- 正式代码开始 ----------
# 1. 导入工具库
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

# 2. 加载数据(系统自带的鸢尾花数据集)
iris = load_iris()
# 把数据转成表格形式,方便查看
data = pd.DataFrame(iris.data, columns=iris.feature_names)
data['类别'] = iris.target  # 添加类别列(0/1/2代表三种花)

# 3. 快速看一眼数据
print("=== 数据预览 ===")
print(data.head())  # 显示前5行
print("\n=== 类别分布 ===")
print(data['类别'].value_counts())  # 查看每种花有多少样本

# 4. 画个图观察特征(散点图)
plt.figure(figsize=(10, 6))
plt.scatter(data['sepal length (cm)'], 
            data['sepal width (cm)'], 
            c=data['类别'],  # 用不同颜色表示类别
            cmap='viridis')  # 颜色方案
plt.xlabel('花萼长度 (cm)')
plt.ylabel('花萼宽度 (cm)')
plt.title('鸢尾花分类分布')
plt.colorbar(label='类别')  # 显示颜色对应类别
plt.savefig('iris_plot.png')  # 保存图片(防止弹窗不显示)
print("\n图表已保存为 iris_plot.png,去文件夹看看吧!")

# 5. 数据预处理
X = data.iloc[:, :4].values  # 前四列是特征(花萼花瓣的尺寸)
y = data['类别'].values       # 最后一列是标签

# 数据标准化(重要!让不同特征的数值范围一致)
scaler = StandardScaler()
X = scaler.fit_transform(X)

# 6. 拆分训练集和测试集(80%训练,20%测试)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, 
    test_size=0.2, 
    random_state=42  # 随机种子,保证每次拆分结果一致
)

# 7. 创建模型(使用支持向量机分类器)
model = SVC(kernel='linear')  # 线性核函数,适合小数据
model.fit(X_train, y_train)  # 喂数据训练模型

# 8. 预测并评估
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"\n=== 模型准确率 ===\n{accuracy:.2%}")

# 9. 模拟预测新数据
new_flower = [[5.1, 3.5, 1.4, 0.2]]  # 新花的四个特征
new_flower = scaler.transform(new_flower)  # 必须同样标准化!
pred = model.predict(new_flower)

# 翻译数字标签为花名
flower_names = ['山鸢尾', '变色鸢尾', '维吉尼亚鸢尾']
print(f"\n=== 预测结果 ===\n这朵花是:{flower_names[pred[0]]}")

🚀 第三步:运行指南
  1. 复制全部代码到 iris_demo.py 文件
  2. 直接右键运行,或命令行运行:
    python iris_demo.py
    
  3. 如果看到报错,大概率是包没装上,手动运行一次:
    pip install numpy pandas matplotlib scikit-learn
    

📌 可能出现的问题
  • 弹窗图片不显示? 代码已自动保存为 iris_plot.png,去文件所在文件夹找
  • 安装报错? 尝试在命令前加 python -m
    python -m pip install 包名
    
  • 版本问题? 指定版本安装:
    pip install scikit-learn==1.2.2
    

🌟 最终效果

运行成功后你会看到:

  1. 数据表格预览
  2. 散点图保存为本地图片
  3. 打印出准确率(通常90%以上)
  4. 预测新花的种类结果

搞定!现在你已经是入门级机器学习玩家了 🎮 接下来可以试着改代码里的参数(比如把 kernel='linear' 换成 'rbf'),看看准确率会不会更高~

相关文章:

  • 利用OpenResty拦截SQL注入
  • FTL算法
  • IP核实战:用Xilinx Clocking Wizard实现精密时序控制
  • 宿主机运行pyspark任务读取docker hadoop容器上的数据
  • 0基础 | 看懂原理图Datasheet 系列1
  • 前端状态管理 pinia和vuex高频面试题
  • 通过动态获取后端数据判断输入的值打小
  • 【C语言】 一维数组传参的本质
  • 车间图纸安全传输需要注意什么?
  • iTextSharp-PDF批量导出
  • 深入浅出Bearer Token:解析工作原理及其在Vue、Uni-app与Java中的实现Demo
  • OpenCV中文路径图片读写终极指南(Python实现)
  • [C++面试] 对通透比较器了解多少?(较少涉及,可跳过)
  • Kylin麒麟操作系统服务部署 | Ansible基础
  • 使用 Python 爬取 item_get_video 接口获取某书笔记详情
  • IDEA 创建SpringCloud 工程(图文)
  • Python----计算机视觉处理(Opencv:二值化,阈值法,反阈值法,截断阈值法,OTSU阈值法)
  • 小学数学原理1:14 - 为什么是减法?
  • 云创智城 ×YunParking停车源码+YunCharge充电源码+DeepSeek:AI 驱动城市级停车平台升级,构建安全智慧出行新生态
  • 搜索 之 组合问题
  • 国际博物馆日|在辽宁省博物馆遇见敦煌
  • 大外交丨3天拿下数万亿美元投资,特朗普在中东做经济“加法”和政治“减法”
  • 大陆非遗项目打铁花、英歌舞将在台演出
  • 自然资源部:不动产登记累计化解遗留问题房屋2000多万套
  • 马上评|“衣服越来越难买”,对市场是一个提醒
  • 京东回应外卖系统崩溃:订单暴涨所致,已恢复