机器学习是通过研究数据和统计信息使计算机学习的过程。机器学习是迈向人工智能(AI)的一步。机器学习是一个分析数据并学会预测结果的程序。
数据集
在计算机的思维中,数据集是任何数据的集合。它可以是从数组到完整数据库的任何东西。
数组的示例:
[99,86,87,88,111,86,103,87,94,78,77,85,86]
数据库的示例:
代码语言:text复制Carname Color Age Speed AutoPass
BMW red 5 99 Y
Volvo black 7 86 Y
VW gray 8 87 N
VW white 7 88 Y
Ford white 2 111 Y
VW white 17 86 Y
Tesla red 2 103 Y
BMW black 9 87 Y
Volvo gray 4 94 N
Ford white 11 78 N
Toyota gray 12 77 N
VW white 9 85 N
Toyota blue 6 86 Y
通过查看数组,我们可以猜测平均值可能在80到90之间,我们还能够确定最高值和最低值,但我们还能做什么?
通过查看数据库,我们可以看到最受欢迎的颜色是白色,而最老的车辆为17岁,但如果我们能够通过查看其他值来预测车辆是否具有AutoPass呢?
这就是机器学习的用途!分析数据并预测结果!
在机器学习中,通常需要处理非常大的数据集。在本教程中,我们将尽量让您尽可能容易地理解机器学习的不同概念,并使用易于理解的小型数据集。
数据类型
要分析数据,重要的是要知道我们正在处理的数据类型。
我们可以将数据类型分为三个主要类别:
- 数值
- 分类
- 顺序
数值数据是数字,并且可以分为两个数值类别:
- 离散数据 - 限制为整数的数字。示例:汽车经过的数量。
- 连续数据 - 有无限值的数字。示例:物品的价格或大小。
分类数据是不能相互比较的值。示例:颜色值或任何是/否值。
顺序数据类似于分类数据,但可以相互比较。示例:学校成绩,其中A好于B等等。
通过了解数据源的数据类型,您将能够知道在分析数据时使用哪种技术。
您将在接下来的章节中了解更多有关统计学和数据分析的内容。
机器学习 - 均值、中位数、众数
在观察一组数字时,我们可以学到什么?
在机器学习(以及数学)中,通常有三个值引起我们的兴趣:
- 均值 - 平均值
- 中位数 - 中间值
- 众数 - 出现最频繁的值
示例:我们已经记录了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模块有一个用于此目的的方法。了解有关NumPy模块的信息,请查看我们的NumPy教程。
示例:使用NumPy的mean()方法找到平均速度:
代码语言:python代码运行次数:0复制import numpy
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = numpy.mean(speed)
print(x)
中位数
中位数是排列所有值后位于中间的值:
77, 78, 85, 86, 86, 86, 87, 87, 88, 94, 99, 103, 111
在找到中位数之前,需要确保对数字进行排序。
NumPy模块有一个用于此目的的方法:
示例:使用NumPy的median()方法找到中间值:
代码语言:python代码运行次数:0复制import numpy
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = numpy.median(speed)
print(x)
如果中间有两个数字,将这些数字的总和除以2。
77, 78, 85, 86, 86, 86, 87, 87, 94, 98, 99, 103
(86 87) / 2 = 86.5
示例:使用NumPy模块:
代码语言:python代码运行次数:0复制import numpy
speed = [99,86,87,88,86,103,87,94,78,77,85,86]
x = numpy.median(speed)
print(x)
众数
众数是出现最频繁的值:
99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86 = 86
SciPy模块有一个用于此目的的方法。了解有关SciPy模块的信息,请查看我们的SciPy教程。
示例:使用SciPy的mode()方法找到出现最频繁的数字:
代码语言:python代码运行次数:0复制from scipy import stats
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = stats.mode(speed)
print(x)