机器学习基础(一):平均数中位数众数
从一组数字中我们可以学到什么?
在机器学习(和数学)中,通常存在三中我们感兴趣的值:
- 均值(
Mean
) - 平均值 - 中值(
Median
) - 中点值,又称中位数 - 众数(
Mode
) - 最常见的值
例如:我们已经登记了 13 辆车的速度:
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
均值
均值就是平均值。
要计算平均值,请找到所有值的总和,然后将总和除以值的数量:
(99+86+87+88+111+86+103+87+94+78+77+85+86) / 13 = 89.77
NumPy 模块拥有用于此目的的方法:
实例
import numpy
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = numpy.mean(speed)
print(x)
输出
D:\Environment\Anaconda3\envs\PyTorch\python.exe H:/05.机器学习基础/002平均中位数模式.py
89.76923076923077
Process finished with exit code 0
中值
中值是对所有值进行排序后的中间值:
77, 78, 85, 86, 86, 86,
87
, 87, 88, 94, 99, 103, 111
在找到中位数之前,对数字进行排序很重要。
NumPy 模块拥有用于此目的的方法:
实例
import numpy
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = numpy.median(speed)
print(x)
输出
D:\Environment\Anaconda3\envs\PyTorch\python.exe H:/05.机器学习基础/002平均中位数模式.py
87.0
Process finished with exit code 0
如果中间有两个数字,则将这些数字之和除以 2。
77, 78, 85, 86, 86,
86
,87
, 87, 94, 98, 99, 103
(86 + 87) / 2 = 86.5
代码
import numpy
speed = [77, 78, 85, 86, 86, 86, 87, 87, 94, 98, 99, 103]
x = numpy.median(speed)
print(x)
输出
D:\Environment\Anaconda3\envs\PyTorch\python.exe H:/05.机器学习基础/002平均中位数模式.py
86.5
Process finished with exit code 0
众数
众值是出现次数最多的值:
SciPy 模块拥有用于此目的的方法:
实例
from scipy import stats
speed = [99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86]
x = stats.mode(speed, keepdims=False)
print(x)
输出:众数为86,出现的次数最多为3
D:\Environment\Anaconda3\envs\PyTorch\python.exe H:/05.机器学习基础/002平均中位数模式.py
ModeResult(mode=86, count=3)
Process finished with exit code 0