1. 程式人生 > >sklearn 0.17 版本 方法過時問題

sklearn 0.17 版本 方法過時問題

發現問題

最早使用的是0.15 版本的sklearn 後來更換的開發環境,使用了0.17版本,但是出現了無法執行的問題,在一番搜尋之後在stackoverflow上找到了答案

DeprecationWarning: Directsupport for sequence of sequences multilabel representation will be unavailable from version 0.17. Use sklearn.preprocessing.MultiLabelBinarizer to convert to a label indicator representation.

之前的程式碼是這樣寫的,直接使用提取出來的標籤進行fit

cvt = CountVectorizer(tokenizer=self.tokenizer, min_df=4, stop_words=self.stop_words)
self.classifier = Pipeline([('vectorizer', cvt),
                ('clf', OneVsRestClassifier(SGDClassifier(loss='hinge', alpha=1e-5, eta0=0.25, n_iter=50,), n_jobs=12))])

words, tags = self
.inputData(self.train_file) self.classifier.fit(words, tags) pickle.dump(self.classifier, open("zzz.pickle", 'wb'))

解決方案

使用 MultiLabelBinarizer 先將多標籤進行多標籤二值化,然後將轉換的編碼表儲存下來
然後再使用之前的方式,使用訓練資料對模型進行fit,然後再把真正的模型dump下來,這樣就可以成功運行了。
感覺是sklearn升級時候不再支援使用原始的資料格式進行fit,必須要提前進行多標籤二值化

words, tags_unique, tags_normal = self
.inputData(self.train_file) tags_handled = list(tags_unique) print "\t".join(tags_handled) mlb = MultiLabelBinarizer(classes=tags_handled) tags_train_mlb = mlb.fit_transform(tags_normal) pickle.dump(mlb, open("mlb_ind.pickle", 'wb')) # text.CountVectorizer:將文字轉換為每個詞出現的個數的向量 # text.TfidfVectorizer:將文字轉換為tfidf值的向量 # text.HashingVectorizer:文字的特徵雜湊 cvt = CountVectorizer(tokenizer=self.tokenizer, min_df=4, stop_words=self.stop_words) # OneVsRestClassifier:1 - rest多分類(多標籤)策略 # OneVsOneClassifier:1 - 1 多分類策略 # OutputCodeClassifier:1個類用一個二進位制碼錶示 clf = OneVsRestClassifier(SGDClassifier(loss='hinge', alpha=1e-5, eta0=0.25, n_iter=50, n_jobs=12)) self.classifier = Pipeline([ ('vectorizer', cvt), # ('tfidf', TfidfTransformer()), ('clf', clf)]) self.classifier.fit(words, tags_train_mlb) pickle.dump(self.classifier, open("zzz17.pickle", 'wb')) print("#### classifier dumped!")

此外有一點需要注意,使用上面訓練的模型進行predict之後,要使用多標籤二值化的編碼表進行反向轉換從而得到真正的計算值

predict = model.predict([company])
mlb = pickle.load(open("mlb_ind.pickle","rb"))
result = mlb.inverse_transform(predict)

相關推薦

sklearn 0.17 版本 方法過時問題

發現問題 解決方案 發現問題 最早使用的是0.15 版本的sklearn 後來更換的開發環境,使用了0.17版本,但是出現了無法執行的問題,在一番搜尋之後在stackoverflow上找到了答案 DeprecationWarni

Android6.0+解決getColor()方法過時

最近發現看到別人編譯程式碼的時候都是用的6.0往上的版本,我還在用5.0的,瞬間有點傷感啊,傷感自己不能與時俱進,玻璃心啊,不多說了,今天做一下筆記,關於getResources().getColor()方法過時的替代方法,在Android的6.0以上的編譯環境中getCo

sklearn.learning_curve 和 cross_validation 0.18版本廢棄警告及解決方法

D:\ProgramData\Anaconda3\lib\site-packages\sklearn\cross_validation.py:41:DeprecationWarning: This module was deprecated in version 0.18 i

NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分頁獲取數據失敗

osi ber modal str 問題 res tor 獲取數據 max 問題代碼如下: var result=repository.QueryOver<modal>() .Where(p=>p.Code==Code)

8.0.11版本Mysql遇到MySQL 服務無法啟動的解決方法

