Diabetesデータセット

概要

diabetesデータは、年齢や性別など10個の特徴量と、それらの測定1年後の糖尿病の進行度に関する数値を、442人について集めたデータ。出典は”From Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani (2004) “Least Angle Regression,” Annals of Statistics (with discussion), 407-499″。

ここではPythonのscikit-learnにあるdiabetesデータの使い方をまとめる。

データの取得とデータ構造

Pythonで扱う場合、scikit-learn.datasetsモジュールにあるload_diabetes()でデータを取得できる。データはBunchクラスのオブジェクト

データの構造は辞書型で、442人の糖尿病に関する10個の特徴量をレコードとした配列、442人の測定1年後の糖尿病の進行度を示す数値データの配列など。

データのキーは以下のようになっている。

データの内容

'data'~特徴量データセット

10個の特徴量を列とし、442人の被検者を業とした2次元配列。DESCRに説明されているように、これらのデータは標本平均と標本分散で正規化されており、各特徴量とも、データの和はゼロ(正確には1×10-14~1×10-13のオーダーの実数)、2乗和は1となる。

'target'~糖尿病の進行度

442人に関する10個の特徴量データを測定した1年後の糖尿病の進行度を示す数値。原文でも”a measure of disease progression one year after baseline”としか示されていない。このデータは正規化されていない

'feature_names'~特徴名

10種類の特徴量の名称

sklearn R
0 age age 年齢
1 sex sex 性別
2 bmi bmi BMI(Body Mass Index)
3 bp map (動脈の)平均血圧(Average blood pressure)
4 S1 tc 総コレステロール?
5 S2 ldl 悪玉コレステロール(Low Density Lipoprotein)
6 S3 hdl 善玉コレステロール(High Density Lipoprotein)
7 S4 tch 総コレステロール?
8 S5 ltg ラモトリギン?
9 S6 glu 血糖=グルコース?

scikit-learnでは後半のデータがs1s6とだけ表示されていて、DESCRにおいても”six blood serum measurements”とだけ書かれている。Rのデータセットでは、これらがtc, ldlなど血清に関する指標の略号で示されている。

tcとtchはどちらも総コレステロールに関するデータのようだが、どういう違いなのかよくわからない。少なくとも双方に正の相関があるが、ばらつきは大きい。

'filename'~ファイル名

CSVファイルのフルパス名が示されている。scikit-learnの他のデータセットと以下の2点が異なっている。

  • 特徴量データdiabetes_data.csvとターゲットデータdiabetes_target.csvの2つのファイルに分かれている
  • ファイルの拡張子がcsvとなっているが、区切りはスペースとなっている

diabetes_data.csv

1行に10個の実数がスペース区切りで配置されており、442行のデータがある。442人分の10個の特徴量データ

diabetes_target.csv

ターゲットyに相当する442行の実数データ。

‘DESCR’~データセットの説明

データセットの説明。各特徴量データが標準化されていることが説明されている。

データの利用

各データの取得方法

data、targetなどのデータを取り出すのに、以下の2つの方法がある。

  • 辞書のキーを使って呼び出す(例:diabetes['data']
  • キーの文字列をプロパティーに指定する(例:diabetes.data

dataの扱い

そのまま2次元配列として扱うか、pandas.DataFrameで扱う。特定の特徴量データを取り出すには、ファンシー・インデックスを使う。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です