众所周知,音乐可以按风格来分类,然而风格本身是由什么来定义的呢?由谁来判定某首音乐属于那种风格?也就是说同一种风格的音乐又会具有哪些公共的特征呢?正因此也没有哪一位歌手会主动标榜自己的歌和以前的某首歌类似,但我们却实实在在的知道每一首歌在风格上的确有可能会和同风格的歌曲相近。类似于处理这样的分类问题,我们就可以使用k-近邻算法,来自动划分歌曲的风格类型。
算法介绍
原理: 采用测量不通过特征值之间的距离方法进行分类
k-近邻算法
优点:精度高,对异常值不敏感、且无需考虑填充数据集中缺失值缺点:计算复杂度高、空间复杂度高
适用范围:数值型和标称型(只在有限目标集中取值)
概述: 存在一个样本数据集(训练集),并且样本集中的每个数据都存在标签,即我们知道每个样本与所属分类的对应关系。当输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。
一般流程
① 计算已知标签的数据集中的每个点与当前未知标签点之间的距离② 按照距离递增排序
③ 选取与当前点距离最近的k个点
④ 确定前k个点所在标签的出现频率
⑤ 返回前k个点出现频率最高的标签作为当前未知点的标签。