p s 解決方法 details eba 引號 iss 位數 -- 修改密碼 轉:https://blog.csdn.net/iyayaqiqi/article/details/80536110 系統環境:win10(1803),64位 MySQL版本:8.0.11免安

Hibernate 版本問題,註解使用@Entity以及AnnotationConfiguration()方法過時問題。

將 Configuration cfg = new AnnotationConfiguration(); 改成 Configuration cfg = new Configuration(); 3.×的版本開始就是全面用Configutation替代了AnnotationConfig

python3.x中移除了cPickle模組;pycharm執行後出現no module named cv2解決方法;scikit-learn 0.18以及0.20版本中的cross_validati

1.python3.x中移除了cPickle模組,可以使用pickle模組代替。最終我們將會有一個透明高效的模組。 2、pycharm執行後出現no module named cv2解決方法 在win 7 上成功安裝OpenCV之後,發現在PowerShell上能成功使用OpenC

Android 5.0以上版本去掉Button自帶陰影效果的方法

關鍵程式碼: style=”?android:attr/borderlessButtonStyle” 具體配置: <Button android:layout_width="wra

解決Android 5.0以上版本Button自帶陰影效果的方法

今天跟UI對介面,發現一個按鈕使用系統自帶的button會自動有一個陰影。然而在4.x上卻沒有這個問題。直覺就是因為MD導致的Android版本差異。 果斷Google,在stackoverflow上

加密庫 libsodium 1.0.17 釋出,Bug 修復版本

   libsodium 1.0.17 已釋出,更新如下: Bug fix: sodium_pad() didn't properly support block sizes >= 256 bytes. JS/WebAssembly: some

arcgis10.0以後版本,已知座標,生成shp檔案 ---經驗證,此部落格記錄步驟較繁瑣,ArcGIS Desktop有更簡單的方法

arcgis10.0以後版本沒有Write Features To Text File,Create Features From Text File首先要生成這兩個工具,參考連結如下:http://wenku.baidu.com/link?url=3-WqIKo00_KbG9

Android-6.0-23的getColor()過時替代方法

getColor方法在6.0中已經過時: @[email protected] getColor(@ColorResint id)throwsNotFoundException{retu

HBase1.0以上版本號的API改變

reg hbase value col min sea ron factor valueof HBase1.0以上版本號已經廢棄了 HTableInterface,HTable,HBaseAdmin等API的使用。新增了一些API來實現之前的功能: Connect

Kafka 0.11版本新功能介紹 —— 空消費組延時rebalance

次數 新功能 ins 效果 可控 size style soft font   在0.11之前的版本中,多個consumer實例加入到一個空消費組將導致多次的rebalance,這是由於每個consumer instance啟動的時間不可控,很有可能超出coordinato

maven工程:Missing artifact com.sun:tools:jar:1.5.0:system 解決方法

end rop jdk 一個 blog enc files mave system 修改maven的pom文件指定 a.定義屬性<properties><java.home>C:\Program Files\Java\jdk1.6.0_21<

react-native 0.31.0版本在Android上報網絡的錯誤錯

pla efi oid repl var manager img native manage 修改工程裏 DashengChefuMerchant/node_modules/react-native/Libraries/Utilities/UIManager.js if

sklearn參數優化方法

arc 噪聲 valid iat 劃分數 sco jobs 模型 images 學習器模型中一般有兩個參數:一類參數可以從數據中學習估計得到,還有一類參數無法從數據中估計,只能靠人的經驗進行指定,後一類參數就叫超參數 比如,支持向量機裏的C,Kernel,gama,樸素貝葉

Apache Kafka 0.11版本新功能簡介

多個 spa 實現 cer true assign 線程 cto headers Apache Kafka近日推出0.11版本。這是一個裏程碑式的大版本,特別是Kafka從這個版本開始支持“exactly-once”語義(下稱EOS, exactly-once semant

從源碼剖析PopupWindow 兼容Android 6.0以上版本點擊外部不消失

並且 gif upd 兼容 addview 初始 一個地方 || ping PopupWindow可以說是Google坑最多的一個控件,使用PopupWindow的時候沒有遇到幾個坑你都不好意思說你用過它,說一個可能大多數人都遇到過的一個坑:那就是我們想觸摸PopupWin

React-Native到0.44版本後Navigator 不能用的問題

base targe 問題 all pan ria been github pre 新升級 到0.46版本以後 Navigator 不能使用報錯。 ‘Navigator is deprecated and has been removed from this packag