カテゴリ: Python 更新日: 2026/07/22

Pythonの機械学習入門!scikit-learnで学ぶ分類モデルの基本と使い方

Pythonの機械学習入門!scikit-learnを使った分類モデルの基本
Pythonの機械学習入門!scikit-learnを使った分類モデルの基本

先生と生徒の会話形式で理解しよう

生徒

「Pythonで機械学習ってよく聞くんですが、何から始めればいいですか?」

先生

「まずは分類モデルから始めるのがおすすめです。データを元に答えを予測する仕組みを学べます。」

生徒

「分類モデルって何ですか?」

先生

「例えばメールが迷惑かどうかを判定するような処理です。では、Pythonのscikit-learnを使って基本を見ていきましょう!」

1. 機械学習と分類モデルとは?

1. 機械学習と分類モデルとは?
1. 機械学習と分類モデルとは?

機械学習とは、データからルールを自動で学習する技術です。人が細かく指示しなくても、コンピュータがパターンを見つけて判断できるようになります。

分類モデルとは、与えられたデータをグループ分けする仕組みです。例えば、果物のデータを使って「リンゴかミカンか」を判定するような処理が分類です。

この分類処理は、初心者でも理解しやすく、機械学習の第一歩としてとても重要です。

2. scikit-learnとは?

2. scikit-learnとは?
2. scikit-learnとは?

scikit-learnは、Pythonで機械学習を簡単に使えるようにしたライブラリです。難しい数式を知らなくても、少ないコードでモデルを作ることができます。

ライブラリとは、便利な機能がまとめられた部品集のようなものです。これを使うことで、開発がとても楽になります。

特に分類、回帰、クラスタリングなど基本的な機械学習が簡単に実装できます。

3. データを準備してみよう

3. データを準備してみよう
3. データを準備してみよう

機械学習では、まずデータが必要です。今回は簡単な数値データを使って分類を行います。


from sklearn import datasets

# サンプルデータを読み込む
iris = datasets.load_iris()

# 特徴量(入力データ)
X = iris.data

# 正解ラベル(答え)
y = iris.target

print(X[:3])

[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 [4.7 3.2 1.3 0.2]]

このように、特徴量と呼ばれる入力データと、正解データを用意することが基本です。

4. 分類モデルを作ってみよう

4. 分類モデルを作ってみよう
4. 分類モデルを作ってみよう

次に分類モデルを作成します。ここでは決定木というアルゴリズムを使います。決定木は、条件分岐のように判断していくシンプルなモデルです。


from sklearn.tree import DecisionTreeClassifier

# モデル作成
model = DecisionTreeClassifier()

# 学習
model.fit(X, y)

print("学習完了")

学習完了

fitというメソッドは、データを使ってモデルを学習させる処理です。

5. 予測してみよう

5. 予測してみよう
5. 予測してみよう

学習したモデルを使って、新しいデータの予測を行います。


# 新しいデータ
new_data = [[5.0, 3.6, 1.4, 0.2]]

# 予測
result = model.predict(new_data)

print(result)

[0]

predictは予測を行うためのメソッドです。結果の数値は分類されたカテゴリを表します。

6. モデルの精度を確認しよう

6. モデルの精度を確認しよう
6. モデルの精度を確認しよう

機械学習では、どれくらい正しく予測できるかを確認することが重要です。これを精度と呼びます。


from sklearn.metrics import accuracy_score

# 同じデータで予測
pred = model.predict(X)

# 精度計算
score = accuracy_score(y, pred)

print(score)

1.0

accuracy_scoreは、どれくらい正解しているかを割合で表示します。

7. 学習データとテストデータの違い

7. 学習データとテストデータの違い
7. 学習データとテストデータの違い

同じデータで評価すると、精度が高く見えすぎることがあります。そのため、データを分けて評価します。


from sklearn.model_selection import train_test_split

# データ分割
X_train, X_test, y_train, y_test = train_test_split(X, y)

model.fit(X_train, y_train)

pred = model.predict(X_test)

print(accuracy_score(y_test, pred))

0.9

このように分けることで、より現実に近い評価ができます。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

初心者がよくつまずくのは、データの意味を理解しないまま進めてしまうことです。特徴量とは何か、ラベルとは何かをしっかり理解することが重要です。

