机器学习多分类问题
机器学习中大部分方法主要解决二分类问题,例如逻辑回归,SVM,决策树等,这些算法当然也可处理多分类问题,但是需要修改处理。
机器学习中处理多分类问题最简单常用的是K近邻(K-Nearest Neighbour) 与softmax。
K-Nearest Neighbour
k近邻算法是一种基本分类和回归方法。
K-NN algorithm,是给定一个数据集,当有新的输入实例时,计算该输入实例与给定数据集所有实例的距离(欧氏距离)。然后在给定数据集中找到与该输入实例距离最短的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。(类似于少数服从多数的思想)
K-NN算法实现思路如下:
- 数据归一化 (很重要);
- 划分测试集训练集;
- 给测试集训练集设置标签(1,2,3,4,5…),代表分类;
- 选择k值;
- 遍历测试集,计算每个测试实例与所有训练实例的欧式距离(Euclidean Distance),并记录所有距离到数组;
- 对每个测试实例,排序其与所有训练实例的距离,选出最近的k个训练实例与其对应标签;
- 计算此k个训练实例最多属于哪一类,即哪个分类标签数量最多;
- 将该测试实例分类维该类数据;
- 计算分类准确率。
K-NN算法对应Matlab代码:<