Machine Learning 简明教程
Machine Learning - Mean, Median, Mode
均值、中位数和众数是用于描述数据集集中趋势的统计方法。在机器学习中,这些指标用于了解数据的分布并识别异常值。在这里,我们将探索均值、中位数和众数的概念以及它们在 Python 中的实现。
Mean
“均值”是数据集的平均值。它通过将数据集中的所有值相加并除以观测值的数量来计算。均值是一个有用的集中趋势度量,因为它对异常值敏感,这意味着极端值会显著影响均值的值。
在 Python 中,我们可以使用 NumPy 库计算均值,它提供了一个名为 mean() 的函数。
Median
“中位数”是数据集中的中间值。它通过按顺序排列数据集中的值并找到位于中间的值来计算。如果数据集中的值数为偶数,则中位数是中间两个值的平均值。
中值是一个有用的中心趋势测量度量,因为不受离群值的影响,表示极端值不会显著影响中值的值。
在 Python 中,我们可以使用 NumPy 库来计算中值,该库提供了名为 median() 的函数。
Mode
“众数”是数据集中最常见的值。通过在数据集中找到出现频率最高的值来计算众数。如果有多个值出现的频率相同,则数据集被称为双峰、三峰或多峰。
众数是中心趋势的一个有用的测量度量,因为它可以识别数据集中最常见的值。但是,它对于值的范围较宽的数据集或没有重复值的的数据集来说,不是一个好的中心趋势测量度量。
在 Python 中,我们可以使用 SciPy 库来计算众数,该库提供了名为 mode() 的函数。
Python Implementation
让我们看一个使用 NumPy 和 Pandas 在 Python 中计算薪资表的平均值、中值和众数的示例 −
import numpy as np
import pandas as pd
# create a sample salary table
salary = pd.DataFrame({
'employee_id': ['001', '002', '003', '004', '005', '006', '007',
'008', '009', '010'],
'salary': [50000, 65000, 55000, 45000, 70000, 60000, 55000, 45000,
80000, 70000]
})
# calculate mean
mean_salary = np.mean(salary['salary'])
print('Mean salary:', mean_salary)
# calculate median
median_salary = np.median(salary['salary'])
print('Median salary:', median_salary)
# calculate mode
mode_salary = salary['salary'].mode()[0]
print('Mode salary:', mode_salary)