機械学習

Pythonの教師なし学習を初心者にも分かりやすく丁寧に解説!

「教師なし学習や機械学習に興味はあるけど、そもそもどういうもの?」
「Pythonで教師なし学習をしてみたいけど、何を勉強するべき?」
「Pythonで教師なし学習を始めたいけど、まず何をすればいい?」

本記事ではこれらの疑問に答えながら、Pythonでの教師なし学習について、誰でも分かりやすいように丁寧に解説します!

「そもそも教師なし学習とは何か」から「Pythonで教師なし学習を始める準備」まで順を追って紹介します。
教師なし学習に興味がある方は、ぜひ本記事を参考にしてくださいね!

Pythonの教師なし学習とは

そもそも教師なし学習とは

教師なし学習とは、機械学習の手法のひとつです。

機械学習とは、AI・人工知能にかかわる技術のひとつで、複数のデータから規則性などを見つけ、それに基づいて予測や判断をする技術です。
機械学習は、そのデータの与えられ方によって「教師あり学習」「教師なし学習」「強化学習」の3つに大きく分類されます。

そのうちの「教師なし学習」は、コンピュータに複数のデータを与え、そのデータの特徴を分析させることでデータをグループ分けしたり簡略化したりするという方法です。

例えば、画像認識の教師なし学習で「リンゴの画像」と「バナナの画像」というデータを大量にコンピュータに与えたとしましょう。コンピュータは与えられた画像から「赤い」「丸い」「黄色い」「細長い」などの特徴を分析し、赤くて丸い特徴をもつ画像を「グループA」に、黄色くて細長い特徴をもつ画像を「グループB」にグループ分けをします。

教師あり学習との違いは、教師データと呼ばれる正解のデータがあらかじめコンピュータに与えられないことです。
教師あり学習では、まず膨大なデータを使って正解を学習させ、そのうえで新たにデータを分析させます。これに対して教師なし学習では、あらかじめ正解を教えることなくデータを分析させるのです。

人工知能や機械学習、教師あり学習や強化学習についてはこちらの記事で詳しく解説しています!

Pythonで人工知能を開発するには?初心者におすすめの方法を解説Pythonで人工知能開発を行いたいが、何から始めたら良いのか分からない、という方はいますか。本記事ではPythonでの人工知能開発方法を解説します。人工知能開発に興味がある方はぜひお読みください。...
Pythonで機械学習を始めよう!サンプルコードで始め方を解説Pythonでできる機械学習の例やゼロから始める手順をサンプルコード付きで紹介します。Python入門・基礎学習に役立つ本と学習サイトもまとめました。Pythonで機械学習をしたい方は必見です。...
Pythonの教師あり学習を初心者にも分かりやすく丁寧に解説!Pythonで教師あり学習をしてみたい人必見!本記事を読めば、誰でもPythonでの教師あり学習について理解できます。「そもそも教師あり学習とは何か」から「Pythonで教師あり学習を始める準備」まで順を追って紹介!...
Pythonの強化学習を初心者にも分かりやすく丁寧に解説!Pythonで強化学習をしてみたい人必見!本記事を読めば、誰でもPythonでの強化学習について理解できます。「そもそも強化学習とは何か」から「Pythonでの強化学習の始め方」まで順を追って紹介!...

教師なし学習にPythonがおすすめの理由

Pythonは教師なし学習にかぎらず機械学習分野において最も人気のあるプログラミング言語です。AI・人工知能の技術分野で、実際に多くの企業がPythonを活用しています。

Pythonが機械学習分野で人気のある理由として、主に次の2つがあげられます。

理由1.機械学習に役立つライブラリやフレームワークが豊富

1つ目の理由は、機械学習に役立つライブラリやフレームワークが豊富なことです。

ライブラリとは、開発によく使われるコードの集まりで、フレームワークとは、開発によく使われるテンプレートのようなものです。
Pythonでは機械学習に役立つライブラリやフレームワークが多く存在しています。これらを活用することで、プログラミングの負担を減らすことができるのです。

理由2.コードがシンプルで分かりやすい

2つ目の理由は、コードがシンプルで分かりやすいことです。
Pythonは少ないコードの記述量でプログラミングができるのが特徴で、その便利さを理由にプログラミング初心者にも人気です。

また、誰が書いても似たようなコードになりやすいのもPythonの特徴です。他人が書いたコードを理解したりしやすいため、開発をスムーズに進めることができるのです。

Pythonの教師なし学習の具体例

Pythonの教師あり学習が活用される具体的な例としては、販売促進故障検知などがあげられます。販売促進については、その手法によって大きく3種類に分けて説明します。

具体例1.分類にもとづく販売促進

顧客と商品のデータを教師なし学習させることで、商品を「独身男性がよく買うもの」と「既婚女性がよく買うもの」に分類したり、「昼によく売れるもの」と「夜によく売れるもの」に分類したりできるため、販売促進の戦略を立てるのに役立ちます。

具体例2.確率にもとづく販売促進

顧客と商品のデータを教師なし学習させることで、「この商品を買った人の○%があの商品も買っている」といった確率を割り出すことができるため、ネットショッピングにおける商品のおすすめや、実際の店舗での商品の陳列、商品のセット割引などの戦略に役立ちます。

具体例3.要因にもとづく販売促進

商品と顧客と天候など、異なる複数のデータを教師なし学習させることで、ある商品の売上について、来客数や天候など、様々なの要因が売り上げに貢献した割合を分析できるため、販売促進の戦略を立てる役に立ちます。

具体例4.故障検知

他のデータと一致しないものや、他のデータから大きく異なるものを検出することができるため、機械の故障検知や、データ分析の外れ値の検知に役立ちます。

教師なし学習の代表的な手法

