最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python sklearn包——混淆矩陣、分類報(bào)告等自動(dòng)生成方式

 更新時(shí)間:2020年02月28日 16:01:03   作者:無限大地NLP_空木  
今天小編就為大家分享一篇python sklearn包——混淆矩陣、分類報(bào)告等自動(dòng)生成方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

preface:做著最近的任務(wù),對(duì)數(shù)據(jù)處理,做些簡(jiǎn)單的提特征,用機(jī)器學(xué)習(xí)算法跑下程序得出結(jié)果,看看哪些特征的組合較好,這一系列流程必然要用到很多函數(shù),故將自己常用函數(shù)記錄上。應(yīng)該說這些函數(shù)基本上都會(huì)用到,像是數(shù)據(jù)預(yù)處理,處理完了后特征提取、降維、訓(xùn)練預(yù)測(cè)、通過混淆矩陣看分類效果,得出報(bào)告。

1.輸入

從數(shù)據(jù)集開始,提取特征轉(zhuǎn)化為有標(biāo)簽的數(shù)據(jù)集,轉(zhuǎn)為向量。拆分成訓(xùn)練集和測(cè)試集,這里不多講,在上一篇博客中談到用StratifiedKFold()函數(shù)即可。在訓(xùn)練集中有data和target開始。

2.處理

def my_preprocessing(train_data):
  from sklearn import preprocessing
  X_normalized = preprocessing.normalize(train_data ,norm = "l2",axis=0)#使用l2范式,對(duì)特征列進(jìn)行正則
  return X_normalized
 
def my_feature_selection(data, target):
  from sklearn.feature_selection import SelectKBest
  from sklearn.feature_selection import chi2
  data_new = SelectKBest(chi2, k= 50).fit_transform(data,target)
  return data_new
 
def my_PCA(data):#data without target, just train data, withou train target.
  from sklearn import decomposition
  pca_sklearn = decomposition.PCA()
  pca_sklearn.fit(data)
  main_var = pca_sklearn.explained_variance_
  print sum(main_var)*0.9
  import matplotlib.pyplot as plt
  n = 15
  plt.plot(main_var[:n])
  plt.show()
 
def clf_train(data,target):
  from sklearn import svm
  #from sklearn.linear_model import LogisticRegression
  clf = svm.SVC(C=100,kernel="rbf",gamma=0.001)
  clf.fit(data,target)
 
  #clf_LR = LogisticRegression()
  #clf_LR.fit(x_train, y_train)
  #y_pred_LR = clf_LR.predict(x_test)
  return clf
 
def my_confusion_matrix(y_true, y_pred):
  from sklearn.metrics import confusion_matrix
  labels = list(set(y_true))
  conf_mat = confusion_matrix(y_true, y_pred, labels = labels)
  print "confusion_matrix(left labels: y_true, up labels: y_pred):"
  print "labels\t",
  for i in range(len(labels)):
    print labels[i],"\t",
  print 
  for i in range(len(conf_mat)):
    print i,"\t",
    for j in range(len(conf_mat[i])):
      print conf_mat[i][j],'\t',
    print 
  print 
 
def my_classification_report(y_true, y_pred):
  from sklearn.metrics import classification_report
  print "classification_report(left: labels):"
  print classification_report(y_true, y_pred)

my_preprocess()函數(shù):

主要使用sklearn的preprocessing函數(shù)中的normalize()函數(shù),默認(rèn)參數(shù)為l2范式,對(duì)特征列進(jìn)行正則處理。即每一個(gè)樣例,處理標(biāo)簽,每行的平方和為1.

my_feature_selection()函數(shù):

使用sklearn的feature_selection函數(shù)中SelectKBest()函數(shù)和chi2()函數(shù),若是用詞袋提取了很多維的稀疏特征,有必要使用卡方選取前k個(gè)有效的特征。

my_PCA()函數(shù):

主要用來觀察前多少個(gè)特征是主要特征,并且畫圖??纯辞岸嗌賯€(gè)特征占據(jù)主要部分。

clf_train()函數(shù):

可用多種機(jī)器學(xué)習(xí)算法,如SVM, LR, RF, GBDT等等很多,其中像SVM需要調(diào)參數(shù)的,有專門調(diào)試參數(shù)的函數(shù)如StratifiedKFold()(見前幾篇博客)。以達(dá)到最優(yōu)。

my_confusion_matrix()函數(shù):

主要是針對(duì)預(yù)測(cè)出來的結(jié)果,和原來的結(jié)果對(duì)比,算出混淆矩陣,不必自己計(jì)算。其對(duì)每個(gè)類別的混淆矩陣都計(jì)算出來了,并且labels參數(shù)默認(rèn)是排序了的。

my_classification_report()函數(shù):

