那些可以预测未来的方法们(未完,不必看)

这里所说的预测未来,并不是真的看到未来,而是根据现有的数据,推测未来的可能值。

目录

  • 1. K最近邻(k-nearest neighbours, KNN)算法
    • 1.1 基本原理
    • 1.2 应用实例
    • 1.3 预测未来 - 回归
    • 1.4 遗留问题
  • 2. 最小二乘(Least Square, LS)
    • 2.1 线性最小二乘
      • 2.1.1 普通
      • 2.1.2 矢量
      • 2.1.2 矢量应用
    • 2.2 预测未来
    • 参考资料
  • 3. 泊松分布
  • 4. 卡尔曼滤波器

1. K最近邻(k-nearest neighbours, KNN)算法

(来源于机器学习)

1.1 基本原理

存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。

1.2 应用实例

假设你要给餐具分类,根据餐具的直径和高度分出是碗还是碟子。
该算法的前提条件是已经有包含标签的训练样本集,即有足够的数据,包含明确的特征已经将它们分好了类,如下图所示,红蓝原点表示已经分好类的样本集:
那些可以预测未来的方法们(未完,不必看)_第1张图片

那此时,你需要判断的绿色圆点,它是属于碗还是碟子呢?

那就可以采用KNN算法,其步骤为:
(1) 计算已知类别数据集中的点与当前点之间的距离;
(2) 按照距离递增次序排序;
(3) 选取与当前点距离最小的k个点;
(4) 确定前k个点所在类别的出现频率;
(5) 返回前k个点出现频率最高的类别作为当前点的预测分类。
那些可以预测未来的方法们(未完,不必看)_第2张图片

由上方步骤说明以及图示,可以判断绿色圆点的餐具属于碗。

  • 如果物品的特征比较多,比如还要考虑餐具的花色位置等问题,可以将特征量化,采用向量表示,计算欧氏距离
  • 如果特征是同等重要的,作为等权重的特征,需要采用归一化的方式,将数字特征值转化为0到1的区间。归一化的方式为new_value = (oldValue -min)/(max - min),其中min和max分别是数据集中的最小特征值和最大特征值。(归一化的方式还有待考量,是个体描述特征值时的标准不一样,还是相互独立的特征值需要归一化,还是在解决不同问题时选不选择归一化)

1.3 预测未来 - 回归

在这里例举一个卖奶茶的例子。每天卖奶茶的杯数与当天的天气(1表示天气很糟,5表示天气非常好)与是否是周末(1表示周末,0表示工作日)有关。
现在有这样几组数据:

组号与信息 卖出奶茶杯数
A(5, 1) 30
B(3, 1) 22
C(1,1) 7
D(4, 0) 20
E(2, 0) 5
如果明天的天气是4,是周末1,那可能卖出多少杯奶茶?
应用最近邻算法计算出明天与当前已知组号的欧式距离:
组号 距离
-------- -----
A 1
B 2
C 3
D 1
E 根号5
选出距离最小的三组,分别是A,B,D,再计算售出奶茶数的平均值(30+22+20)/3 = 24杯。

1.4 遗留问题

  • k值的选取。在推测餐具的例子中,我选用了k = 3,如果k取4,那么碗和碟出现的频率是相等的,根据“步骤”中所写的内容,将无法推测出是哪个餐具,这时候应该怎么处理,减少k的值?
  • 什么时候归一化。

2. 最小二乘(Least Square, LS)

(来源于现代数字信号处理)
用尺子测量盘子的直径,y1-y5分别是5次测量到的值,用最小二乘的方法计算盘子的直径。
那些可以预测未来的方法们(未完,不必看)_第3张图片

2.1 线性最小二乘

2.1.1 普通

那些可以预测未来的方法们(未完,不必看)_第4张图片

2.1.2 矢量

那些可以预测未来的方法们(未完,不必看)_第5张图片
那些可以预测未来的方法们(未完,不必看)_第6张图片
那些可以预测未来的方法们(未完,不必看)_第7张图片

2.1.2 矢量应用

那些可以预测未来的方法们(未完,不必看)_第8张图片
那些可以预测未来的方法们(未完,不必看)_第9张图片
来源于:邹乐强.最小二乘法原理及其简单应用[J].科技信息,2010(23):282-283.

2.2 预测未来

在这里还是例举卖奶茶的例子,对前几天的天气情况与奶茶杯数进行一个统计,现在有这样几组数据:

天气情况 卖出奶茶杯数
10 30
7 22
2 7
8 24
4 8

画成图形结果为:
那些可以预测未来的方法们(未完,不必看)_第10张图片
明天的天气状态是6,那应该准备多少杯奶茶最合适?
用最小二乘的方法在原图中画出回归曲线:
那些可以预测未来的方法们(未完,不必看)_第11张图片
从图中可以看出天气状况为6时,大约需要准备18杯奶茶。
matlab代码

% 显示数据
plot(VarName1, VarName2, '*b');
% 显示坐标轴范围
axis([0 12 0 35]);
% 横纵轴标签信息
xlabel('天气'); 
ylabel('杯数');
grid on
hold on
% 应用最小二乘做回归曲线 polyfit,p返回时的是多项式前面的系数
[p, s] = polyfit(VarName1, VarName2, 1);
% 选定横轴的范围,用polyval求得各个点上的值并画出
x1 = 0:0.01:12;
y1 = polyval(p,x1);
plot(x1, y1, 'r-');

参考资料

1. 如何理解最小二乘法?.
2. 向量最小二乘的证明,很久之前我在b站看到的,找不到链接了
3. matlab 如何画图时将数据点的值在图中显示出来.
4. matlab中polyfit与polyval的功能?.
5. matlab 画图plot 标记符大小调整和填充.
6.什么是最小二乘法回归分析?.

3. 泊松分布

(来源于概率论)

4. 卡尔曼滤波器

python Kalman滤波跟踪(链接整理+理解)

你可能感兴趣的:(算法,机器学习,人工智能)