0から始める機械学習(データの準備編)

みんな大好き金曜日。

1週間(正しくは5日間だけど)続けられた達成感もあってウッキウキ。

 

今回は機械学習に必要なデータの準備について説明していくよ。

そしてついに始まるプログラミング。

 

とりあえず機械学習してみたい!って方向けの自由に利用可能なデータを使った方法と、自分で用意したデータの形を整えて使う方法の2種類を紹介していきます。

 

本日の内容はコチラ↓

    1. そもそも機械学習ではどんなデータを用意すればいいの?
    2. (初心者向け)irisデータセットを使ってサクサク準備!
    3. (中級者向け)自作のデータを整えてみよう!

 

ではでは早速始めていこう。

 

 

そもそも機械学習ではどんなデータを用意すればいいの? 

 

機械学習に必要なデータは、

  • 分類器を学ばせてモデルを作るための学習データ(trainデータ)
  • モデルの評価を行うテストデータ(testデータ)
  • 分類器の学習時に正しく学習が出来ているか確認するための評価データ(validationデータ、主に深層学習で必要とされる)

の3種類あるよ。(多分合ってると思う・・・)

 

今回は深層学習については触れないから、学習データとテストデータについてだけ説明していきます。

 

といっても学習データもテストデータも形式は同じで、ラベルデータ特徴量データの2種類から構成されるよ。

例えば鳥と犬と猫を機械学習で分類したい!って時に必要なデータはこんな感じ↓

 

ラベルデータと特徴量データ

ラベルデータと特徴量データ

 

イメージとしてはこんな感じ。分類器はそれぞれの動物の特徴を学習データから学んで、いざテストデータを入力してみると学習した結果からどの動物っぽいかを教えてくれる。各動物の名前の後についてる(数値)はその動物のデータがいくつあるかを意味してるけど、特に気にしなくて問題ない。

 

上の例だと空を飛ばない動物は基本的に犬か猫っぽいけど、足が2本であれば鳥の中のペンギンじゃないか?って感じで認識結果を出してくれる(はず)。

 

実際に図みたいなデータを使うことがあるかは微妙だけど、決定木って手法を使った機械学習には適しているかも。

 

基本的にこの形式に沿って学習データ・テストデータ・評価データを作成すれば、色々な機械学習手法を試すことができるから、次はデータの作り方について学んでいこう!!!

 

続きを読む

0から始める機械学習(環境構築編)

モチベーション君が頑張ってくれたから3日坊主回避。 

毎日投稿は多分難しいし、”隔日” くらいで投稿して一歩ずつ ”確実” に進めるつもり。

親父ギャグは作法。

 

今日の内容はこんな感じ↓ (目次の作り方忘れた)

  • 機械学習ってどうやるの?
  • プログラミングの環境を整えよう 

機械学習については何回かに分けて更新していくよ。

(一度に書いちゃうとすぐネタ切れになるからね。)

 

 

 機械学習ってどうやるの?

 

まず機械学習の流れはざっくり分けて3つある。 

  1. 学習させたいデータの準備
  2. 分類器を学習させる / モデルの構築(パラメータチューニング)
  3. モデルの評価

これはあくまで個人的な分け方だから参考までに。

データの準備にもデータ量を増やすためのデータ拡張だったり、分類器の認識精度を高めるためにパラメータのチューニングが必要だったりと色々あるよ。

 

今後はひとまず簡単な機械学習方法について紹介していこうと思う。

プログラム置いといて好き勝手動かしてね!だとプログラミング始めたばかりの方が困るだろうから、今回はPythonを使ってプログラミングする環境を整えていこう。

 

 

 プログラミングの環境を整えよう

 

おすすめの開発環境はAnaconda-Navigator × JupyterLab

 

Anaconda-NavigatorでPythonのバージョン管理とライブラリの導入

JupyterLabでプログラムの実装と実行

 

って感じ。

ちなみにJupyterLabはAI関連に携わってる人なら知ってる、あるいは使ったことあるかもしれない。 プログラムを部分部分に分けてそれぞれの実行結果を残しておけるのが便利。対話モード的な?

 

説明はこれくらいにして早速導入していこう。

といってもダウンロードするのはAnaconda-Navigatorアプリだけ。

以下のサイトのInstallationからダウンロードできるよ。

