KNN算法实现(Mnist数据集)
来源:互联网 发布:卖二手衣服的软件 编辑:程序博客网 时间:2024/06/15 22:00
参考 http://blog.csdn.net/wds2006sdo/article/details/51933044
#!/usr/bin/python# -*- coding:utf8 -*-import pandas as pdimport numpy as npimport timefrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scoredef predict(test_features,train_features,train_labels): predict=[] count=0 train_size=len(train_labels) test_size=len(test_features) for test_vec in test_features: print 'predicting:',count,'/',test_size count+=1 max_index=-1 dist_max=0 knn_list = [] for i in range(k): train_vec=train_features[i] dist=np.sqrt(np.sum(np.square(test_vec-train_vec))) label=train_labels[i] knn_list.append((dist,label)) for i in range(k,train_size): label = train_labels[i] train_vec = train_features[i] dist = np.sqrt(np.sum(np.square(test_vec - train_vec))) #find the max value of present knn_list if max_index==-1: # 如果 max_index=-1,则发生了交换,需要重新寻找交换后 knn_list的最大值 for j in range(k): if knn_list[j][0] > dist_max: dist_max=knn_list[j][0] max_index=j # if dist < dist_max,swap them if dist < dist_max: knn_list[max_index]=(dist,label) dist_max=0 # dist_max=0 ,为下次寻找最大值 max_index=-1 #class_count=[0 for i in range(k)] class_count=np.zeros(k) for dist,label in knn_list: #notice class_count[label]+=1 max_count=max(class_count) for i in range(k): if max_count==class_count[i]: predict.append(i) #notice append () break return np.array(predict)k=10if __name__=='__main__': print ('Start reading data...') time_1 = time.time() raw_data=pd.read_csv('../data/train.csv') data=raw_data.values imgs=data[::,1::] labels=data[::,0] train_features,test_features,train_labels,test_labels=train_test_split(imgs,labels,test_size=0.33,random_state=1) time_2 = time.time() print 'reading cost ', time_2 - time_1, ' seconds', '\n' print 'Start predicting...' test_predict = predict(test_features, train_features, train_labels) time_4 = time.time() print 'predicting cost ', time_4 - time_2, ' seconds', '\n' score = accuracy_score(test_labels, test_predict) print "The accruacy socre is ", score
阅读全文
0 0
- KNN算法实现(Mnist数据集)
- 李航《统计学习方法》第三章——用Python实现KNN算法(MNIST数据集)
- 一般knn算法识别mnist数据集(代码)
- 机器学习算法之KNN识别mnist数据集
- python 实现 knn分类算法 (Iris 数据集)
- 数据挖掘-Knn算法实现
- tensorflow实现KNN识别MNIST
- 使用KNN对MNIST数据集进行实验
- java实现Knn算法,用iris数据集进行验证
- python 实现 softmax分类器(MNIST数据集)
- (7)数据挖掘算法之kNN
- KNN算法---解析数据
- 使用PCA + KNN对MNIST数据集进行手写数字识别 python
- 【机器学习】基于MNIST数据集的KNN,SVM分类器测试
- mnist数据集转成图片 Python 实现
- tensorflow实现MNIST数据集识别
- KNN算法---c++实现KNN算法
- KNN的matlab实现算法(转载)
- 初窥javaScrit权威指南,第七章 数组(1)
- diea导入别人的项目遇到的一丢丢问题
- vue自定义事件 子组件向父组件通信
- TensorFlow学习--tf.reduce_mean()
- 扩展欧几里得--part1
- KNN算法实现(Mnist数据集)
- SHELL 十三问
- CF GYM 100548 International Collegiate Routing Contest(2014ACM西安现场赛Problem I)不懂提
- iOS面试题大全点亮技能树
- [解决办法]Python中使用json.loads解码字符串时出错:ValueError: Expecting property name: line 1 column 2 (char 1)
- 第一次发博客
- 简单理解混淆矩阵—Matlab详细代码注解
- 上机练习题——异常处理 课堂练习2:
- HADOOP搭建