保姆级别使用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:手动安装(知道在哪写命令的用)
- 按
Win键+R
输入cmd
回车(Windows) - Mac在启动台搜「终端」
- 复制下面命令粘贴进去回车:
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]]}")
🚀 第三步:运行指南
- 复制全部代码到
iris_demo.py
文件 - 直接右键运行,或命令行运行:
python iris_demo.py
- 如果看到报错,大概率是包没装上,手动运行一次:
pip install numpy pandas matplotlib scikit-learn
📌 可能出现的问题
- 弹窗图片不显示? 代码已自动保存为
iris_plot.png
,去文件所在文件夹找 - 安装报错? 尝试在命令前加
python -m
:python -m pip install 包名
- 版本问题? 指定版本安装:
pip install scikit-learn==1.2.2
🌟 最终效果
运行成功后你会看到:
- 数据表格预览
- 散点图保存为本地图片
- 打印出准确率(通常90%以上)
- 预测新花的种类结果
搞定!现在你已经是入门级机器学习玩家了 🎮 接下来可以试着改代码里的参数(比如把 kernel='linear'
换成 'rbf'
),看看准确率会不会更高~