docs.anaconda.com

 

ダウンロードしたら早速アプリを開こう。

Anaconda-Navigatorの初期画面

Anaconda-Navigatorの初期画面

これはMacOSで開いた場合だけどWindowsでもLinuxとかでも似たようなもん。きっと。

画面右上のJupyterLabのLaunchをクリックすると、JupyterLabがブラウザ上に開かれるよ。 フォルダ欄にごちゃごちゃと色々あるのは今後使っていくプログラム。

JupyterLabの初期画面

JupyterLabの初期画面。Notebookをクリックしよう。

NotebookをクリックするとUntitled.ipynbってのが作成されるはず。

試しに適当なプログラムを書いてみる。実行はShift + Enter で(MacOS

プログラムの開発画面

プログラムの開発画面。色々と試してみよう。

この画像ではaとbに値を保存してるけど、実際は学習させたいデータを保存しておくことになる。

 

 

 

今回最後に説明するのは、プログラミングをするにあたって必須なライブラリの導入について。ライブラリは色々あるけど、説明は省きます(手抜き) 

 

Anaconda-Navigatorに戻ってEnvironmentsを押してみよう。

こんな画面になるはず↓

Anaconda-NavigatorのEnvironments画

Anaconda-NavigatorのEnvironments画面。ここでライブラリをインストールする。

例えば数値計算に必要なライブラリはnumpy、機械学習であればscikit-learnとかtensorflowとか。上の画面だとInstalledが選択されてるからインストール済みのライブラリが表示されてるね。試しにSearch Packagesにnumpyと入れてみよう。

 

numpyがインストール済み

numpyがインストールされてる。新しいライブラリをインストールしたいときは、
Not InstalledかAllに変更してからライブラリ名を検索する。

 

numpy入ってないやん!

 

って方は後々使うことになるからダウンロードしてみてね。

他の必須ライブラリについては必要になったら適宜説明していきます。

環境構築はこれで完了!お疲れ様でした。

 

次回は学習させたいデータを準備するプログラムについて書いていこうかな。 

といっても自前で使ってるのは環境音を認識させるためのものだから、万人ウケはしなそう。

 

ではでは。また次回。

 

わかめ、ブログを始める

ブログ、始めてみました

 

多分ほとんどの人があなたは一体誰?ってはてなマークが浮かぶだろうから自己紹介。

地方でエンジニア目指して勉強中のラスト大学生してます。

 

めちゃめちゃプログラミング出来るよ!って訳でもないし、逆にこの実力でもこれくらいのプログラミングなら出来るんだ〜って思ってもらえればと。

 

みんなのプログラミングを始めるきっかけになれればいいな。

 

 

 就活終わってとても暇

 

就活も終わり、とにかく暇を持て余す毎日。

 

フォロワーのみんなは社会人なのに、ひとり学生ニートしてるのヤバすぎ!?

 

 とか

 

メーカーで労働に見合わない対価得る人生ヤバすぎ!? 

 

とか思ったという冗談はほどほどにして、

個人でブログ開設したりwebアプリ開発して副収入得るぞ〜と思って勉強始めたものの初心者には荷が重すぎた...orz。

(エンジニアはポートフォリオ残しておくと役立つって聞いたのもあるけど)

 

とりあえず残念すぎる進捗載せとくね。

 

わかめのwebブログ(ローカル)

プログラミング学習サイトに沿って作ったやつ

 

 ローカルだとしっかり見えるんだけどね。herokuにアップした途端cssも画像も反映されないんだよね。staticフォルダ作らないといけないとかなんとか。知らんけど。

herokuが何?ってのは後々紹介する(かもしれない)。

 

 

webサイトの失敗作(オンライン)

cssも画像も反映されないオワコンサイト

 

というわけでブログは一旦はてなブログにお任せして進めつつ、並行してweb系その他もろもろの勉強もしようって結論に。

 

 

 どんな記事を書いていく予定か

 

とりあえずは機械学習とかwebアプリ開発に関する情報を書いていく予定。

webアプリ開発についてはまだまだ初心者だし、次回は難しいと思われがち(?)な機械学習のはじめ方についてでも書こうかな。 

 

 意外と編集してプレビューしてってブログ書いてくの面白いから多分次回もあると思う。

 

がんばれモチベーション君