機械学習エンジニアを目指す

【3週目】数学できないWEBエンジニアのAIジョブカレ体験記 – 教師あり学習(分類)

こんにちは、フリーランスエンジニアのとだこうき(cohki0305)です!

AI ジョブカレ(AI JOB COLLE)という機械学習を学ぶプログラムスクールに通っていたのですが、そのときに何を学んだのかを紹介していこうと思います。

僕は高校数学までしかできない、文系人間なのですが、それでも問題なく卒業できましたよ!

AI ジョブカレは 8 回に渡って授業を行っていくのですが、今回はその 3 回目の内容です。

前回(2 回目)は、教師あり学習について学びました。いろんな情報からボストンにある家の価格を予想するというものでした。

あわせて読みたい
【2週目】数学できないWEBエンジニアのAIジョブカレ体験記 - 教師あり学習こんにちは、フリーランスエンジニアのとだこうき(cohki0305)です! AI ジョブカレという機械学習を学ぶプログラムスクールに通...

3 回目のテーマは「教師あり学習 – 分類」でした。

前回やっていたのも、教師あり学習だったのですが、前回のは教師あり学習の中でも「回帰」と呼ばれるものでした。今回は、回帰ではなくて「分類」を学びました。

学んだことで競馬の結果予想をやってみました!

ちなみに、この授業を終えた頃に授業とは関係なくて、Qiita に「金儲けしたい一心で競馬ドシロウトが競馬の予想を機械学習でチャレンジした」という記事を投稿した。


ref. https://qiita.com/cohki0305/items/dc59cc4bfdc63fa16a65

3 回授業を受けただけで、これだけの内容をアウトプットできるくらいには成長しました。

 

回帰と分類とは?

機械学習にはいろんな分野があるのですが、その一つが教師あり学習です。

これについては前回のブログで説明したのでわからない方は以下を読んでいただけると嬉しいです。

あわせて読みたい
【2週目】数学できないWEBエンジニアのAIジョブカレ体験記 - 教師あり学習こんにちは、フリーランスエンジニアのとだこうき(cohki0305)です! AI ジョブカレという機械学習を学ぶプログラムスクールに通...

ただ、これだけではなくて教師あり学習には、また2つ分野があるのです。それが「回帰」と「分類」です。

分類とは、正解の数が決まっている問題のことを指します。

たとえば、ネコの画像をあたえて学習させるとき、答えは「ネコである」と「ネコでない」という二種類の答えしかない。こういった場合、分類問題と読んでいます。

逆に、回帰は正解の数が決まっていない問題のことです。

前回学んだボストンの家の価格を予想する問題ですが、これは回帰です。家の価格に正解の数はありません。無限にあるはずです。1 円かもしれないし、100万2.1円とかかもしれない。答えの数が決めることが出来ず、正解が連続量になっています。

  • 分類というのは、正解の数が決まっている問題のこと
  • 回帰というのは、正解が連続値になっている問題のこと

機械学習で乳がんを見つけよう!!

授業では、この分類を学びました。題材は、「乳がんか否かを判断できる」機械学習モデルを作成することでした。

※ scikit-learn の breast cancer を使いました。
ref. sklearn.datasets.load_breast_cancer | scikit learn

腫瘍に関する情報をもとにそれを学習させ、その腫瘍が「良性」か「悪性」かを分類するというものです。

つまり、正解は「良性」か「悪性」かの 2 つなので、分類の問題です。

scikit-learn による実装

実装は非常にシンプルでした、2 回目と同じで scikit-learn のライブラリを使い実装を行いました。

あまり具体的なコードを載せませんがイメージが掴めるように概要を説明していきます。

学習なのですが、めっちゃ簡単にできます。

fit というメソッドがあるのですが、これに対してデータを与えるだけで学習できるようになっています。便利すぎません!!!??

学習を行ったモデルを利用して、未知のデータをもとに腫瘍が悪性か否かを判断することも非常に簡単です。predict_proba を使います。

結果は、左側が陽性である確率、右側が陰性である確率を導き出しています。

学習結果

その他いろんなアルゴリズムを試して、アルゴリズムごとにどういった結果の差がでるのかを調査しました。

結果的に、98 % の精度で未知のデータに対しても腫瘍が悪性か否かを判断することができるようになりました!

98 %!!!めっちゃ高いですよね!!医者いらず!!!記念にうざい gif 作ってみましたw

授業で学んだこと

授業内にて知ったことですが、データの良さが学習結果を大きく決めるということでした。

機械学習というと、学習させることがメインに思われがちなのですが、一番大事なのは学習に使うデータです。悪いデータを使えば、どんだけいいアルゴリズムを使ってもいい結果を出せないのです。

授業で扱った、 breast_cancer は非常に良いデータでした。データの数が十分にあり、悪性と良性に関するデータが適切に存在していました。

データの数が少ないと学習量が少なくて、アホの子になっちゃうのですよ…あとは、良性に関するデータがあんまり多いとなんでも「これは良性だ!!」と判断しちゃうような偏見だらけの子に育ってしまいますw

  • いい学習結果を出すには良いデータが必要
  • 良いデータとは量が多くて、結果に偏りが少ないもの

【さいごに】数学が苦手でも機械学習は使える!

数学が苦手だと機械学習できないとおもって諦めてる人多いかもしれないのですが、使うだけなら数学をそんなに知ってる必要はないです!!

授業において、アルゴリズムの説明はありますが、数学的な話はほとんどないです。

AI ジョブカレでは機械学習を使える実践的なエンジニアを育てることを主眼にしているので、アルゴリズムを利用することに注力しています。

なので、数学が苦手でも全然大丈夫です。

僕も苦手ですが、AI ジョブカレを卒業してから、機械学習の仕事もするようになりましたよ!!

AI ジョブカレはプログラミング経験があれば、10 万円で受講が可能で機械学習エンジニアへの転職が可能なので、目指している人は検討しましょう!

10 万円くらいぱっと投資して、機械学習エンジニアになって稼ぎまくりましょう!!

あわせて読みたい
【体験】卒業生が語る!AIジョブカレを卒業して学んだ3つの知識こんにちは、フリーランスエンジニアのとだこうき(cohki0305)です。 先日、4 ヶ月ほど通っていた AI ジョブカレという機械学...
ABOUT ME
cohki0305
営業から転職し、たった6ヶ月でリードエンジニアになった最速の男。 その後半年でフリーランスとして独立し時給が4倍に。今は海外ノマドやりながら、週3フルリモート労働。 自分の経験を元に、未経験からエンジニアになる方法や業界のことを発信してます。
プログラマーになって年収1000万目指そう

学歴・職歴関係なく、数年間で年収 1000 万円を目指せる職業って何が思いつきますか??

僕はソフトウェアエンジニア(プログラマー)しか思いつかないです。

僕は実務一年でフリーランスになって年収1000万稼げるようになりましたが、別にこの業界なら普通です。学歴も職歴も関係ないです。

プログラマーを目指して稼ぎたい方は、僕が紹介している「プログラマーになるための最短ステップ 3」を是非読んでチャレンジしてください。

未経験からプログラマーになるための方法を知る