スポンサーリンク
こんにちは,しまさん(@shimasan0x00)です.
「実践力を身につけるPythonの教科書」を使って勉強をしていたのですがChapter5-4にある機械学習の部分で少しつまずきました(p233).
「Scikit learnではじめる機械学習」の部分で以下のエラーにあいました.
DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses import imp
使用したコードはこれです.
from sklearn import datasets
今回はこのエラー対処方法について紹介します.
スポンサーリンク
環境
macOS Mojave(10.14)
pyenv Python3.6.7
scikit-image 0.14.1
scikit-learn 0.20.0
scipy 1.1.0
スポンサーリンク
impをimportlibへ書き換える
まずはエラーの全文を見てみましょう.
/Users/USERNAME/.pyenv/versions/3.6.7/lib/python3.6/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py:47: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
となっています.
ふむ,cloudpickle.pyの中にあるimport impを書き換えてやればいいだけのようですね.
vim /Users/USERNAME/.pyenv/versions/3.6.7/lib/python3.6/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py
# import imp
import importlib
書き直したら…

エラー出ないぞ!!!!!!!!やりました!!!!
スポンサーリンク
次のエラーや…(cross_validation)
進めていくとsklearnのcross_validationを使う場所があります(p236).
ですがsklearn0.20ではもうありません.
該当部分を「model_selection」に書き換えてください.
そうするとちゃんと結果が出ます.
分類器の情報= SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma=0.001, kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
正解率= 0.9911111111111112
レポート=
precision recall f1-score support
0 1.00 1.00 1.00 43
1 0.98 1.00 0.99 45
2 1.00 0.98 0.99 42
3 1.00 1.00 1.00 34
4 1.00 1.00 1.00 59
5 1.00 0.98 0.99 44
6 1.00 1.00 1.00 44
7 0.98 1.00 0.99 58
8 0.98 1.00 0.99 40
9 0.97 0.95 0.96 41
micro avg 0.99 0.99 0.99 450
macro avg 0.99 0.99 0.99 450
weighted avg 0.99 0.99 0.99 450
さいごに
今回はScikit learnを使用する際に出たエラーを対処しました.
「実践力を身につけるPythonの教科書」はチャットのWebアプリを作ったり,コマンド実装したり作りながら学べるので楽しいですね.
この勢いでさくっと終わらせます.
参考

[入門]Python初心者が圧倒的成長するために使うサービス,本Python初心者向けの本,Webサービスについて網羅的に紹介をしています.Pythonの勉強で私が実際に使用した本です.入門書をさらに細分化し,学ぶならどのレベルがいいのかわかりやすくしています....
スポンサーリンク
スポンサーリンク