Lesson 21 KNN
监督学习(Supervised Learning)
从给定标注的训练数据中学习出一个函数,根据这个函数为新数据进行标注
无监督学习(Unsupervised learning)
从给定无标注的训练数据中学习出一个函数,根据这个函数为所有数据标注
分类(Classification)
分类算法通过对一只类别训练数据集的分析,从中发现分类规则,以此预测新数据的类别,分类算法属于监督学习
K近邻分类算法
KNN 算法从训练集中找到和新数据最接近的K条记录,然后根据他们的主要分类来决定新数据的类别
交叉验证(cross validation)
训练集(Training set)
用来训练模型或确定模型参数的数据集
测试集(testing set)
用来验证模型准确性的数据集,但不保证模型的正确性
K折交叉验证
设置K=10, 把原来的数据集随机分成10分,分别为{D1, D2, ..., D10}
接着,使用D1作为测试集,{D2,D3,...,D10}作为训练集,计算得分S1
继续,使用D2作为测试集,{D1,D3,...,D10}作为训练集,计算得分S2
......
最后,使用D10作为测试集,{D1,D2,...D9}作为训练集,计算得分S10
API小结
neighbors.KNeighborsClassifier KNN模型
- knnModel = neighbors.KNeighborsClassifier(n_neighbors=5)
n_neighbors: 分类的个数
return: KNN模型 - knnModel.fit(tData, tTarget) KNN训练方法
tData: 训练数据的属性数据
tTarget: 训练数据的目标数据 - knnModel.score(sData, sTarget) KNN评分方法
sData: 测试数据的属性数据
sTarget: 测试数据的目标数据 - knnModel.predict(pData) KNN预测方法
pData: 需要预测的属性数据
return: 模型预测结果