from sklearn.datasets import load_diabetes
# 糖尿病データセットの読み込み
diabetes = load_diabetes(as_frame=True)
X = diabetes.data["age"]
y = diabetes.target15 演習
15.1 データセットの説明
糖尿病データセットでは,442人の糖尿病患者の年齢,性別,体重指数(BMI),血圧などの情報と,1年後の病状の進行度を示す数値が含まれている.年齢,性別,BMIなどは説明変数で,1年後の病状の進行度が目的変数である.また,説明変数は標準化されている.
| 特徴量 | 説明 |
|---|---|
| age | 年齢 |
| sex | 性別 |
| bmi | 体重指数 |
| bp | 平均血圧 |
| s1 | 総コレステロール |
| s2 | 低密度リポタンパク質 |
| s3 | 高密度リポタンパク質 |
| s4 | 総コレステロール/HDL |
| s5 | 血清トリグリセリドレベルの対数 |
| s6 | 血糖値 |
| target | 1年後の病状の進行度 |
sex は 2 種類の値のみを取る二値の特徴量である.load_diabetes() が返すデータは標準化されているため,元データの 1 と 2 はそれぞれ -0.0446 と 0.0507 に変換されている.
下記のコードは,糖尿病データセットを読み込み,年齢を X,目的変数を y に代入している.
plt.savefig("scatter.png") を実行すると,散布図が scatter.png というファイル名で保存される.
import matplotlib.pyplot as plt
plt.scatter(X, y)
plt.savefig("scatter.png") # 散布図を保存X を1次元配列に変換するには,以下のコードを実行する.
import numpy as np
X = X.to_numpy().reshape(-1)15.2 課題
糖尿病データセットを用いて,以下の問いに答えよ. (説明変数は標準化されていることに注意せよ.)
- 年齢とBMIの相関係数を計算せよ.
- 年齢と血圧の散布図を描け.
- 血圧を説明変数,1年後の病状の進行度を目的変数として,回帰モデルを構築し,回帰直線とデータの散布図を描け.
age,bmi,bp,s1,s2,s3,s4,s5,s6を説明変数,1年後の病状の進行度を目的変数として,重回帰モデルを構築し,各説明変数の回帰係数を表示せよ.- 1〜4 の結果を踏まえて,500字程度で考察せよ.追加の分析や可視化を行ってもよい.
- 例えば,どの説明変数が目的変数に強い影響を与えているか.
- どの変数が他の変数と強い相関を持っているか.
- どのような人が病状の進行が早い傾向にあるか.
15.3 提出方法
- 以下のいずれかの形式で提出せよ.
- .ipynb
- .docx
- 提出先:Google Classroom
- 提出期限:10/16