当前位置:首页>python>统计学入门合集(基于Python)11——总结

统计学入门合集(基于Python)11——总结

  • 2026-09-11 16:03:34
统计学入门合集(基于Python)11——总结

经过前10节,我们已经建立了完整体系:

  • 描述统计 → 数据结构
  • CLT → 渐近理论
  • MLE → 参数估计
  • 假设检验 → 决策机制
  • 回归 → 建模
  • 正则化 → 控制复杂度
  • Bias–Variance → 误差来源
  • Cross Validation → 模型选择
  • Bootstrap → 不确定性评估

👉 但一个更高层问题是:

统计学 和 机器学习,本质上到底是什么关系?


Part 1统一视角

所有方法,本质都在解决:


👉 区别在于:

领域
关注重点
统计学
参数解释
机器学习
预测性能

👉 统一表达:

经验风险拟合数据正则项控制复杂度

Part 2全图谱

数据 → 描述统计 → 分布认知↓CLT / Bootstrap↓参数估计(MLE)↓推断(CI / 检验)↓建模(Regression)↓正则化(Ridge / Lasso)↓Bias–Variance 分解↓模型选择(CV)↓工程决策

Part 3Python可视化(全流程认知)

# file: full_pipeline_visualization.pyimport numpy as npimport matplotlib.pyplot as pltdeftrue_function(x):return np.sin(2*np.pi*x)defmain():    np.random.seed(0)    x = np.linspace(0,1,100)    y_true = true_function(x)    y_obs = y_true + np.random.normal(0,0.2,100)    plt.figure(figsize=(10,6))# 原始数据    plt.scatter(x, y_obs, alpha=0.5, label="data")# 低复杂度模型    coef1 = np.polyfit(x, y_obs, 1)    y1 = np.polyval(coef1, x)    plt.plot(x, y1, label="underfit")# 高复杂度模型    coef2 = np.polyfit(x, y_obs, 15)    y2 = np.polyval(coef2, x)    plt.plot(x, y2, label="overfit")# 真实函数    plt.plot(x, y_true, linewidth=3, label="true")    plt.legend()    plt.title("Full Pipeline: Data → Model → Overfitting")    plt.show()if __name__ == "__main__":    main()

执行结果如下:

Part 4Bias–Variance 可视化(核心)

# file: bias_variance_curve.pyimport numpy as npimport matplotlib.pyplot as pltdefmain():    complexity = np.linspace(1,20,100)    bias = 1 / complexity    variance = complexity / 20    total = bias + variance    plt.figure(figsize=(8,5))    plt.plot(complexity, bias, label="Bias^2")    plt.plot(complexity, variance, label="Variance")    plt.plot(complexity, total, label="Total Error", linewidth=3)    plt.xlabel("Model Complexity")    plt.ylabel("Error")    plt.title("Bias-Variance Tradeoff")    plt.legend()    plt.show()if __name__ == "__main__":    main()

执行结果如下:

Part 5Cross Validation 可视化

# file: cv_visualization.pyimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import KFolddefmain():    n = 50    K = 5    kf = KFold(n_splits=K)    plt.figure(figsize=(8,5))for i, (train, test) in enumerate(kf.split(range(n))):        y = np.zeros(n)        y[test] = 1        plt.scatter(range(n), y + i, label=f"Fold {i}")    plt.title("K-Fold Split Visualization")    plt.xlabel("Sample Index")    plt.ylabel("Fold")    plt.show()if __name__ == "__main__":    main()

执行结果如下:

Part 6Bootstrap 可视化

# file: bootstrap_visual.pyimport numpy as npimport matplotlib.pyplot as pltdefmain():    np.random.seed(0)    data = np.random.normal(0,1,30)    plt.figure(figsize=(10,5))for i in range(5):        sample = np.random.choice(data, len(data), replace=True)        plt.plot(sample, alpha=0.6)    plt.title("Bootstrap Resampling")    plt.show()if __name__ == "__main__":    main()

执行结果如下:

Part 7方法选型指南

情况1:小样本 + 分布未知

👉 使用:

  • Bootstrap

情况2:大样本

👉 使用:

  • CLT
  • 正态近似

情况3:高维数据

👉 使用:

  • Ridge / Lasso

情况4:模型选择

👉 使用:

  • Cross Validation

情况5:解释 vs 预测

目标
方法
解释
统计模型
预测
机器学习

Part 8最终统一公式

整个统计学习可以统一为:

经验风险正则化

👉 所有方法只是这个框架的不同实例


Part 9最终理解

统计学关注:

  • “参数是否显著”

机器学习关注:

  • “预测是否准确”

👉 本质统一:

都是在逼近真实函数 


最新文章

随机文章