はじめに
当記事はkaggleのLearnのIntro to Machine LearningのBasic Data Explorationを翻訳して備忘としたものです。
拙い英語力なので間違い等あればご指摘いただけたらと思います。
まとめ:【kaggle】翻訳記事まとめ【備忘翻訳】
前:【kaggle】機械学習イントロ - どのようにモデルは動くか【備忘翻訳】
次:【kaggle】機械学習イントロ - 初めての機械学習モデル【備忘翻訳】
当記事に含まれるコードはkaggle内のnotebook内で正常に動作します。動作を試したい場合はkaggleのnotebookで試してください。
基本的なデータ探索
Pandasを使ってデータを理解する
機械学習の最初のステップはデータに慣れることです。そのためにはPandasというライブラリを使用します。Pandasはデータサイエンティストがデータの探索や操作に使用する主なツールです。大抵の人はコード内ではpandasのことを以下のようにpdと略します。
import pandas as pd
Pandasライブラリで最も重要なものはDataFrameです。DataFrameはテーブルのような考えでデータを保持します。ExcelのシートやSQLデータベースのテーブルに似ています。
Pandasはこのようなデータタイプで実行したいほとんどの操作に対応している強力なメソッドがあります。
例として、オーストラリアのメルボルンの住宅価格に関するデータを見てみましょう。実践演習では、アイオワ州の住宅価格を含む新しいデータセットに同じプロセスを適用します。
サンプルデータ(メルボルン)は次のパスにあります。../input/melbourne-housing-snapshot/melb_data.csv
次のコマンドを用いてデータを読み取ることができます。(これはkaggleのnotebook上で利用可能なコードになっています。実際にコードを書く際はkaggle上で行ってください。)
# save filepath to variable for easier access(パスを変数に保存する)
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
# read the data and store data in DataFrame titled melbourne_data(データを読み取り、melbourne_dataという変数に保存する。)
melbourne_data = pd.read_csv(melbourne_file_path)
# print a summary of the data in Melbourne data(メルボルンのデータの概要を表示する)
melbourne_data.describe()
以下の結果が得られます。
Rooms | Price | Distance | Postcode | Bedroom2 | Bathroom | Car | Landsize | BuildingArea | YearBuilt | Lattitude | Longtitude | Propertycount |
---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 13580.000000 | 1.358000e+04 | 13580.000000 | 13580.000000 | 13580.000000 | 13580.000000 | 13518.000000 | 13580.000000 | 7130.000000 | 8205.000000 | 13580.000000 | 13580.000000 |
mean | 2.937997 | 1.075684e+06 | 10.137776 | 3105.301915 | 2.914728 | 1.534242 | 1.610075 | 558.416127 | 151.967650 | 1964.684217 | -37.809203 | 144.995216 |
std | 0.955748 | 6.393107e+05 | 5.868725 | 90.676964 | 0.965921 | 0.691712 | 0.962634 | 3990.669241 | 541.014538 | 37.273762 | 0.079260 | 0.103916 |
min | 1.000000 | 8.500000e+04 | 0.000000 | 3000.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1196.000000 | -38.182550 | 144.431810 |
25% | 2.000000 | 6.500000e+05 | 6.100000 | 3044.000000 | 2.000000 | 1.000000 | 1.000000 | 177.000000 | 93.000000 | 1940.000000 | -37.856822 | 144.929600 |
50% | 3.000000 | 9.030000e+05 | 9.200000 | 3084.000000 | 3.000000 | 1.000000 | 2.000000 | 440.000000 | 126.000000 | 1970.000000 | -37.802355 | 145.000100 |
75% | 3.000000 | 1.330000e+06 | 13.000000 | 3148.000000 | 3.000000 | 2.000000 | 2.000000 | 651.000000 | 174.000000 | 1999.000000 | -37.756400 | 145.058305 |
max | 10.000000 | 9.000000e+06 | 48.100000 | 3977.000000 | 20.000000 | 8.000000 | 10.000000 | 433014.000000 | 44515.000000 | 2018.000000 | -37.408530 | 145.526350 |
データ概要の解釈
概要には、元のデータセットの各列に対して8つの値が表示されます。最初の数値(count)は欠損値のない行を示しています。
欠損値は様々な要因によって発生します。例えば、1つしかベッドルームがない家に対して2つ目のベッドルームのサイズを調査する場合、データは収集できません。欠損値についての詳細は後ほど説明します。
2つ目の値(mean)は平均値を示します。その下のstdは標準偏差を示し、その値がどれだけ広がっているかを示します。
min、25%、50%、75%、max、は各列を最低値から最高値の順に並べ替えたと考えてください。最初の(最小の)値はminです。リストの1/4まで進むと、値の25%より大きく、75%より小さい数字が見つかります。これが25%の値です(25パーセンタイルと読みます)。50%と75%も同様に定義され、最大値は最も大きい値になります。