ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Python - Python を使ってデータ分析を始めるには

初めに

 Python はアプリケーション開発、システム管理ツール、データサイエンスなどさまざまなことに利用されています。本記事では、実際に Python を動かしながら、簡単なデータ分析をしてみます。

前提

 「データ分析をするために、Python を触ってみる」ことを目標にしています。データ分析の結果が正しいかどうかなどは焦点にしておりませんので、ご承知おきください。

手順の確認

 本記事では、次の手順でデータ分析を進めます。

  1. データの収集
  2. データの読み込み
  3. データの分析
  4. 結果の可視化

データの収集

 データを収集するには、次の方法などがあります。

 本記事は、UCI Machine Learning Repository にある Student Performance Data Set を利用してみます。

archive.ics.uci.edu

データの読み込み、分析、可視化

 Python を使って、ダウンロードしたデータを分析してみます。

 作業用のフォルダを作り、その中に、データファイルを入れます。

 Visual Studio Code を開き、作成したフォルダを開きます。そして、.py ファイルを作成します。

 .py ファイルに次のコードを記述します。

import pandas as pd

# データを読み込む
data = pd.read_csv('student-mat.csv', sep=';', skiprows=[1])

import matplotlib.pyplot as plt

plt.scatter(data['studytime'], data['G3'])
plt.xlabel('Study Time')
plt.ylabel('Final Grade (G3)')
plt.show()

# 回帰モデルの構築と予測
from sklearn.linear_model import LinearRegression

X = data[['studytime']]  # 説明変数(studytime)
y = data['G3']           # 目的変数(最終評価)

# モデルを初期化して訓練
model = LinearRegression()
model.fit(X, y)

# 予測と可視化
new_studytime = [[4]]  # 予測したいstudytime
predicted_grade = model.predict(new_studytime)
print(f"Predicted Final Grade (G3): {predicted_grade[0]}")

# 回帰直線をプロット
plt.scatter(X, y)
plt.plot(X, model.predict(X), color='red')
plt.xlabel('Study Time')
plt.ylabel('Final Grade (G3)')
plt.show()

 実行してみると、TERMINAL に次のようなエラーが発生するかもしれません。

No module named 'pandas'
No module named 'matplotlib'
No module named 'sklearn'

 その場合はモジュールがないと言われているので、TERMINAL に次を入力し、インストールしましょう。

pip install pandas
pip install matplotlib
pip install scikit-learn

 実行結果が次のように表示されます。

※今回は、データに対して、分析の仕方が適切ではないので、赤い直線がデータの様子を正しく表しているとはいいがたいものになっています。本当は、データに合わせて適切な分析の仕方をしなければ、おかしな分析結果が出てしまいます。

補足

pandas

 Pandas(Python Data Analysis Library)は、Pythonプログラミング言語用の強力なデータ操作および分析ライブラリです。Pandasは、データの読み込み、クリーニング、変換、結合、集約、可視化など、さまざまなデータ操作を効率的に行うためのツールを提供します。

matplotlib

 matplotlib は Pythonプログラミング言語用の2D図表描画ライブラリです。データを視覚的に表現し、グラフや図を作成するために広く使用されています。

matplotlib.org

scikit-learn(sklearn)

 Pythonプログラミング言語用の機械学習ライブラリで、機械学習モデルを簡単に作成、評価、適用するためのツールとして広く使われています。

回帰、回帰分析

 回帰分析は、統計学および機械学習の手法の一つで、変数間の関係性を分析するために使用される手法です。主に、1つまたは複数の説明変数(独立変数)が、目的変数(従属変数)にどのような影響を与えるかを調べるのに利用されます。

 今回、使ったものは線形単回帰分析であり、一次関数で表されています。線形単回帰分析をするためのモデルをインポートしたので、sklearn.linear_model という記述がありました。

bellcurve.jp