また、モデルの種類によって結果が変わるため、いろいろ試すことも大切です。

難しい数式は後からでも大丈夫なので、まずは動かして理解することを意識しましょう。

まとめ

まとめ
まとめ

機械学習と分類モデルの基本を振り返る

本記事では、Pythonを使った機械学習入門として、scikit-learnによる分類モデルの基本的な使い方を丁寧に解説しました。機械学習はデータからパターンを学習し、未知のデータに対して予測を行う技術であり、特に分類モデルは初心者にとって理解しやすい重要な入り口です。 分類モデルでは、特徴量と呼ばれる入力データと、正解ラベルをもとに学習を行い、新しいデータをカテゴリに分けることができます。今回使用したアヤメのデータセットのように、すでに整理されたデータを使うことで、学習の流れをスムーズに理解できます。

scikit-learnの使い方と実装の流れ

scikit-learnはPythonの機械学習ライブラリの中でも非常に人気が高く、シンプルなコードで分類・回帰・クラスタリングなどを実装できます。今回の流れとしては、データの準備、モデルの作成、学習、予測、精度評価という一連のプロセスを体験しました。 特にfitメソッドによる学習、predictメソッドによる予測は機械学習の基本中の基本であり、どのアルゴリズムでも共通して使われる重要な処理です。これらを繰り返し使うことで、自然と機械学習の理解が深まっていきます。

精度評価とデータ分割の重要性

機械学習では、モデルの性能を正しく評価することが非常に重要です。同じデータで学習と評価を行うと過学習が発生し、実際の運用ではうまく機能しない可能性があります。そのため、train_test_splitを使って学習データとテストデータを分けることが基本となります。 accuracy_scoreを用いた精度評価は初心者でも理解しやすく、どの程度正しく分類できているかを数値で確認できます。実務ではさらに複雑な評価指標も使われますが、まずはこの基本をしっかり押さえることが大切です。

実践で役立つサンプルプログラム

以下に、本記事の内容をまとめたサンプルコードを掲載します。Pythonとscikit-learnを使った分類モデルの一連の流れを復習するのに役立ちます。


from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# データ読み込み
iris = datasets.load_iris()
X = iris.data
y = iris.target

# データ分割
X_train, X_test, y_train, y_test = train_test_split(X, y)

# モデル作成と学習
model = DecisionTreeClassifier()
model.fit(X_train, y_train)

# 予測
pred = model.predict(X_test)

# 精度評価
score = accuracy_score(y_test, pred)

print("精度:", score)

初心者が意識すべきポイント

Pythonによる機械学習を学び始めたばかりの方は、まずはコードを動かしながら流れを理解することが重要です。難しい理論や数式にとらわれすぎず、実際に手を動かして分類モデルを構築する経験を積むことで、自然と理解が深まります。 また、特徴量やラベルの意味を理解すること、複数のモデルを試して違いを比較することも大切です。これらを意識することで、より実践的なスキルを身につけることができます。

先生と生徒の振り返り会話

生徒

「Pythonで機械学習の流れが少し分かってきました。データを用意して学習させて予測するんですね。」

先生

「その通りです。特にscikit-learnはシンプルに書けるので、初心者にはとてもおすすめです。」

生徒

「でも精度が高いかどうかはどう判断すればいいんですか?」

先生

「accuracy_scoreのような評価指標を使います。ただし、学習データとテストデータを分けることが重要です。」

生徒

「同じデータだと良く見えすぎるんですね。」

先生

「その通りです。実際の運用を想定した評価をすることが大切です。」

生徒

「これからは別のモデルも試してみたいです。」

先生

「とても良い姿勢です。決定木以外にもロジスティック回帰やサポートベクターマシンなど様々な手法があります。比較しながら学んでいきましょう。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python の機械学習の記事一覧へ
新着記事
New1
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.2
Java&Spring記事人気No2
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのタプルの要素を変更できない理由とその回避策を初心者向けに解説
No.7
Java&Spring記事人気No7
ChatGPT
ChatGPTでPythonコードを作成する方法!プロンプトの書き方と質問例を解説
No.8
Java&Spring記事人気No8
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説