2020年2月14日こんにちわ。この記事では、機械学習を行う際に必要なデータの前処理についての方法について実践を踏まえながら練習問題を通して学習していきます。練習問題の題材としてはKaggleで無料で配布されている資料を使用します。notebookで作業を行う場所と同じフォルダにアップロードしてください。機械学習を行うにあたり、データの抽出やデータの作成・整理は最も重要になります。臨床試験でも企業でのデータ処理の案件でもそうですが、データの作成次第で結果が大きく変わってくると言っても過言ではありません。このデータの前処理は、機械学習でデータ分析を行う全ての行程のうちの鬼門とも言えます。今回はkaggleのcompetitionで使用されたデータを用いてデータの前処理方法を行います。リンクよりデータをダウンロードして使用してください。データの下処理の仕方について学んでいきましょう。準備したデータの取り込みを行う。形式の取り込みを行う。データの量や、どの様なアウトカムを導きたいのか、によって取り込むツールが変わってきます。次の工程として、「データの理解」をします。具体的には、カラムの定義や、欠損があるのか、ないのかなどの確認を行います。特徴量の設定データの理解が終了すれば、最後は「特徴量の設計」を行います。データをそのまま使用しても良い結果に繋がらない場合があるので、新たに特徴量を作るなど色々と試してみる必要があります。機械学習のためのデータ前処理を行う【実演編】STEP1:機械学習のデータ前処理に必要なモジュールの読み込みまずは必要なモジュールの読み込みを行います。含めて沢山のものがあります。色々なスタイルのうちの一つとして考えてください。以下のサイトが参考になりますので、参照してください。matplotlibのstyleを考えるSTEP2:機械学習のデータ前処理に必要なデータの読み込みCSVファイル"kaggle_housing_price.csv"を読み込み、内容を確認します。いう便利な機能がついているので、これを使用してcsvファイルを読み込みましょう。プロパティで全データの行数と列数を取得できます。81)STEP3:データの理解|機械学習のデータ前処理に必要な要約統計量を出力するデータの理解1:データの要約統計量の確認これからデータを理解する作業にうつります。データを理解するためには、データ数、平均や中央値、標準偏差などの統計量を確認し、データの要約統計量をまとめていきます。メソッドを使うと、様々な統計量の情報を要約して表示してくれますので便利です。要約統計量を表示dataset.describeout[]ここでお気付きの方もいると思いますが、少し表がガタガタしていて汚いですよね。記載しているためです。入力し出力データを確認してみましょう。要約統計量を表示dataset.describe()out[]これで、ある程度綺麗な表として出力することができました。つけることを覚えておいてください。それぞれの行の意味ですが、「conut」はレコード数で「mean」は平均です。「std」は標準偏差、つまりデータのばらつきの程度を表しています。「min」は最小値、「max」は最大値で、その間にある「25%」、「50%」、「75%」は、それぞれのパーセント点を意味します。「25%」であれば、データを小さいものから大きいものに並べた時の25%目、つまり100個のデータがあれば、小さいものから25個目に来る値ということです。これらのアウトプットを見ながら、データ理解の糸口にします。インデックス番号0~10の行を抽出dataset[0:10]out[]次に、特定の列名('SalePricce')を抽出し、最初の数列(5行)を表示する方法についてみていきましょう。メソッドを使用する事で最初の5行のみを表示する事が出来ました。'LotArea')を抽出し10行目〜20行目を抽出する方法について見ていきましょう。in[]Pythondataset[['SalePrice','LotArea']][10:20]1dataset[['SalePrice','LotArea']][10:20]out[]datasetの後に、[][]と2回[]が続きますが、これは慣れるしかありません。非常に便利ですので、参考にしてください。次に特定の行番号、列番号を指定して抽出する方法について見ていきましょう。いうメソッドを使用します。以下のサイトがまとまっているので、参考にしてください。[0,2,4]]out[]0列目、2列目、4列目に加えて0〜5行目を抽出した形になります。次に、特定の行の名前、列の生を指定して抽出する方法を確認しましょう。一つ上では特定の行、列の番号で抽出する作業を行いました。今回は特定の行・列の名前で抽出する作業を行って見ましょう。用いて情報を抽出する事が出来ます。特定の列を指定した状態で(例えば、'SalePrice'や'LotArea'など)、特定の行を抽出する方法を確認してみましょう。responsive][cell][/cell][cell][/cell][/yoko2]STEP4:データ処理|カラム間の演算PandasのDataFrameでは、列同士で足したり引いたり、更には新しい列までも加えることができます。いうDataFrameの変数があるとします。追加することが出来ます。dfは読み込んだデータセット名である必要があります。pd.read_csv(‘dataset.csv’)のような形で書くとdataset.csvというcsvファイルを読み込んでdfという名前にすることができます。以下の様に使用します。合わせて9種類の値しかありません。