Python 手写数字识别-3-sklearn中的几种算法

要在二的基础上

from mnist_tools import load_mnist, plot_images
from sklearn.metrics import accuracy_score # 准确率
train_x,train_y,test_x,test_y = load_mnist()
train_x = train_x.reshape(-1,28*28).astype("float")/255
test_x = test_x.reshape(-1,28*28).astype("float")/255

逻辑回归

from sklearn.linear_model import LogisticRegression # 逻辑回归
lr = LogisticRegression(multi_class='multinomial',solver='lbfgs')
lr_y = lr.fit(train_x,train_y).predict(test_x)
accuracy_score(test_y,lr_y) # 预测准确率

把训练结果保存起来,供以后做预测

import pickle

with open("lr.pkl","wb") as f:
    pickle.dump(lr,f) # 写入文件当中
with open('lr.pkl',"rb") as f:
    lr_pkl = pickle.load(f) # 读取出来
lr_pkl_y = lr_pkl.predict(test_x)
accuracy_score(test_y,lr_pkl_y)

k近邻算法

from sklearn.neighbors import KNeighborsClassifier # k近邻算法
knn = KNeighborsClassifier(n_neighbors=1)
knn_y = knn.fit(train_x[::10],train_y[::10]).predict(test_x)
accuracy_score(test_y,knn_y)

决策树算法

from sklearn.tree import DecisionTreeClassifier # 决策树算法
dt = DecisionTreeClassifier()
dt_y = dt.fit(train_x[::5],train_y[::5]).predict(test_x)
accuracy_score(test_y,dt_y)

支持向量机算法

from sklearn.svm import SVC # 支持向量机算法
svm = SVC()
svm_y = svm.fit(train_x[::100],train_y[::100]).predict(test_x)
accuracy_score(test_y,svm_y)

随机森林算法

from sklearn.ensemble import RandomForestClassifier,AdaBoostClassifier
rf = RandomForestClassifier() # 随机森林算法
rf_y = rf.fit(train_x[::100],train_y[::100]).predict(test_x)
accuracy_score(test_y,rf_y)

AdaBoostClassifier

ada = AdaBoostClassifier()
ada_y = ada.fit(train_x,train_y).predict(test_x)
accuracy_score(test_y,ada_y)

神经网络算法

from sklearn.neural_network import MLPClassifier # 神经网络算法
mlp = MLPClassifier()
mlp_y = mlp.fit(train_x,train_y).predict(test_x)
accuracy_score(test_y,mlp_y)

PCA

from sklearn.pipeline import Pipeline
from sklearn.decomposition import PCA
pca = PCA(n_components=50)
pca_lr = Pipeline([('s1',pca),('s2',lr)])
pca_lr_y = pca_lr.fit(train_x,train_y).predict(test_x)
accuracy_score(test_y,pca_lr_y)

Pipeline

pca_mlp = Pipeline([('s1',pca),('s2',mlp)])
pca_mlp_y = pca_mlp.fit(train_x,train_y).predict(test_x)
accuracy_score(test_y,pca_mlp_y)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值