自学教程 学编程从这里开始

统计学基础

统计学是机器学习的底层支撑。机器学习本质上就是利用统计方法,从数据里寻找规律、估计概率、判断相关性。掌握基础统计概念,才能看懂数据分布、评估模型、识别过拟合,而不是单纯调用库函数跑代码。

1. 集中趋势指标

用来描述一组数据的中心位置。

  • 均值 Mean:所有数值求和除以样本数量,对异常值敏感。
  • 中位数 Median:排序后中间位置的数,不容易被异常值干扰。
  • 众数 Mode:样本里出现次数最多的值,多用于分类数据。

示例:[22,25,29,30,35,45,48,50,55,41.5](我们数据集Age填充后)
均值≈38,中位数≈40,众数这里没有重复值,不存在众数。

2. 离散程度指标

描述数据分散、波动的大小。

  • 极差 Range:最大值 − 最小值,计算简单,但容易被极端值影响。
  • 方差 Variance:每个数据和均值差值的平方的平均值。
  • 标准差 Standard Deviation:方差开平方,单位和原始数据一致,是机器学习最常用指标。

标准差越大,代表数据越分散;标准差越小,数据越集中在均值附近。

3. 分布

正态分布(高斯分布 Normal Distribution)
数据围绕均值对称分布,中间多、两头少,是最经典的分布。很多机器学习算法(如线性回归)会假设数据近似服从正态分布。

4. 相关性

皮尔逊相关系数 Pearson Correlation,取值范围 [-1, 1]

  • 接近 1:强正相关,A变大,B跟着变大
  • 接近 -1:强负相关,A变大,B变小
  • 接近 0:几乎没有线性相关关系

⚠️ 重点:相关 ≠ 因果。两个指标同步变化,不一定一个导致另一个变化,可能存在第三方因素。

5. 概率

概率描述事件发生可能性,取值 0~1。

  • 0:一定不发生
  • 1:一定发生

    机器学习分类模型输出的概率,代表“属于该类别”的可能性。比如逻辑回归输出 Purchased=1 的概率 0.78。

6. 抽样与总体

  • 总体 Population:我们关心的全部数据
  • 样本 Sample:从总体抽取的一部分数据

    机器学习中,我们拿到的数据集一般只是样本,目标是让模型学到总体的规律,也就是泛化。训练集、测试集都属于样本。

7. 置信区间(简单理解)

基于样本,给出总体真实值大概率落在的区间,用来衡量统计结果是否可靠。

配套代码示例(沿用统一 data.csv)

Age,Salary,Purchased
25,40000,0
45,80000,1
30,50000,0
48,,1
22,32000,0
35,60000,1
,55000,0
50,90000,1
29,43000,0
55,100000,1
import pandas as pd
import numpy as np

df = pd.read_csv("data.csv")
df['Age'].fillna(df['Age'].mean(), inplace=True)
df['Salary'].fillna(df['Salary'].mean(), inplace=True)

# 集中趋势
print("==== 集中趋势 ====")
print("Age 均值:", df['Age'].mean())
print("Age 中位数:", df['Age'].median())
print("Age 众数:", df['Age'].mode().values)

# 离散程度
print("\n==== 离散指标 ====")
print("Age 标准差:", df['Age'].std())
print("Age 方差:", df['Age'].var())

# 相关性
print("\n==== 相关系数 ====")
print(df[['Age','Salary','Purchased']].corr())

执行结果:

统计学在机器学习里的用处

  1. 数据理解:用均值、标准差、相关性看懂数据集
  2. 特征工程:根据分布选择标准化、归一化
  3. 模型评估:准确率、召回率都属于统计指标
  4. 判断样本是否存在偏差、抽样是否合理

小结

机器学习不是黑盒魔法,很多算法背后都是统计理论。统计可以帮我们回答:数据集中在哪?波动大不大?特征之间有没有关联?样本能不能代表真实总体。看懂统计指标,才能合理分析模型结果。

思考题

  1. 数据里面存在极端异常值,优先用均值还是中位数描述中心?为什么?
  2. 相关系数等于0,代表两个特征完全没有关系吗?
标签:

0 条笔记