首页 > 编程知识 正文

Sklearn多分类 手写数字多分类 混淆矩阵 F1 多标签分类器 多输出分类器

时间:2023-05-03 16:02:52 阅读:26144 作者:3557

github :https://github.com/gaowanlu/machine learning-deep learning

关键字:

手写数字多分类混淆矩阵F1多标签分类器多输出分类器

Knn

手写数字多分类fromtensorflowimportkerasfromsklearn.svmimportsvcimportnumpyasnpimportpickle (x _ train,y_train ),) x_test y _ test (=keras.datasets.Mn ist.load _ data ) #过渡数据集格式x _ train _ transed=[ ] forindexinrange (len ) ) x _ ttata forindexinrange(len ) x_test ) ) :x_test_transed.append ) x_test_transed print (正在训练) SVM _ CLL y_train ) ) print ) )培训完成) ) print ) )正在保存模型) ) withopen ) ' wb ' ) asfw:#pickle.dump(SVM_clf,fff ' rb ' ) asfr:model=pickle.load(fr ) print (正在使用型号) result=model.predict ([ x _ train _ transed [0] ],) x_train_transed[3],x_train_transed[4] ) print(result ) #实际sklearn训练45个二元分类器,获得对图像的决策得分,得分最高看呼叫

some _ scores=model.decision _ function ([ x _ train _ transed [0] ) print (some _ scores ) #得分最高为5 y_train=y_train[:1000]#OVO和OVR# 使用3359blog .的OneVsOneClassifier或OneVsRestClassifier类froms klearn.multiclassimportonevsrestclassifierovr _ clf=onevsrer train_transed, y_train(print(OVR_clf.predict ) [x_train_transed[0] ) SGDClassifier或randomforestclassifierfromsklearn.linear _ modelimportsgdclassifierfromsklearn.ensembleimportrandomforesttion 1000,tol=1e-3,random_state=42 ) forest _ clf=randomforestclassifier ) random _ stater y _ train (forest _ cclf ) y_train(print(SGD_clf.predict ) [x_train_transed[0]] ) print (print _ clf.predict ) [ x _ train ] 将实例转换为多个类print (SGD _ clf.decision _ function ([ x _ train _ transed [0] ) ) ) ) )可直接分类为交叉验证froms klearn.model _ selectionimportcross _ val _ score result=cross _ val _ score (sggtion ) x _ train _ trans core scoring=' accuracy ' ) print('3折扣交叉验证)、result (# [0. 86592681.86978698.854448 ] 似乎都在80%以上就可以了(轻松缩放输入的froms klearn.preprocessingimportstandardscalerscaler=standandardscaler x _ train _ transealer aled=scaler.fit _ transform (x _ train _ scaled=scaler.fit _ transform ) ) x65 x_train_scaled,y_train, result ) froms klearn.model _ selectionimportcross _ val _ predictfromsklearn.metricsimportconfusion _ matrixfromatplort x_train_transed,y_train,cv=3) conf_MX=confusion_matrix ) y_train, cv=3) conf _ MX=confusion _ y _ train _ pred (使用print (conf _ MX ) Matplotlib生成混淆矩阵PLT.matshow(conf_MX ) cmap=PLT.cm.gray (PLT.show ) ) )的keepdims=True ) norm _ conf _ MX=conf _ MX/row _ sums NP.fill _ 0 ) #填充对角线为0PLT.magonal b ) a的横坐标b的纵坐标为白色(那么,b为被预测为a的数量多的多标签识别器)图像比喻)茉莉、xsdjy的照片慢慢拍摄的情况下)为) 1, 应该输出0,1 ) #不是wjdxmy、kddyj,而是xsdjy# k近邻的froms klearn.neighborsimportkneighborsclassifiery _ train _ large=(y _ train=7) ),即y _ mu multilabel=NP.c _ b ) a表示y _ multilabel (result=KNN _ clf.predict ([ x _ train _ train _ train _ trarailabel ] ),其指示是否为奇数KNN _ clf=7b result ) #模型评估#平均f1 froms klearn.metricsimportf1_ scorey _ train _ KNN _ pred=cross _ val _ predict (KNN _ clf,) average='macro ' ) print ) knnaverageF1value 100,(len(x_train_transed (,784 ), int ) ) #训练集加噪声x _ train _ mod=x _ train _ transednoise=NP.random int ) # 测试集加噪声x _ test _ mod=x _ test _ transednoisey _ train _ mod=x _ train _ transedy _ test _ mod=x _ test y y

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。