阶段1:Python编程基础 (1-2周)
核心学习目标
掌握基础语法
理解面向对象编程
熟悉常用内置模块
bash
# 条件判断与循环示例
age = 20
if age >= 18:
print("成年人")
else:
print("未成年人")
# 函数定义示例
def calculate_bmi(weight, height):
return weight / (height ** 2)
# 类与对象示例
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(f"{self.name}:汪汪!")
my_dog = Dog("阿黄")
my_dog.bark()
阶段2:数据处理与可视化 (1周)
必备工具库
NumPy 数值计算 数组操作/广播机制
Pandas 数据分析 数据清洗/合并/分组统计
Matplotlib 数据可视化 多种图表绘制/样式自定义
实战案例:鸢尾花数据分析
bash
import pandas as pd
import matplotlib.pyplot as plt
# 加载数据
iris = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',
header=None,
names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])
# 绘制散点矩阵图
pd.plotting.scatter_matrix(iris.iloc[:, :4], figsize=(12,8),
c=pd.factorize(iris['class'])[0],
cmap='viridis')
plt.show()
阶段3:机器学习基础 (2周)
Scikit-learn实战模板
bash
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
# 加载乳腺癌数据集
data = load_breast_cancer()
X, y = data.data, data.target
# 数据拆分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 模型训练
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
# 预测评估
preds = model.predict(X_test)
print(f"准确率:{accuracy_score(y_test, preds):.2%}")
阶段4:深度学习入门
框架选择建议
PyTorch 优点 动态计算图/易调试
bash
import torch
import torch.nn as nn
import torch.optim as optim
# 构建神经网络
class SimpleNN(nn.Module):
def __init__(self):
super().__init__()
self.layers = nn.Sequential(
nn.Linear(784, 256),
nn.ReLU(),
nn.Linear(256, 10)
)
def forward(self, x):
return self.layers(x)
# 训练配置
model = SimpleNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
# 训练循环示例
for epoch in range(10):
for data, labels in train_loader:
optimizer.zero_grad()
outputs = model(data)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
print(f'Epoch {epoch+1} 损失值:{loss.item():.4f}')
实战项目演练
手写体识别
bash
# 使用卷积神经网络
class CNN(nn.Module):
def __init__(self):
super().__init__()
self.conv_layers = nn.Sequential(
nn.Conv2d(1, 32, 3),
nn.ReLU(),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, 3),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.fc_layers = nn.Linear(64*5*5, 10)
def forward(self, x):
x = self.conv_layers(x)
x = x.view(x.size(0), -1)
return self.fc_layers(x)
创建虚拟环境
python -m venv dl-env
source dl-env/bin/activate # Linux/Mac
dl-env\Scripts\activate # Windows
安装核心包
pip install torch torchvision pandas matplotlib flask
报错处理流程
仔细阅读错误信息
复制错误信息到Google搜索
检查Stack Overflow解答
查阅官方文档