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

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.linear_model import LinearRegression

# 勉強時間(入力データ)
X = [[1], [2], [3], [4], [5]]

# テストの点数(結果)
y = [50, 60, 65, 70, 80]

# モデル作成
model = LinearRegression()
model.fit(X, y)

fitという処理で、データをもとにモデルを学習させています。

4. 予測してみよう

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

学習したモデルを使って、新しいデータを予測してみましょう。


# 6時間勉強した場合の予測
prediction = model.predict([[6]])

print(prediction)

[85.]

この結果から、6時間勉強すると約85点になると予測できます。

5. 傾きと切片を確認する

5. 傾きと切片を確認する
5. 傾きと切片を確認する

線形回帰は直線なので、「どれくらい傾いているか」と「どこから始まるか」が重要です。これを確認してみましょう。


# 傾き
print(model.coef_)

# 切片
print(model.intercept_)

[7.]
43.0

傾きは「1時間増えると何点上がるか」、切片は「0時間のときの点数」を意味します。

6. データを増やしてみる

6. データを増やしてみる
6. データを増やしてみる

データが増えると、より正確な予測ができます。少しデータを追加してみましょう。


X = [[1], [2], [3], [4], [5], [6], [7]]
y = [50, 55, 65, 70, 75, 85, 90]

model.fit(X, y)

print(model.predict([[8]]))

[96.]

このように、データを増やすことでより現実に近い予測が可能になります。

7. NumPyを使って効率化する

7. NumPyを使って効率化する
7. NumPyを使って効率化する

NumPyは数値計算を高速に行うためのライブラリです。配列を使って効率的にデータを扱えます。


import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[1], [2], [3], [4]])
y = np.array([40, 50, 60, 70])

model = LinearRegression()
model.fit(X, y)

print(model.predict(np.array([[5]])))

[80.]

NumPyを使うことで、大量のデータでもスムーズに処理できます。

8. 線形回帰のポイント

8. 線形回帰のポイント
8. 線形回帰のポイント

線形回帰はシンプルですが、データの関係が直線で表せる場合に特に強力です。もしデータが曲線のような関係の場合は、別の手法を使う必要があります。

また、データの質も重要です。間違ったデータや極端な値があると、予測結果が大きくずれてしまうことがあります。

まとめ

まとめ
まとめ

線形回帰とPython機械学習の総まとめ

本記事では、Pythonを使った機械学習の中でも最も基本となる線形回帰モデルについて、初心者の方でも理解しやすいように丁寧に解説してきました。線形回帰は、データの関係性を直線で表現し、将来の値を予測するシンプルかつ強力な手法です。特に「Python 機械学習 入門」「線形回帰 わかりやすい」「scikit learn 使い方」などのキーワードで検索される方にとって、最初に学ぶべき重要なテーマです。

Pythonでは、scikit learnという便利なライブラリを活用することで、難しい数式を意識することなく簡単に線形回帰モデルを作成できます。今回紹介したように、LinearRegressionクラスを使えば、わずか数行のコードでモデルの学習から予測まで実行可能です。この手軽さが、Pythonが機械学習初心者におすすめされる大きな理由の一つです。

また、モデルの学習ではfitメソッドを使用し、予測にはpredictメソッドを使うという基本的な流れも重要なポイントです。この流れは、線形回帰だけでなく、分類モデルやクラスタリングなど、他の機械学習アルゴリズムにも共通しています。そのため、ここで学んだ内容は今後の学習にも必ず役立ちます。

さらに、モデルの傾きや切片を確認することで、データの関係性をより深く理解できるようになります。例えば、傾きが大きいほど入力データの変化に対する影響が大きいことを意味し、切片は基準となる値を示します。このような数値を読み解く力は、データ分析やデータサイエンスの分野でも非常に重要です。

データの量と質も、機械学習の精度に大きく影響します。今回のようにデータを増やすことで、より現実に近い予測結果を得ることができました。一方で、誤ったデータや外れ値が含まれていると、モデルの精度が低下するため注意が必要です。データ前処理やクリーニングも、機械学習において欠かせない工程となります。

そして、NumPyを使うことで、配列データを効率的に扱えるようになり、大量データにも対応できるようになります。「Python NumPy 機械学習」「配列処理 高速化」といった観点でも非常に重要なスキルです。実務レベルの機械学習では、NumPyやPandasなどのライブラリと組み合わせて使うことが一般的です。

このように、Pythonによる線形回帰は、機械学習の基礎を学ぶための最適なスタート地点です。まずはシンプルなモデルから始めて、徐々に複雑なアルゴリズムへとステップアップしていくことで、無理なくスキルを身につけることができます。

復習用サンプルプログラム


from sklearn.linear_model import LinearRegression
import numpy as np

# データ作成
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([50, 60, 65, 70, 80])

# モデル生成
model = LinearRegression()

# 学習
model.fit(X, y)

# 予測
result = model.predict(np.array([[6]]))

# 出力
print("予測結果:", result)

# 傾きと切片
print("傾き:", model.coef_)
print("切片:", model.intercept_)
先生と生徒の振り返り会話

生徒

「Pythonで線形回帰モデルを作る流れがよく分かりました。思っていたより簡単ですね。」

先生

「そうですね。scikit learnを使うことで、複雑な計算を意識せずに機械学習ができます。」

生徒

「fitとpredictの使い方が特に重要だと感じました。」

先生

「その通りです。この基本の流れは他の機械学習モデルでも共通なので、しっかり覚えておきましょう。」

生徒

「傾きや切片を見ることで、データの意味も理解できるのが面白いです。」

先生

「データの背景を読み取る力はとても大切です。単に予測するだけでなく、なぜその結果になるのかを考える習慣をつけましょう。」

生徒

「これからはNumPyや他のライブラリも組み合わせて、もっと実践的な機械学習に挑戦してみたいです。」

先生

「とても良い意欲ですね。基礎をしっかり固めれば、分類やディープラーニングにもスムーズに進めますよ。」

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

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

関連記事:
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リクエストの送り方を初心者向けにやさしく解説