2019-01-01scikit-learnはPythonの機械学習ライブラリで、簡単に機械学習を試せるので便利です。scikit-learnはNumPyやSciPyなど複数の外部パッケージに依存しているため、利用している環境によってはエラーが発生する場合があります。2019.1」が含まれています。この組み合わせは、Mac上では問題ないのですが、Windows上ではmkl_intel_thread.dllに関するエラーが発生して動作しません。(将来のバージョンアップで解決されるとは思いますが...)mklのバージョンも2018.0.2、2018.0.3、2019.0、2019.1...と複数存在しますが、Windows版のscikit-learnとの組み合わせで動作する最上位バージョンは「2018.0.2」になります。それ以降の「2018.0.3、2019.0、2019.1」では正しく動作しません。2019.1との組み合わせてもscikit-learnが利用できるようになっていました。動作していなかったときの仮想環境は残っていないので動くようになった詳細な原因は不明(何かパッケージが更新された?)ですが、最新の導入方法3として以下に手順を追加しておきます。2019.1」が含まれていますが、この組み合わせではWindows上で正しく動作しません。よって、以下に示す方法でscikit-learn用の環境を作成する必要があります。Windows上でscikit-learnを利用するには、以下のどちらかの方法でscikit-learnの環境を作成する必要があります。Windows上でも正しく動作する古いscikit-learnを使う少し古いscikit-learnを利用する事になりますが、正式な依存関係に基づいたパッケージ構成を使用するので、動作保証の観点では安心できます。最新のscikit-learnを使い、問題のあるmklだけを強制的に入れ替える最新のscikit-learnを利用できますが、定義されている依存関係を無視してmklだけを入れ替えるので、動作保証はありません。自己責任の下で試すことになります。推奨:最新のscikit-learnを使って環境を構築する(2018/12/30追記)パッケージインストール時にmklに関するサイズ不一致の警告は表示されますが、最新パッケージの組み合わせて正しく動作するようになりました。今後は特別なことが無い限り、この3の手順でscikit-learnの環境作成を推奨します。それぞれの導入方法について以下にまとめておきます。どちらにもメリット/デメリットがあるので、目的に応じて使い分けてください。→2018/12/30以降は、3の方法を推奨します。対象環境scikit-learnを導入したときの環境は以下の通りです。AnacondaやPythonのバージョンが少し違っていたとしても、condaでscikit-learn専用の仮想環境を構築するので問題無いと思います。全パッケージをアップデートしてしまうと、パッケージのバージョンが変わって環境を壊してしまう可能性があります。パッケージ間の依存関係はバージョンを含めて管理されているので大抵は大丈夫なのですが、依存設定にミスがあったりすると動かなくなってしまいます。そのため、全パッケージを無条件でアップデート...のような作業は避けた方が無難です。0.19.1」を導入します。2018.0.2」が使用されることになるため、Windows上でも問題無く動作するようになります。Anacondaのコマンドプロンプトを使って、以下の手順でscikit-learn用の仮想環境を作成します。利用するpython、mkl、scikit-learnのバージョンを指定する点がポイントになります。scikit-learn=0.19.1これでscikit-learnを使うための最低限の仮想環境が作成できました。導入されるパッケージは以下のようになります。最新のscikit-learn(0.20.2)を利用したい場合、パッケージの依存関係を無視してmklを強制的に「2018.0.2」のバージョンに差し替えます。動作する保証は無いので自己責任になりますが、軽く試した感じでは正しく動作しています。mkl=2018.0.2これで、mklのバージョンだけが「2018.0.2」に差し替わりました。導入されるパッケージは以下のようになります。py37_03最新のセットを利用する方法(2018/12/30追加)今まで最新バージョンを導入するとmkl_intel_thread.dllに関するエラーで動作していませんでしたが、2018/12/30時点で最新のパッケージを利用すると正しく動作することが確認できました。scikit-learn=0.20.2パッケージ導入の際にmklに関するサイズ不一致の警告(SafetyError)が表示されますが、問題無く動作するようです。導入されるパッケージは以下のようになります。py37_0mkl_intel_thread.dllのエラー対応scikit-learnを使ったプログラムを実行すると、mkl_intel_thread.dllに関するエラーが表示される場合があります。原因はさまざまですが、以下の点を確認してみてください。利用している仮想環境が間違っているPythonでは専用の仮想環境を作って開発することが多いため、scikit-learn用に作成した仮想環境に切り替えているか確認してみてください。activateコマンドで仮想環境を切り替えられます。IDEを利用している場合は、Anaconda3のenvsフォルダ配下に作成された仮想環境フォルダのpython.exeを利用する設定になっているか確認してみてください。上記のscikit-learnの導入手順に書いたとおり、scikit-learnで利用可能なmklのバージョンが限られています。重要なのが、mklと共に導入されるmkl_intel_thread.dllなので、利用しているmklのバージョンが2018.0.2であることを確認してみてください。mklのバージョンが2018.0.3や2019.1の場合は以下のようなエラーになります。正しいバージョンのmklを使っていても、次のようなmkl_intel_thread.dllのエラーが出る場合、C:\Windows\System32フォルダ配下に別バージョンの「mkl_*.dll」が格納されている可能性があります。activateで仮想環境を有効にすると、各仮想環境配下のLibrary\binフォルダのパスが優先されるように設定される(かつエラーメッセージでもLibrary\bin配下のdllが利用されているように見える)のですが、なぜかC:\Windows\System32に入っているmkl_intel_thread.dllの方が参照されてしまうようです。入力すると参照するdllの一覧が表示されるので、この中にC:\Windows\System32が含まれているかどうかで判断できます。Files\ArrayFire\v3\lib\mkl_intel_thread.dllC:\Windows\System32フォルダ配下に「mkl_*.dll」が含まれていた場合は、それらのファイルを削除することで、各仮想環境のLibrary\bin配下のdllが利用されるようになります。Development。