机器学习 - 均值、中位数、众数



均值、中位数和众数是用于描述数据集中心趋势的统计量度。在机器学习中,这些度量用于理解数据的分布并识别异常值。在这里,我们将探讨均值、中位数和众数的概念及其在 Python 中的实现。

均值

“均值”是数据集的平均值。它是通过将数据集中所有值相加然后除以观察次数来计算的。均值是一个有用的中心趋势度量,因为它对异常值敏感,这意味着极值会显著影响均值。

在 Python 中,我们可以使用 NumPy 库计算均值,该库提供了一个名为 mean() 的函数。

中位数

“中位数”是数据集中中间的值。它是通过按顺序排列数据集中的值并找到位于中间的值来计算的。如果数据集中有偶数个值,则中位数是两个中间值的平均值。

中位数是一个有用的中心趋势度量,因为它不受异常值的影响,这意味着极值不会显著影响中位数的值。

在 Python 中,我们可以使用 NumPy 库计算中位数,该库提供了一个名为 median() 的函数。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

众数

“众数”是数据集中最常见的值。它是通过找到数据集中出现频率最高的值来计算的。如果有多个值出现频率相同,则该数据集被称为双峰、三峰或多峰。

众数是一个有用的中心趋势度量,因为它可以识别数据集中最常见的值。但是,对于值范围很广的数据集或没有重复值的数据集,它不是一个好的中心趋势度量。

在 Python 中,我们可以使用 SciPy 库计算众数,该库提供了一个名为 mode() 的函数。

Python 实现

让我们来看一个使用 NumPy 和 Pandas 在 Python 中为薪资表计算均值、中位数和众数的示例:

Open Compiler
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)

输出

执行此代码后,您将获得以下输出:

Mean salary: 59500.0
Median salary: 57500.0
Mode salary: 45000
广告