个人学习研究空间以 Python 机器学习 / 深度学习 为例

记录科研学习中的探索与实践,分享 Python 在数据科学、机器学习与深度学习领域的心得与代码。

关于本站

本站是个人学习与研究使用的技术笔记空间,专注于 Python 编程语言机器学习(Machine Learning)深度学习(Deep Learning) 领域的应用探索。所有内容均为个人学习过程的记录与总结,仅供研究参考。

机器学习与深度学习正在深刻改变我们与技术交互的方式。从图像识别到自然语言处理,从推荐系统到自动驾驶,这些技术的应用场景日益广泛。作为一名技术学习者,我通过本站在实践中巩固知识、记录思考。

📌 本站内容仅供个人学习研究使用,所有代码示例均可在公开环境中复现。如有引用外部资料,均会标注来源。

Python 机器学习 深度学习 数据科学

Python 科研生态

Python 拥有全球最活跃的数据科学生态系统,以下是个人科研学习中经常使用的核心库:

NumPy

高性能数值计算基础库,提供多维数组对象与丰富的数学函数,是科学计算的基石。

Pandas

结构化数据处理利器,提供 DataFrame 等数据结构,让数据清洗与分析变得高效直观。

Matplotlib

最经典的 Python 可视化库,配合 Seaborn 可绘制出版级质量的统计图表。

Scikit-learn

统一的机器学习 API,涵盖分类、回归、聚类、降维等经典算法,适合快速实验。

以下是一段典型的数据探索代码示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 加载数据集
df = pd.read_csv('dataset.csv')
print(f"数据集形状: {df.shape}")
print(f"列名: {list(df.columns)}")

# 基本统计描述
print(df.describe())

# 缺失值检查
missing = df.isnull().sum()
print(f"缺失值:\n{missing[missing > 0]}")

# 可视化特征分布
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
df['feature_a'].hist(bins=50, ax=axes[0])
axes[0].set_title('Feature A Distribution')
sns.boxplot(data=df, y='feature_b', ax=axes[1])
axes[1].set_title('Feature B Boxplot')
plt.tight_layout()
plt.show()
数据科学可视化示例
数据可视化是理解数据分布与模式的重要手段 — 图片来自 Unsplash

机器学习实践

机器学习是让计算机从数据中自动学习规律和模式的科学。以下是一个完整的分类任务示例,使用经典的鸢尾花数据集:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt

# 加载数据
iris = load_iris()
X, y = iris.data, iris.target

# 划分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

# 特征标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 训练随机森林分类器
clf = RandomForestClassifier(
    n_estimators=100, max_depth=5, random_state=42
)
clf.fit(X_train_scaled, y_train)

# 预测与评估
y_pred = clf.predict(X_test_scaled)
print(classification_report(y_test, y_pred,
      target_names=iris.target_names))

# 特征重要性
importances = pd.DataFrame({
    'feature': iris.feature_names,
    'importance': clf.feature_importances_
}).sort_values('importance', ascending=False)
print("\n特征重要性:\n", importances)
机器学习概念图
机器学习是人工智能的核心分支之一 — 图片来自 Unsplash

💡 学习建议: 从经典的 Scikit-learn 开始入门,掌握数据预处理、模型训练与评估的完整流程,再逐步深入深度学习框架。

深度学习探索

深度学习通过多层神经网络从原始数据中自动学习层次化特征表示。以下是一个使用 PyTorch 实现的简单神经网络,用于手写数字识别:

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from torchvision import datasets, transforms

# 定义网络结构
class SimpleCNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(1, 32, kernel_size=3)
        self.conv2 = nn.Conv2d(32, 64, kernel_size=3)
        self.fc1 = nn.Linear(64 * 5 * 5, 128)
        self.fc2 = nn.Linear(128, 10)
        self.relu = nn.ReLU()
        self.pool = nn.MaxPool2d(2)

    def forward(self, x):
        x = self.pool(self.relu(self.conv1(x)))
        x = self.pool(self.relu(self.conv2(x)))
        x = x.view(x.size(0), -1)
        x = self.relu(self.fc1(x))
        x = self.fc2(x)
        return x

# 数据加载
transform = transforms.ToTensor()
train_dataset = datasets.MNIST(
    root='./data', train=True,
    transform=transform, download=True
)
train_loader = DataLoader(
    train_dataset, batch_size=64, shuffle=True
)

# 训练配置
model = SimpleCNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 训练一个 epoch
model.train()
for batch_idx, (data, target) in enumerate(train_loader):
    optimizer.zero_grad()
    output = model(data)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()
    if batch_idx % 100 == 0:
        print(f'Batch {batch_idx}: loss = {loss.item():.4f}')

print("训练完成!")
人工智能与深度学习
深度学习在计算机视觉等领域取得了突破性进展 — 图片来自 Unsplash

深度学习框架的选择上,PyTorch 以其动态计算图和直观的调试体验成为科研首选,而 TensorFlow / Keras 在生产部署方面有更成熟的生态。建议初学者从 PyTorch 入手,逐步掌握张量运算、自动求导、模型构建与训练等核心概念。

学习资源推荐

以下是我个人在学习过程中认为非常有价值的资源,在此分享给同样在路上的学习者:

📘 Python 官方教程

Python 官方提供的入门教程,语言基础扎实,适合所有阶段的开发者查阅。

📗 Hands-On ML

Aurélien Géron 所著,理论与实战结合,是机器学习入门的经典之作。

📕 深度学习 (花书)

Goodfellow 等人的经典著作,系统阐述深度学习的数学原理与核心算法。

📙 PyTorch 文档

PyTorch 官方文档与教程,示例丰富,是学习深度学习框架的最佳起点。

📚 学习是一场没有终点的旅程。保持好奇、动手实践、持续积累,就是最好的学习方法。