Pythonで機械学習するにはどうすればいいの?
初心者からでもできるのかな?
「Python」は、AI(人工知能)の開発分野のなかでもポピュラーな「機械学習」で人気のプログラミング言語です。機械学習とは、コンピューターに膨大なデータを与えて学習させ、高精度な判断や思考を実現する技術のこと。
機械学習を始めるなら、採用する企業が多いPythonを学ぶことをおすすめします。しかし「なぜ機械学習にPythonが使われるのか」といった初歩的な部分から疑問を抱えている人も多いですよね。
そこで、今回はプログラミング入門者・初心者の人に向けて、機械学習をPythonで始めるために必要な知識をまとめてお伝えします。Pythonを用いた機械学習の入門方法やおすすめ本も紹介するので、ぜひ参考にしてください。
なお、そもそもPythonや機械学習とは何なのか、その概要を詳しく知りたい人は下の動画をご覧ください。
この記事の監修者
フルスタックエンジニア
音楽大学卒業後、15年間中高一貫進学校の音楽教師として勤務。40才のときからIT、WEB系の企業に勤務。livedoor(スーパーバイザー)、楽天株式会社(ディレクター)、アスキーソリューションズ(PM)などを経験。50歳の時より、専門学校でWEB・デザイン系の学科長として勤務の傍ら、副業としてフリーランス活動を開始。 2016年、株式会社SAMURAIのインストラクターを始め、その後フリーランスコースを創設。現在までに100名以上の指導を行い、未経験から活躍できるエンジニアを輩出している。また、フリーランスのノウハウを伝えるセミナーにも多数、登壇している。
プログラミング初心者でもPythonを用いた機械学習は可能
「初心者には機械学習のPythonプログラミングが難しいかも」と不安に思う人もいるでしょう。しかし、しっかり手順を踏んで学習すれば、初心者でもPythonで機械学習のプログラミングができるようになります。
初心者でもプログラミングができるようになる理由には、次の2つがあります。
- Pythonは初心者でも習得しやすいため
- 初心者向けの教材が豊富にあるため
数あるプログラミング言語のなかでもPythonは習得難易度が低いため、初心者でも挫折しにくいといわれています。また人気が高いPythonには、初心者の学習に適した教材が豊富にあるため、学びやすくなっています。
初心者がPythonの機械学習に入門するための手順は、後ほど解説します。
なお、次の記事ではPythonの習得は難しいのか、その難易度を詳しく解説しているので、よければ参考にしてください。
Pythonが機械学習に適している3つの理由
話題の「ChatGPT」をはじめとする生成AIにも採用されるなど、機械学習が注目されています。機械学習のプログラムを作成するときによく使われる言語が、Pythonです。
多くの言語があるなかで、なぜPythonが広く利用されているのでしょうか。ここからは、Pythonが機械学習に適している理由を、3つにまとめて紹介します。
コードをシンプルに記述できる
Pythonは、コードをシンプルに記述できるのが強みです。コードがシンプルだと読みやすいうえに、プログラミングの手間も減らせるため、機械学習でも効率的な開発が行えます。
例として、整数データが偶数なら「偶数です」、奇数なら「奇数です」と表示する簡単なサンプルコードを考えましょう。同じく人気のプログラミング言語「Java」とPythonでそれぞれ記述すると、次のとおりです。
■Pythonの場合
num = 1 if num % 2 == 0: print("偶数です") else: print("奇数です")
■Javaの場合
public class Sample { public static void main(String[] args) { int num = 1; if (num % 2 == 0) { System.out.println("偶数です"); } else { System.out.println("奇数です"); } } }
Javaだと12行のコードが、Pythonだと半分の6行で記述できました。また、Pythonのほうが見た目にもすっきりしていることは明らかですよね。このように、Pythonは記述がシンプルにできるため初心者でも学びやすいのです。
機械学習では、複雑なプログラムを記述しなければならない場面が出てきます。文法がシンプルなPythonはプログラマーの負担を減らし、コードの記述にかかる時間を大幅に短縮してくれるでしょう。
機械学習に特化したライブラリが豊富
Pythonの大きな魅力は、機械学習に特化した「ライブラリ」が充実していることです。ライブラリとは、再利用できるプログラムの部品を指します。
ライブラリを活用すれば1からコードを書かずに済み、開発効率を大幅にアップすることが可能です。ただし、ライブラリの機能は多岐にわたり、何でも機械学習に役立つわけではありません。
その点Pythonは、機械学習に役立つライブラリが豊富です。詳細は後述しますが、代表例として「Pandas」「NumPy」「scikit-learn」「TensorFlow」といったものが挙げられます。
機械学習の複雑なプログラムを実現するうえで、こうしたライブラリを使えることはPythonの強みです。
なお、下の記事ではPythonの機械学習に役立つおすすめのライブラリを詳しく紹介しているので、あわせて参考にしてください。
機械学習に必要な工程を幅広くカバーできる
必要なデータの収集から可視化・分析、「モデル」の構築・評価まで、機械学習には多くの工程があります。モデルとは、何らかの課題をAIで解決するために構築するプログラムのことです。
機械学習において必要な工程は、Pythonの豊富なライブラリを使えば幅広くカバーできます。下に、機械学習の各工程で使えるPythonのライブラリをまとめました。
工程 | 主なライブラリ |
データ収集 | BeautifulSoup:Webデータを収集できる |
データ可視化 | Matplotlib:データをグラフにより可視化できる |
データ分析 | Pandas:表形式でさまざまなデータ操作が行える NumPy:行列などの数学的な計算が行える |
モデル構築・評価 | scikit-learn:さまざまな機械学習のアルゴリズム(便利な計算方法)を使える TensorFlow:モデルの構築や評価に必要な機能を幅広く使える |
Pythonであれば、上記のライブラリやフレームワークを活用して、各工程で発生するプログラミングを効率化できます。1つの言語だけで幅広くカバーできるのは、機械学習における開発効率の面で大きなメリットです。
Pythonを用いた機械学習でできること
ここからは、Pythonを用いた機械学習でできることを、5つにまとめて紹介します。
画像認識
「画像認識」とは、画像の中身をコンピューターが認識する技術のことです。たとえば、画像に写っている動物が犬なのか猫なのかを判断する、といったことがPythonを使った機械学習で行えます。
例として、画像認識には次のような種類があります。
物体検出 | どこにどのような物体が写っているか検出する |
物体分類 | 写っている物体の種類を判別する |
シーン認識 | どのような背景の画像であるかを分類する |
文字認識 | 写っている文字の内容を判別する |
実際の活用事例としては、カメラの顔検出機能や、車のナンバープレートを読み取る「Nシステム」が代表的です。また、自動運転においても画像認識技術が使われているため、将来的にも有望な研究分野といえます。
自然言語処理
Pythonを使った機械学習で「自然言語処理」も実現できます。自然言語処理(NLP:Natural Language Processing)とは、人間の言葉をコンピューターが認識し、処理する技術のことです。
自然言語処理では、大量の文章を「トークン」と呼ばれる細かい単位に分割して処理します。トークン同士の関連性の強さを把握したり、トークンの前後関係から文章の構造を把握したりしながら、言葉への理解を深めるのです。
自然言語処理の活用事例としては、音声からユーザーの指示内容を理解する「Siri」がポピュラーです。また「ChatGPT」に代表される「生成AI」も注目を集めており、今後さらなる需要拡大が期待されています。
未来に起こる結果の予測
Pythonを使った機械学習で、未来に起こる結果の予測もある程度できます。機械学習により多くの知見を蓄積したAIは、天気予報や株価予想のようなシーンでも予測精度の向上に役立っています。
機械学習によって、過去の膨大なデータから傾向や規則性をつかむことが可能です。データから学習した内容を踏まえて現在のデータ変化を読み解くことで、人間が行うよりも高精度な予測が可能となります。
昨今では、金融商品の取引をシステム化する「システムトレーディング」でも、AIの活用が一般的になりつつあります。さまざまな変化が起きている現代において、機械学習を用いた予測は今後より広がっていくでしょう。
不正情報の検知/検出
Pythonを使った機械学習は、不正情報の検知/検出も可能にします。たとえば、クレジットカードの決済時にAIが不正な取引を素早く検出する、といったことが可能です。
膨大なデータから正常パターン・異常パターンをAIに学習させて、それらをもとにデータの妥当性をチェックします。異常なデータの判断には、「ホテリング理論」といった統計学の手法が使われることも多いです。
昨今の製造業では、IoT(モノのインターネット)の活用により製造機械の異常検知を自動化するケースが増えています。センサーから収集したデータをAIが高精度にチェックするため、作業員の負担軽減にもつながります。
AIによる不正情報の検知/検出の自動化は、人手不足が深刻化するなかでより重要となるでしょう。
おすすめ品/サービスの提案
ショッピングサイトでは、「あなたへのおすすめ」のような機能をよく見かけますよね。このようなおすすめ品/サービスの提案も、Pythonを使った機械学習で実現できます。
提案機能を作る場合、ユーザーの特徴・行動とニーズの関係性を、AIに事前学習させておきます。それらをベースに、各ユーザーの購入や閲覧の履歴を加味することで、個々の傾向・好みをつかんだ提案が可能となるのです。
ショッピングサイト「Amazon」はもちろん、昨今では旅行予約サービスなどでも提案機能を搭載するケースが増えています。ユーザーのニーズが多様化するなかで、機械学習による提案機能は今後も増えていくでしょう。
Pythonを用いた機械学習の入門手順
Pythonで機械学習を始める場合、次の8ステップを順番に進めていくと良いでしょう。
各ステップを詳しく解説します。
1.Pythonで機械学習を行う環境を整える
まずは、Pythonで機械学習のプログラミングが行える環境を準備しましょう。大まかには、次の3つが必要です。
- Python本体(Pythonのプログラムを解釈・実行するためのソフトウェア)
- Pythonの機械学習ライブラリ
- プログラムの記述や実行をするための開発環境
しかし、これらを1つひとつインストールするのは面倒ですよね。そこで、おすすめなのが「Anaconda」です。
Python本体に加えて、機械学習や科学計算でよく使うライブラリ、「Jupyter Notebook」という開発環境が含まれます。そのためAnacondaをインストールするだけで、Pythonで機械学習を行うための環境構築が行えるのです。
Anacondaのインストール方法を知りたい人は、こちらの記事を参考にしてください。
→ WindowsでAnacondaをインストールする方法はこちら
→ MacでAnacondaをインストールする方法はこちら
2.Pythonの基礎を身につける
環境が構築できたら、Pythonの基礎を身につけましょう。機械学習の開発を行うためには、Pythonの基本的な文法を理解し、実際にプログラミングで使えるようにする必要があります。
Pythonの基礎を勉強するための主な方法は、次の2つです。
1つずつ詳しく解説していきます。
おすすめの学習サイト
「オンラインで気軽に学びたい」という人には、学習サイトがおすすめです。パソコンで知識を得られる学習サイトなら、同じくパソコンを使うPythonの実践学習を効率的に進められます。
動画やスライドなど、学習サイトによって学び方はさまざまです。機械学習が学べる初心者向けサイトを3つ紹介するため、自分に合ったものを選ぶと良いでしょう。特におすすめは「SAMURAI TERAKOYA(侍テラコヤ)」です。
侍テラコヤ
登録無料で現役エンジニアに質問しながらPythonを習得できるコスパの良さが特徴の侍テラコヤは、
- 現役エンジニアが応える回答率100%のQ&A掲示板
- 必要に応じて受けられる現役エンジニアとのオンラインレッスン
といったサポート体制を整えているため、学習中に出てきた不明点を解決しながら挫折なくPythonを習得可能です。
下記の口コミからも、侍テラコヤなら挫折しづらい環境で学習を進められるといえます。
なお、侍テラコヤは入会金不要・いつでも退会OKに加え、利用から1ヵ月の間は「全額返金保証制度」が適用されるので「他の学習サイトを選べばよかった」と後悔する心配もありません。
コスパよくPythonを習得したい人は、侍テラコヤをお試しください。
公式サイトで詳細を見るAidemy
AidemyはAIに特化したプログラミング学習サイトです。ブラウザ上で直接コードを書いていけるので、面倒な環境設定がいりません。
図解やイラスト、動画などを使ったわかりやすい解説と体系的なカリキュラムが人気で、現在10万人以上のユーザーがいます。レッスンの一部は無料で公開されているので、お金をかけずに学習できるのもポイント。
公式サイトで詳細を見るUdemy
Udemyは、オンラインコースのマーケットプレース。低価格で専門家が教える授業動画を閲覧でき、機械学習関連の授業だけでも、909件以上のコースが揃っています。(2021年8月現在)
Udemyのよいところは、
- データ分析
- 画像分析
- scikit-learn
- ニューラルネットワーク
など、興味がある特定の分野にフォーカスした学習が行えるところです。
入門編が充実しているので、初心者でも動画をみながら一緒にコーディングできます。
公式サイトで詳細を見るおすすめの本/書籍
「じっくり体系的に学習したい」という人には本/書籍がおすすめです。1冊だけで幅広い知識を得られる上に、パソコンを立ち上げなくても学べます。重要な箇所に付箋で印をつけておけば、後ですぐに読み返せます。
本/書籍によってレベルはさまざまです。まずは初心者向けのものから読み進めていきましょう。ここでは、初心者がPythonの基礎を学べるおすすめの3冊を紹介します。
タイトルのとおり、Pythonを始めたばかりの人が体験しながら学べる1冊です。キャラクターの対話を通してわかりやすく学べるため、プログラミング初心者でも挫折しにくいでしょう。
こちらもタイトルどおり、プログラミング超初心者向けのPython入門書です。Pythonにおける基礎の基礎を、難しい専門用語を多用せず丁寧に解説しています。
Pythonの基礎から実践までを丁寧に解説した教科書です。解説が丁寧なだけではなく、実際にプログラムを書いて動かせる構成になっているので、Pythonのプログラミングを体験しながら学習を進められます。
3.機械学習に必要な「数学」の基礎を身につける
機械学習には、数学の基礎知識も必要となります。機械学習ではさまざまなアルゴリズム(便利な計算方法)を使ってデータを処理しますが、これらは数学の理論・原理がベースとなっているためです。
特に、下記の3分野は機械学習において重要なため、基本的な部分をひと通り押さえておきましょう。
- 微分積分学
- 線形代数学
- 確率論・統計学
とはいえ、数学のあらゆる分野をプロ並みにまで極める必要はありません。数学の参考書や参考サイトを活用して、基本的なことは調べなくてもわかるレベルにはしておきましょう。
なお、数学以外にも機械学習に必要な要素を知りたい人は、次の動画を参考にしてください。
4.データベース/SQLの基礎を身につける
Pythonの機械学習を仕事にしたいなら、「データベース」や「SQL」の基礎も身につけましょう。データベースは大量のデータを効率的に管理するための仕組みであり、それを操作するための標準的な言語がSQLです。
ビジネス向けの機械学習開発では膨大なデータを収集・加工するためには、一般的にデータベースを用います。また、業務データをモデルの学習に使う場合、企業のデータベースからデータを取り込まなければなりません。
前述したPandasなどのライブラリを使えば、データベースがなくても基本的なデータ操作は可能です。しかし、機械学習の規模が大きくなるとデータベースやSQLを使う場面は増えるため、基本は押さえておきましょう。
データベースやSQLの基礎を学ぶ場合、Pythonと同様に「SAMURAI TERAKOYA(侍テラコヤ)」などの学習サイトが役に立ちます。なお、SQLとは何か詳しく知りたい人は、次の動画をご覧ください。
5.ライブラリを用いて「データの操作方法」を学ぶ
コンピューターに学習させる内容を用意するうえで、データ操作が欠かせません。データ収集や加工、分析といった操作を行うためには、Pythonで使える機械学習ライブラリの活用が鍵となります。
データ操作に使える代表的なライブラリを再掲します。これらを用いたデータ操作を実践しながら学びましょう。
ライブラリ | 主なできること |
BeautifulSoup | Webデータの収集 |
Matplotlib | グラフによるデータの可視化 |
Pandas | 表形式でのデータ操作 |
NumPy | 行列などの数学的な計算 |
特に、PandasとNumPyは機械学習においてよく使われるため、重点的に学ぶことをおすすめします。Pandasはさまざまなデータの集まりを表形式で操作でき、NumPyは複雑・大規模な計算を高速で行えます。
機械学習ライブラリについて学べる参考書や参考サイトもさまざまです。次の記事では、Pandasの基本的な使い方やNumPyのおすすめ学習本を紹介しているので、よければ参考にしてください。
6.機械学習の基礎を身につける
周辺知識を身につけたら、機械学習の基礎を身につけましょう。具体的には、次のような内容の学習が必要です。
- 機械学習の流れ
- 機械学習の基本概念(教師あり学習、教師なし学習、強化学習など)
- 機械学習アルゴリズムに関する知識・使い方
機械学習の基礎固めでは、これまでに学んだ知識が役に立つでしょう。ただし、これまでよりも機械学習に特化した本やサイトを利用して勉強する必要があります。
Pythonを使った機械学習が学べるおすすめ本を詳しく知りたい人は、下の記事を参考にしてください。
また、機械学習が学べるおすすめの学習サイトを知りたい人は、次の記事を参考にしましょう。
7.ライブラリ/フレームワークで「機械学習モデルの構築方法」を学ぶ
機械学習の知識が身についたら、Pythonを用いた機械学習モデルの構築方法を学びましょう。
これまではデータ操作に役立つライブラリを学びましたが、それだけでは不十分です。用意したデータを学習させるためのモデルを構築するときには、ほかのライブラリやフレームワークも使うことになります。
ここでは、機械学習モデルの構築に役立つ主なライブラリを2つ紹介します。
少なくとも上記のどちらか1つは、基本的な使い方を学んでおきましょう。
サンプルデータが豊富な「scikit-learn」
「scikit-learn」は、モデル構築に役立つさまざまな機能を提供する機械学習ライブラリです。機械学習全般の幅広いアルゴリズムに加えて、豊富なサンプルデータを使えるメリットがあります。
機械学習で特に苦労するのは、コンピューターに学習させるデータの準備です。scikit-learnのサンプルデータを利用すれば、機械学習モデルのアウトプットを手軽に確認できるため、評価・精度向上がスムーズに行えます。
scikit-learnを使ったデータ予測に興味がある人は、次の記事を参考にしてください。
深層学習/ニューラルネットワークに特化した「TensorFlow」
「TensorFlow」は、機械学習のなかでもトレンドの「深層学習(ディープラーニング)」のモデル構築に役立つライブラリです。Google社が開発しており信頼性が高く、多くのAI開発企業でも利用されています。
機械学習では、ITエンジニアが「何を学ぶべきか」を示す必要があります。一方の深層学習では、人間の脳内の仕組みをモデル化する「ニューラルネットワーク」を構築し、「何を学ぶべきか」さえも自らで見つけるのが特徴です。
また、TensorFlowには複雑な配列情報を扱える、分散処理ができるといったメリットもあります。TensorFlowについて詳しく知りたい人は、下の記事を参考にしてください。
8.機械学習の開発を実践する
モデルの構築方法まで学んだら、機械学習の開発を実践していきましょう。AIで解決したい課題を決めるところから自分でやってみることで、機械学習の実践的な開発スキルが身につきます。
とはいえ、どのような課題を設定すればよいのか、最初はわからない人も多いでしょう。そこで「Kaggle」の活用がおすすめ。Kaggleは、企業の課題解決につながるAIモデルをユーザーが開発し、成果を競い合うサービスです。
Kaggleには、機械学習に役立つ多くの題材が公開されているため、課題設定の参考になるでしょう。また、先輩ITエンジニアのプログラムを閲覧できるため、多くの学びが得られます。
慣れてきたら課題にチャレンジして、賞金獲得を目指すことも可能です。機械学習の実践を繰り返しながら、確かな開発スキルを身につけましょう。
なお、次の記事では機械学習の入門者に向けたおすすめの学習ロードマップを詳しく解説しているので、あわせて参考にしてください。
Pythonを用いた機械学習の勉強に行き詰まったときの対処法
Pythonに限らず、プログラミングの勉強では壁にぶつかることもあります。そのようなときに挫折しないための対処法を知っておくことが大切です。ここで紹介する対処法やサイトを参考にしてみると良いでしょう。
Pythonを使った機械学習スキルを身につけるうえで、さまざまなことを学ぶ必要があります。初心者でも学びやすいPythonとはいえ、習得までの道のりが長いため、独学だと挫折する人が少なくありません。
初心者でもPythonでの機械学習スキルを習得することは可能ですが、独学にこだわり過ぎないことが大切です。
挫折なくPythonを用いた機械学習を学ぶなら
先ほども解説したように、Pythonや機械学習は独学でも学習可能です。
ただ実のところ、Pythonといったプログラミング学習に挫折する独学者は多くいます。事実、弊社の調査では
- 不明点を聞ける環境になかった
- エラーが解決できなかった
- モチベーションが続かなかった
などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。
また、こうした背景もあってか、弊社がプログラミングに興味がある人100名へ実施した別の調査では
- 確実にスキルを身につけられると思ったから
- 独学では不安がある
- 効率よく学べそう
などの理由から、61%以上が「プログラミングの勉強を始めるならスクールを選ぶ」と回答しています。
加えて、プログラミングスクールの卒業生に「独学ではなくスクールを活用した理由」を聞いたところ「できるだけ短い期間でITエンジニアへの転職や副業に必要なスキルを身につけたかった」という回答も多く寄せられました。
上記から、1人でプログラミングスキルを習得できるか不安な人や短期間でスキルを習得したい人ほど確実性を求め、現役エンジニアといったプロの講師に質問できるプログラミングスクールを利用する傾向にあるのがわかります。
いざ独学でプログラミングを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングスキルを身につけるのって思っていたよりも難しいんだな…」とPythonや機械学習の習得自体を諦めかねません。
仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できる実践的なスキルが身につかなければ、結局後悔することになります。
そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。
料金 | 月分割4.098円~ |
実績 | ・累計指導実績4万5,000名以上 ・受講生の学習完了率98% ・受講生の転職成功率99% |
侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。
先ほど述べたとおり、独学者の多くは自力で不明点やエラーを解決できないためにプログラミング学習を挫折しています。そのため、未経験者が現役エンジニアのようなプロに質問や相談できない状況で、プログラミングスキルを習得するのは非常に難易度が高いといえます。
しかし、侍エンジニアでは
- 現役エンジニア講師によるマンツーマンレッスン
- 現役エンジニアに質問できるオンラインでのQ&Aサービス
- 不安や悩み・勉強の進み具合を相談できる学習コーチ
といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%」「転職成功率99%」という実績からも、侍エンジニアなら挫折しづらい環境でプログラミング学習を進められるといえます。
また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間でもITエンジニアへの転職や副業での収入獲得に必要なスキルだけを効率的に習得可能です。
最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。
なお、ITエンジニアへの転職を見据えPythonや機械学習を学びたい人は受講料の最大70%が給付される「Webエンジニア転職保証コース」や「AIアプリコース」がおすすめです。金銭面での支援を受けつつ、機械学習やPythonの習得から転職活動・就業後のフォローアップ(※1)までを一貫してサポートしてもらえます。
学習と金銭面をどちらもサポートしてくれる侍エンジニアなら、未経験からでも安心して機械学習やPythonを習得できますよ。
公式サイトで詳細を見るPythonを用いた機械学習にまつわるFAQ
最後に、Pythonを用いた機械学習に関して多くの人が抱える疑問へまとめて回答します。
Python以外でも機械学習はできるの?
Python以外のプログラミング言語でも、機械学習を行うことは可能です。たとえば「R言語」や「Java」といったプログラミング言語が、機械学習の開発言語として採用されるケースもあります。
ただし、機械学習向けのライブラリやフレームワークが豊富なPythonと比べると、ハードルは高くなります。文法のシンプルさも考えると、機械学習を始めるならPythonが最もおすすめです。
機械学習に用いるPythonのサンプルコードはある?
機械学習のプログラムがイメージできない人も多いですよね。ここでは、Pythonで簡単な機械学習を行うサンプルコードを紹介しますので、参考にしてください。なお、イメージをつかむ目的のため、文法の細かい説明は省略します。
次のプログラムは、「気温からアイスの販売数を予測するモデル」です。このプログラムでは、数値計算が行えるライブラリのNumPyと、モデル構築に使えるライブラリのscikit-learnを利用しています。
import numpy as np from sklearn.linear_model import LinearRegression # モデルに学習させるデータ in_temp = np.array([22, 25, 28, 30, 33, 35]).reshape(-1, 1) # 入力(気温) out_ice = np.array([50, 60, 70, 80, 90, 100]) # 出力(アイスの販売数) # モデルの作成・トレーニング model = LinearRegression() # 線形回帰モデルを構築 model.fit(in_temp, out_ice) # モデルに学習データを与える # テストデータ(24℃)から予測させる test_temp = np.array(24).reshape(-1, 1) test_ice = model.predict(test_temp) # 結果の表示 print("24℃だと、予測されるアイスの販売数は", test_ice[0] )
まず、下記の部分でNumPyとscikit-learnの機能を使うことを宣言しています(インポート)。
import numpy as np from sklearn.linear_model import LinearRegression
次に、モデルに学習させる入力データ・出力データを用意。ここでは、気温(temperature)を入力データ(in_temp)、気温に対するアイスの販売数を出力データ(out_ice)としています。
NumPyの機能を使って、複数のデータをまとめて扱える「配列」という形で整理しているのがポイントです。「22℃のときは50個売れる」「25℃のときは60個売れる」といった要領で、入力と出力のデータは対応します。
# モデルに学習させるデータ in_temp = np.array([22, 25, 28, 30, 33, 35]).reshape(-1, 1) # 入力(気温) out_ice = np.array([50, 60, 70, 80, 90, 100]) # 出力(アイスの販売数)
続いて、次の箇所ではscikit-learnの「LinearRegression」という機能を用いて「線形回帰モデル」を構築しています。線形回帰モデルとは、入力データに対する出力データの直線的な変化を把握・予測するモデルのことです。
2行目では、構築したモデル(model)に対して「fit」という機能を使い、先ほどの入出力データを与えています。これによって、気温とアイス販売数の関係性をモデルが学習するのです。
# モデルの作成・トレーニング model = LinearRegression() # 線形回帰モデルを構築 model.fit(in_temp, out_ice) # モデルに学習データを与える
そして、次の箇所ではモデルの学習成果をテストしています。「24℃」というテストデータを与えて、さきほどの学習をもとに予測させるのです。
# テストデータ(24℃)から予測させる test_temp = np.array(24).reshape(-1, 1) test_ice = model.predict(test_temp)
「test_ice」にはモデルが予測した値が入るため、Pythonの出力機能(print)を使って画面上に表示しています。
# 結果の表示 print("24℃だと、予測されるアイスの販売数は", test_ice[0] )
このプログラムを実行すると、次のように24℃のときのアイスの予測販売数が表示されます。
24℃だと、予測されるアイスの販売数は 56.49368863955121
これはとても簡単な例であり、実際にはもっと複雑な手続きが必要となるでしょう。あくまでイメージとして参考にしてください。
まとめ
今回は入門者・初心者に向け、Pythonで機械学習を始めるために必要な知識をお伝えしました。話題となっている生成AIの開発にも使われるなど、Pythonによる機械学習は注目度が高まっています。
Pythonはコードがシンプルで、初心者でも学びやすいプログラミング言語です。しかし、機械学習にPythonを使ううえでは多くの知識を身につけなければならず、決して簡単な道のりではありません。
独学で挫折しないか不安な人には、プログラミングスクールの利用も考えることをおすすめします。ぜひ本記事を「機械学習を学んで、より良い未来を拓きたいあなたの手助け」にしてください。