Windowsで機械学習 (scikit-learnの使用)

シェアする

  • このエントリーをはてなブックマークに追加

こんばんは。お久しぶりです。

独自ドメインを取得し、当ブログはお引越しをしました(ここは新たなドメインによるページです)。

さて、最近、大学の研究室のゼミ課題で機械学習をやっております。

私が使用しているPCはWindowsで、今まで機械学習を扱ったことが無かったので、少し導入に苦労しました。

そこで、環境の構築から簡単な機械学習までの手順を記録しておきます。

今回用いるのはscikit-learnという、Pythonの機械学習用ライブラリです。

Anacondaのインストール

WindowsにPythonや基本的なライブラリ一式をインストールするには、Anacondaというものをインストールするのが良いようです。

Anacondaをインストールすると、pythonだけでなく、numpyやscikit-learnなどの主要なライブラリを一挙にインストールしてくれます。

以下のサイトを参考にしてインストールします(丸投げ)

Anaconda を利用した Python のインストール (Windows) | Python でデータサイエンス

インストール時に、Anacondaがどこにインストールされるかを覚えておきます。

(私はデフォルトから変更してC:\Anaconda3にインストールするようにしました)

最新版のインストーラをダウンロードし、インストールしたら、次はPyCharmをインストールします。

PyCharmのインストール

PyCharmとは、Pythonの統合開発環境(IDE)です。つまり、Python開発をやりやすくするためのソフトですね。

これもまた、以下のサイトを参考にしてインストールします。

PyCharm のインストール | Python でデータサイエンス

PyCharmをインストールしたら、まず、コンピュータ上の好きな位置に作業用フォルダを作り、PyCharmからそのフォルダに新規プロジェクトを作成します。

(私はD:\prog\PycharmProject\ というフォルダの中にプロジェクトを作成するようにしています)

プロジェクトを作成したら、メニューバーの File > Setting から設定を開き、左の設定項目一覧から Project:[プロジェクト名] と書かれている項目をクリックし、Project Interpreter を開きます。

その画面で、Project Interpreter にインストールしたAnaconda3の中にあるpython.exeを設定します(私の場合はC:\Anaconda3\python.exeです)。

しばらく待つと、下の枠にパッケージがたくさん表示されるので、anacondaを選択し、OKをクリックします。私の場合はanacondaのバージョンは4.3.1でした。

これでscikit-learnを使う準備はできました。

Kaggleで試してみる

Kaggleという機会学習コンペサイトがあります。

ここでは、さまざまな問題に対して、学習用データと検証用データが用意されており、検証用データから決められた予測を行い、結果をCSVファイルに出力して提出すると、その精度が計算され、ランキング化されます。

参加にはユーザー登録が必要です。

参考: Kaggle事始め | Qiita

今回は、手書き数字の画像データから数字を識別するDigit Recognizerをやってみます。

https://www.kaggle.com/c/digit-recognizer

PyCharmからDigit Recognizer用のプロジェクトを作成し、メインとなるpyファイルを作成します。

pyファイルと同じディレクトリに、KaggleのDigit RecognizerのDataページからダウンロードしたtrain.csvとtest.csvを配置します。

今回は、サポートベクタマシン(SVM)を利用して識別を行ってみます。

SVMは、sklearn.svmからSVCとして利用できます。

pyファイルに、以下のコードを記述してみます。

識別を行う前に、データのスケーリングを行っています。スケーリングとは、各次元についてデータが-1から1までの範囲などにちょうど収まるようにデータを拡大・縮小することです。これをしないと上手くいきませんでした。

学習の詳細やpythonの記述については別途調べてください。

結果の記述で少し面倒なことをしています。これは、pythonでデータを扱うために使用しているpandasというライブラリにおいて、インデックスが0から始まるようになっているためです(出力の形式は1から始まるインデックスを要求しています)。

出力の形式は、問題ページのOverviewページのEvaluationから見られます。

上記のプログラムで生成したファイルを提出すると、約96%の正確さで識別をすることができるようです。

更に識別性能を上げるには、画像を少し傾けたものを訓練用データとしてデータ量を増やすとかがあるみたいです。

以上、Windowsで機械学習を行う方法でした。

それでは皆さん、良い機械学習ライフを。

スポンサーリンク
レクタングル(大)
レクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする