1 构造kNN分类器
1.1 fitcknn函数
使用fitcknn函数即可构造 (construct) kNN分类器。
输入:
分类集数据
分类集标记
参数表
属性 key
参数 value
kNNClassifier = fitcknn(TrainData', TrainLabels', 'NumNeighbors', 1)
TrainData
和TrainLabels
,是我分离出的训练集数据,此处做了矩阵转置,因为MatLab的fitcknn函数接收的参数是一行一条数据,一列一个特征维度的。
具体地,TrainData
是一个1024×1140 double
的数据集,原始数据的结构是每列一条数据,每条数据有1024个特征(feature)。
TrainLabels
是一个1×1140 double
的数据集,原始数据的结构是每列一个标记,与TrainData
一一对应,实现标定。
实际上,fitcknn将TrainLabels
识别为ClassNames
,也就是说,可以输入非数值型标记,只要区分出类别即可。
输出:
ClassificationKNN对象
1.2 运行实例
kNNClassifier = fitcknn(TrainData’, TrainLabels’, ‘NumNeighbors’, 1)
kNNClassifier =
ClassificationKNN
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: [1x38 double]
ScoreTransform: 'none'
NumObservations: 1140
Distance: 'euclidean'
NumNeighbors: 1
Properties, Methods
- 此例设置NumNeighbors属性为1,即kNN的k值为1,取1近邻。