まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

マイナスから始める機械学習入門1 Pythonを使えるようにする

あるプロジェクトで必要にかられて機械学習に手を出すことになりましたので、メモ代わりに。

【対象】

  • ProcessingやoFでコードを書いたことはあるが、ライブラリを自分で作ったことはない
  • 機械学習なにそれおいしいの?
  • 日本人だから英語わからんし
  • 微積?ベクトル?使わないから忘れた。線形代数って習った気がするけど何だっけ?
  • 本とか買いたいけど、かけられるお金がそんなにあるわけじゃない・・・できるだけネットで済ませたい

な、ある意味でマイナスからのスタートです。私はこれ+SwiftObjective-Cをちょっとだけ書いたレベルです。

機械学習とは?
簡単に一言でいえば、「データからパターンやルールなどを自動的に学習して、予測や分類を行ってくれるもの」でしょうか。
株価予想や積雪量予想などのコードを上げて下さっている方もみえますね。
http://qiita.com/hiroeorz@github/items/a7907bb3dd6f4e407ffd


大きく分けて、「教師あり学習」「教師なし学習」があります。
教師あり学習とは?
「これを入力したらこれを出力しなさい」という例をいくつかマシンに教えます。
そして、新しい入力が来たときに正しい出力がされるような仕組み(関数)を作ります。
分かりやすい例がメールの迷惑メールフィルタですね。
「これは迷惑メール」「これは重要なメールだよ」「これは恋人からのメールだよ」などと教えてあげることで、次から自動で分類してくれます。

教師なし学習とは?
教師なし学習では「これは迷惑メール」「これは迷惑メールじゃないよ」というお手本がありません。
データからパターンやルール、特徴を読み取ってデータを処理します。



理論は追い追い見ていくとして、まず機械学習に関するコードを書くために必要な言語、Pythonから見ていくことにします。

Pythonとは?
オブジェクト指向言語で、Google Appなどでも使われているようです。


Python開発環境インストール方法(Mac)
後から細々としたことを行う必要が出てきますが、ひとまず簡単に開発環境を整えてPythonのお勉強からスタートしたいと思います。

  1. ここにアクセスし、http://qiita.com/ms-rock/items/6e4498a5963f3d9c4a67 3.xのバージョンをダウンロードする
  2. ダウンロードされたパッケージをダブルクリックしてインストール
  3. ここから https://www.jetbrains.com/pycharm/download/ 開発環境「PyCharm」をダウンロードする。Communityで良いと思います
  4. ダウンロードされたパッケージをダブルクリックしてインストール
  5. PyCharmをダブルクリックして起動、「I do not have a previous version of PyCharm …」を選択してOKを押す
  6. 「Create a new project」を押して、新しいプロジェクトを作成する
  7. 名前を英語でつけるとPyCharmが起動する
  8. 左側のウィンドウに表示されているプロジェクト名のところ(フォルダアイコンのとなり)を右クリックして、「New」→「Python File」を選択して名前を英語でつける
  9. 右側のウィンドウにコードを書いて保存して、Runボタンを押す。例えば、print("Hello World!")
  10. 最初に実行したときは実行するファイルを選択する画面が出てくるので、先ほどつけたファイル名を選択する


Preferenceから、Editor→General→Appearanceを選択し、以下の項目をONにしておくと使いやすいかと思われます。

  • 行番号を表示 Show line number
  • メソッドの区切り線 Show method separators
  • 空白の表示 Show whitespaces