Keras数据集 mnist 再KNN算法下的测试结果

from keras.datasets import  mnist
import numpy as np
import pandas as pd

(train_data,train_labels),(test_data,test_labels)=mnist.load_data()

train_data=np.where(train_data>0,1,0)
test_data=np.where(test_data>0,1,0)

def countXsd(train_data,test_data):
    n=0
    for test,testlab in zip(test_data[:1000],test_labels[:1000]):
        n=n+fenlei(train_labels,np.sum(np.sum(((train_data-test)*(train_data-test)),axis=1),axis=1),testlab)
    return n

def fenlei(train_labels,test_train,testlab):
    t_array=np.vstack((test_train,train_labels))
    t_array=t_array[:,t_array[0].argsort()]
    # 排序
    d=dict(pd.DataFrame(t_array[:,:100]).loc[1].value_counts())
    n=max(d, key=d.get)
    if n==testlab:
        return 1
    else:
        return 0

print(countXsd(train_data,test_data)/test_data.shape[0])

# 10分钟
# 精确度:0.0926
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值