利用K-NN通过PCA进行图片分类

本文介绍了一个使用K-NN算法并通过PCA降维处理CIFAR-10数据集前1000个图片的小项目。数据已划分为训练集和测试集,并将RGB图像转换为灰度图,接着进行PCA操作,最后应用K-NN进行分类。项目代码可在github上找到。
摘要由CSDN通过智能技术生成

这是一个小项目,用K-NN通过PCA进行图片分类。

首先惯例,破竹先放出github

数据是用cifar-10的第一个batch的前1000个图片

    K    = int(sys.argv[1])
    D    = int(sys.argv[2])
    N    = int(sys.argv[3])
    file = sys.argv[4]

分别代表:k个邻居,PCA降到d维,0到n是test,n到1000是train

upload数据分好train和test

#extract the data from data_batch_1
def unpickle(file):
    import pickle
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='latin1')
    return dict

#divide train set and test set
def divide_train_and_test(dict, n):
    data         = dict['data']
    data_test    = data[ : n]
    data_test    = data_test.reshape(n, 3, 32, 32).transpose(0, 2, 3, 1).astype("float")
    data_train   = data[n : 1000]
    data_train   = data_train.reshape(1000 - n, 3, 32, 32).transpose(0, 2, 3, 1).astype("float")
    labels       = dict['labels']
    labels_test  = np.array(labels[ : n])
    labels_train = np.array(labels[n : 1000])
    return data_test, data_train, labels_test, labels_train

然后从RGB变成灰度图

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值