“学びたい”を刺激するメディア。

2020.09.27

Column

機械学習の「教師あり学習」と「教師なし学習」の違いとは?

機械学習の「教師あり学習」と「教師なし学習」の違いとは?

AI・機械学習という言葉が一般に浸透し、“データ分析”への注目は高まり続けています。

仕事の基本スキルの一つに、データ活用が加わる日も遠くないかもしれません。

そこで、機械学習・データ分析用のプログラミング言語として定番のPythonについて基礎から学ぶことのできる講座がSchooにて開講されました。

目次

  • 「教師あり学習」と「教師なし学習」の違いは?
  • 線形回帰分析とは?
  • 実際に手を動かしてみる

 

「教師あり学習」と「教師なし学習」の違いは?

全3回でPythonを使ったデータ分析方法が一通り学べる「Pythonで機械学習とデータ分析」の講師は、『Pythonと実データで遊んで学ぶ データ分析講座』著者でデータ解析と開発業務を行うエンジニアの梅津雄一先生です。

 

この記事ではPythonとデータ分析の基本、回帰分析についてレクチャーされた第一回の授業についてご紹介します。

 

Googleが提供するPythonの実行環境、「Google Colaboratory」を使って演習が進められるため、ぜひ「Googleアカウント」をご用意の上、記事そして授業をご覧ください。

 

 

「第一回のこの授業では教師あり学習といわれる手法のひとつである線形回帰の理論にざっくり学びます」と梅津先生。

 

まず前提として、機械学習の「教師あり学習」と「教師なし学習」についてのレクチャーがなされました。

 

それぞれの違いは、以下の通り。

 

・教師あり学習:入力データに対して正解情報を与えて関係性を学習する方法 例)……回帰、分類

 

・教師なし学習:正解情報を与えずに、データの特徴を学習する方法 例)……クラスタリング、次元圧縮

 

学習のもととなる正解情報が与えられるのが教師あり学習、与えられないのが教師なし学習ということですね。

 

今回取り扱われるのは教師あり学習のうち正解データが連続値となっている「回帰」モデルです。本授業シリーズの第二回では、「教師なし学習」について詳しく取り扱われています。

 

気になる方は、ぜひ授業動画をご覧ください。

 


線形回帰分析とは?

それでは線形回帰分析について学んでいきましょう。

 

回帰分析とは「ある変数xが与えられるとき、それと相関関係があり連続値であるyの値を予測すること」と定義されています。

 

回帰分析を用いることで、例えば不動産価格の予測において「部屋面積が1㎡広くなったとき不動産価格が変化する割合」や「ある部屋面積の時の不動産価格」を推定できるようになります。

 

そして、「線形」回帰分析は、回帰分析のうち“線を引いてさまざまな値のうち「最も当てはまりのよい」線をひくこと”を目的とするものを指します。

 

例えば以下の図のように部屋面積を横軸xに、不動産価格を縦軸yにあてはめた場合、どのように直線をひくと最も当てはまりがよいといえるでしょうか。

 

なお、xを説明変数、yを目的変数といい、今回のように説明変数xがひとつだけの回帰分析は「単回帰分析」と名付けられています。ちなみに説明変数が2つ以上の回帰分析も存在し、その場合は「重回帰分析」と呼ばれることになります。

 

 

さて、「当てはまりの良い線」について先生は、以下のように3つの直線を引いた場合、最も右のグラフが最も当てはまりが良いはずだといいます。

 

 

一番右の直線が最も各点に対して“より近いところを通っている”と感じられませんか?

 

要するに当てはまりの良い線とは、各点と直線との誤差(残差)が最も小さい線のことなのです。

 

さて、実践的な手法に進みましょう。

 

もっとも各点との誤差が小さい直線を求めるためのアイディアとしてまず挙げられるのが「残差を合計してそれが最も小さくなるパラメータ」を導き出すこと」です。

 

しかし、これでは残差がマイナスの値を取った場合、距離と残差の和の関係に齟齬が生じます。例えば2点に対する残差が[-4]と[6]の直線と、[0(点と直線が重なる)]と[4]の直線の残差を合計した場合、前者の合計は[2]なのに対し、後者は[4]。

 

すなわち、各点からの距離がより遠い直線の方が、合計の値が小さくなってしまうのです。

 

 

そこで、改良されたアイディアが「残差の2乗を合計して、それが最も小さくなるパラメータ」を求めるというもの。

 

この方法を取れば、先に挙げた例の場合、前者は「16 + 36 = 52」、後者は「0 + 16 = 16」となり、正しくより当てはまりの良い線を引くためのパラメータを導き出すことができます。

 

「このように、与えられたデータから最適なパラメータを求めることを、機械学習の分野では“学習”と表現する」ということです。

 


実際に手を動かしてみる

ここからは“実際に手を動かす”授業です。

 

先生から共有されたGoogle Colaboratoryの画面から、まずはPythonの基礎を学んでいきます。

 

Pythonの基本として「四則演算」「比較演算子」「条件文」「ループ処理」「便利なライブラリ(numpy、pandas、matplotlib、seaborn……)」などが、実際にコードを実行しながら説明されました。

 

Pythonを用いることで、Excelでは作るのが難しい散布図や箱ひげ図、ヒートマップ、散布図などで簡単にデータを表現することができます。

 

 

詳しくはぜひ実際の授業で先生の解説に耳を傾けつつ、実際に手を動かして学んでみてください。資料はリアルタイム受講生がコメントで質問や意見交換ができるタイムラインにおいてスクー 教務課より共有されています。

 

そして、いよいよPythonと「不動産価格データ」を使った線形回帰分析の実践がはじめられました。国土交通省が運営する不動産取引価格情報のダウンロードページから取得したデータを利用して、不動産価格がどのような要因によって影響されているのかを線形回帰で分析します。

 

「データにはAPIから取得する方法とCSVファイルを直接ダウンロードする方法がある」と先生。今回はCSVファイルを直接ダウンロードする方法が取られました。

 

Google Colaboratoryに読み込ませたデータを「head」「shape」といったメソッドで確認し、データ整形などの前処理を行ったうえで機械学習を実行します。
単回帰分析、重回帰分析の両方が行われ、「面積が広くなることで不動産価格がどれだけ増加するのか」や「最寄り駅と不動産価格の関係」などのデータ解析結果が得られました。

 

 

演習もセットとなっている本授業はまさに映像で学ぶことで何倍にも効果が増すものです。このテキストでPythonによる機械学習・データ分析についてもっと学びたいと感じた方はぜひ実際の授業をご覧になってみてください。シリーズを通してみることで学びは大きく深まるはずです。

 

『Pythonで機械学習とデータ分析 第1回 Pythonで実データを分析する①』

http://schoo.jp/class/6707/room

 

文=宮田文机

おすすめ記事

本日の生放送

ペンシルからのプッシュ通知を設定しておくと、新着記事のお知らせなどをブラウザ上で受信できて便利です。

通知を受信しますか?