主要通過sklearn.metrics函數(shù)中的classification_report()函數(shù),針對(duì)每個(gè)類別給出詳細(xì)的準(zhǔn)確率、召回率和F-值這三個(gè)參數(shù)和宏平均值,用來評(píng)價(jià)算法好壞。另外ROC曲線的話,需要是對(duì)二分類才可以。多類別似乎不行。

主要參考sklearn官網(wǎng)

補(bǔ)充拓展:[sklearn] 混淆矩陣——多分類預(yù)測(cè)結(jié)果統(tǒng)計(jì)

 調(diào)用的函數(shù):confusion_matrix(typeTrue, typePred)

 typeTrue:實(shí)際類別,list類型

 typePred:預(yù)測(cè)類別,list類型

結(jié)果如下面的截圖:

 第i行:實(shí)際為第i類,預(yù)測(cè)到各個(gè)類的樣本數(shù)

第j列:預(yù)測(cè)為第j類,實(shí)際為各個(gè)類的樣本數(shù)

true↓ predict→

以上這篇python sklearn包——混淆矩陣、分類報(bào)告等自動(dòng)生成方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何基于Python實(shí)現(xiàn)數(shù)字類型轉(zhuǎn)換

    如何基于Python實(shí)現(xiàn)數(shù)字類型轉(zhuǎn)換

    這篇文章主要介紹了如何基于Python實(shí)現(xiàn)數(shù)字類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Pytorch torch.repeat_interleave()用法示例詳解

    Pytorch torch.repeat_interleave()用法示例詳解

    torch.repeat_interleave() 是 PyTorch 中的一個(gè)函數(shù),用于按指定的方式重復(fù)張量中的元素,這篇文章主要介紹了Pytorch torch.repeat_interleave()用法示例詳解,需要的朋友可以參考下
    2024-01-01
  • Python關(guān)鍵字之global與nonlocal

    Python關(guān)鍵字之global與nonlocal

    這篇文章主要為大家詳細(xì)介紹了Python關(guān)鍵字之global與nonlocal,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • python中@符號(hào)實(shí)例詳解

    python中@符號(hào)實(shí)例詳解

    @是一個(gè)裝飾器,針對(duì)函數(shù),起調(diào)用傳參的作用,下面這篇文章主要給大家介紹了關(guān)于python中@符號(hào)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Python機(jī)器學(xué)習(xí)之決策樹算法實(shí)例詳解

    Python機(jī)器學(xué)習(xí)之決策樹算法實(shí)例詳解

    這篇文章主要介紹了Python機(jī)器學(xué)習(xí)之決策樹算法,較為詳細(xì)的分析了實(shí)例詳解機(jī)器學(xué)習(xí)中決策樹算法的概念、原理及相關(guān)Python實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • python中pop()函數(shù)的語法與實(shí)例

    python中pop()函數(shù)的語法與實(shí)例

    這篇文章主要給大家介紹了關(guān)于python中pop()函數(shù)語法與實(shí)例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python異常學(xué)習(xí)筆記

    Python異常學(xué)習(xí)筆記

    這篇文章主要介紹了Python異常學(xué)習(xí)筆記,本文著重講解了如何自定義一個(gè)異常,需要的朋友可以參考下
    2015-02-02
  • Django Rest framework之權(quán)限的實(shí)現(xiàn)示例

    Django Rest framework之權(quán)限的實(shí)現(xiàn)示例

    這篇文章主要介紹了Django Rest framework之權(quán)限的實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • python 實(shí)現(xiàn)list或string按指定分段

    python 實(shí)現(xiàn)list或string按指定分段

    今天小編就為大家分享一篇python 實(shí)現(xiàn)list或string按指定分段,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 基于wxpython開發(fā)的簡(jiǎn)單gui計(jì)算器實(shí)例

    基于wxpython開發(fā)的簡(jiǎn)單gui計(jì)算器實(shí)例

    這篇文章主要介紹了基于wxpython開發(fā)的簡(jiǎn)單gui計(jì)算器,實(shí)例分析了基于wxpython實(shí)現(xiàn)簡(jiǎn)單桌面應(yīng)用程序的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

杭锦旗| 图们市| 湖口县| 浮梁县| 祁门县| 新营市| 鹰潭市| 綦江县| 美姑县| 富锦市| 安溪县| 洞头县| 石渠县| 辽宁省| 理塘县| 华阴市| 满洲里市| 蓬溪县| 宣城市| 黄山市| 大姚县| 荔浦县| 河源市| 江口县| 西吉县| 鄯善县| 岑溪市| 昌黎县| 长阳| 平凉市| 类乌齐县| 永吉县| 武强县| 沈阳市| 广南县| 无棣县| 泌阳县| 德兴市| 潍坊市| 天津市| 永昌县|