全2460文字
PR

 「データ確認」の二つ目のステップとして、データの統計情報を確認してみましょう。次の処理では、具体的に次の二つの情報を表示します。

     
  • データフレームdfの属性shapeの表示
  • 正解データy に対してvalue_counts()関数を呼び出した結果

 前者では、表形式のデータdfに対して、その行数と列数を表示します。後者では、yの値(今回の場合1と0の2通り)ごとにデータが何個あるのか集計した結果を表示します。具体的な実装が以下のコードです。

データの統計情報確認
[画像のクリックで拡大表示]
データの統計情報確認

 最初のshapeの結果が(569,30)であることから、データが569行30列であることがわかります。これは機械学習の言葉で言い換えると「項目数30の入力データが569セットある」ということになります。

 次のvalue_counts関数の結果からyの値としては1(良性〈benign〉)と0(悪性〈malignant〉)の2通りがあり、「1」が全部で357個、「0」が全部で212個あることがわかります。357+212=569ですので、上で説明した入力データの行数と辻つまがあっていることも確認できました。

 データの確認方法としてはこの他に散布図などのグラフを表示する方法があります。散布図とは2次元のデータ(x,y)をxy平面上の点として表示したグラフです。複数の点を分布を見て、データ全体の状況を確認できます。この方法を次に試してみましょう。

 今回、散布図は、正解データが1のものと0のもので色分けして表示する方針とします。その準備として、元の入力データを正解データが0のグループ(df0)と正解データが1のグループ(df1)に分割することにします。そのための実装が以下のコードです。

散布図描画の準備
[画像のクリックで拡大表示]
散布図描画の準備

 dfはデータフレームの変数なので、df[y==0]のようなシンプルなコードで、目的とするデータの分割ができます。

 分割後のデータを確認するため、今度はdf0[20:25]の代わりにdf0.head()と記述してhead関数を利用しました。head関数は、データフレームの先頭5行を絞り込んで抽出する関数で、今後、よく利用します。データフレームの表示には先ほど同様display関数を利用しました。

 今回の出力結果を見て、一つ気付くことがあります。それは「半径_平均」の項目値はdf0(正解データが0のグループ)の方が大きい傾向にありそうだということです。