用k近邻和logistic回归模型识别手写数字,并比较结果

1.导入模块

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#机器学习模型
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
#机器学习数据集
import sklearn.datasets as datasets
#绘图
import matplotlib.pyplot as plt
%matplotlib inline

2.获取训练数据和预测数据

#导入datasets模块中的数据
digits=datasets.load_digits()
data = digits.data
target = digits.target
images = digits.images

#训练数据
X_train=data[:1600]
Y_train=target[:1600]
#测试数据
x_test = data[1600:]
y_true = target[1600:]

3.确定学习模型

#k近邻算法模型
knnclf = KNeighborsClassifier(n_neighbors=5)
#logistic模型
logistic = LogisticRegression(solver='lbfgs')

4.用训练数据训练模型

knnclf.fit(X_train,Y_train)
logistic.fit(X_train,Y_train)

5.用模型预测结果

y_pre_knn = knnclf.predict(x_test)
y_pre_logistic=logistic.predict(x_test)

6.查看算法得分

knn_score = knnclf.score(x_test,y_true)
logistic_score = logistic.score(x_test,y_true)
display(knn_score,logistic_score)

7.绘图,展示结果

plt.figure(figsize=(16,16))
for i in range(100):
    plt.subplot(10,10,i+1)
    plt.imshow(x_test[i].reshape(8,8))
    plt.axis('off')
    title = 'KNN:'+ str(y_pre_knn[i]) + '\nLOGIC:' + str(y_pre_logistic[i]) + '\nTrue:' + str(y_true[i])
    plt.title(title)

这里写图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值