教師なし学習の代表的な手法として、「クラスタリング」「アソシエーション分析」「次元削減」「異常検知」があります。

教師なし学習の手法1.クラスタリング

クラスタリングとは、傾向や特徴が似ているもの同士をグループごとに分類する手法です。

データ分析におけるグループはクラスターと呼ばれ、そのグループ分け手法がクラスタリングと呼ばれます。

先ほど紹介した具体例のうち、分類にもとづく販売促進がこれにあたります。

教師なし学習の手法2.アソシエーション分析

アソシエーション分析とは、大量のデータのなかからパターンや関連性を見つけ出す手法です。

先ほど紹介した具体例のうち、確立にもとづく販売促進がこれにあたります。

教師なし学習の手法3.次元削減

次元削減とは、データの次元を減らすことで情報を要約・圧縮する手法です。

先ほど紹介した具体例のうち、要因にもとづく販売促進がこれにあたります。

教師なし学習の手法4.異常検知

異常検知とは、他の多数のデータとはふるまいの異なるデータを見つけ出す手法です。

先ほど紹介した具体例のうち、故障検知がこれにあたります。

Pythonで教師なし学習をするために何を学ぶべきか

次に、Pythonで教師なし学習をするために学ぶべきものを紹介します。
身につけておきたいものは主に次の2つです。

  • Pythonのスキル
  • 数学・統計学の知識

では、教師なし学習をするために学ぶべきものについて、ひとつずつ説明します。

Pythonのスキル

まず必要なのは、Pythonの基礎的なスキルです。
条件分岐やループ処理などのPythonの基礎文法をひとつひとつ習得し、プログラミングの基礎を固めることが大切です。

これからPythonを学び始める初心者の方は、まずはオンラインの講座や入門書、Youtubeの解説動画などを使って勉強を進めていくのがおすすめです。

Pythonの学習方法についてはこちらの記事で詳しく解説しています!

Pythonの効率的な学習方法を解説!オススメの学習サイトと書籍を紹介! 「Pythonを学習する方法がわからない、誰か教えてほしい」 本記事はこのような悩みに応えていきます。 本記事で...

数学・統計学の知識

また、数学・統計学の知識も必要です。
教師なし学習に限らず機械学習全般において、深く理解して開発をするためには数学の知識が必要となります。高校数学だけでなく、線形代数や微分積分などの大学数学、データ分析などの統計学も関わってきます。

数学が苦手な人や、数学を学んだものの忘れてしまった人、機械学習に関わる数学を学んだことがない人は、参考書などを選ぶ際、数学について丁寧に解説されているものを選ぶのがおすすめです。

Pythonの教師なし学習におすすめの書籍

ここで、教師なし学習を学ぶうえでおすすめの書籍を紹介します。

Pythonで動かして学ぶ!機械学習の教科書

Pythonで動かして学ぶ!あたらしい機械学習の教科書引用:Pythonで動かして学ぶ!機械学習の教科書

こちらは、Pythonを使った機械学習を初めて学ぶ初心者におすすめの入門書です。

Pythonの学習環境の準備から始まり、Pythonの基本と機械学習にかかわる数学の基本が分かりやすく丁寧に解説されています。

本書をはじめとする機械学習についての書籍は「教師あり学習」についての解説を主な内容とするものが多いのですが、「教師あり学習」を学ぶことは「教師なし学習」についての理解を深めることにつながるため、ぜひ読んでみることをおすすめします。

マンガでわかる機械学習

引用:マンガでわかる機械学習

こちらは、機械学習の基礎知識を分かりやすく把握したい初心者の方におすすめです。

教師あり学習から教師なし学習、そして深層学習までの基礎知識を、物語形式で幅広く学習できる内容となっています。

Pythonの教師なし学習に必要な準備

最後に、Pythonで教師なし学習を始める具体的な方法を解説します。
必要な準備は次の3つです。

  • Python3をインストールする
  • Pythonの環境構築をする
  • 教師なし学習のためのライブラリをインストールする

それでは、必要な準備をひとつひとつ確認していきましょう!

準備1.Python3をインストールする

まずは、Pythonをインストールしましょう。
ちなみにMacの場合は最初からPythonが入っていることが多いので、その場合はインストールする必要はありません。

Pythonには、Python2とPython3の2種類ありますが、Python2はすでにサポートが終了しています。そのため、これから学習を始める場合は今後も幅広く使われていくPython3をインストールすることをおすすめします。

Pythonは公式サイトからダウンロードすることができます。
Pythonの公式サイトはこちら

Pythonのインストール方法についてはこちらの記事で詳しく解説しています!

https://www.tech-teacher.jp/blog/python-install

準備2.Pythonの環境構築をする

つぎに、Pythonの環境構築をしましょう。

プログラミング言語だけでも開発はできるのですが、統合開発環境を整えることで、よりスムーズに開発を進めることができるようになります。

統合開発環境にはいくつか種類があり、PycharmAnacondaなどが有名です。自分にとってやりやすいものを選びましょう。

準備3.ライブラリをインストールする

最後に、教師なし学習のためのライブラリをインストールしましょう。

ライブラリとは、開発によく使われるコードが誰でも簡単に利用できるようにまとめられたものです。これを活用することで、プログラムを組む負担を軽減することができます。

教師なし学習にに使われるライブラリには、scikit-learnなどがあります。

scikit-learnには機械学習全般に役立つ方法が収録されています。また、Pythonの数値計算ライブラリであるNumpyScipyとも相性が良く、効率的な開発に欠かせません。

 

まとめ

本記事ではPythonでの教師なし学習について解説しました。
教師なし学習とは何かや、教師なし学習を始めるにあたって必要なことがお分かりいただけたのではないでしょうか。

本記事を参考にしながら、この機会にぜひ教師なし学習を始めてみましょう!