実践 マーケティングデータサイエンスを読み進める:データの理解(探索データ分析①)

実践 マーケティングデータサイエンスを読み進めて学んだこと、気づいたことをメモしていきます。今回は第四章のCRISP-DMでいう「データの理解」を扱った部分です。「データの理解」は第三章では各データの名称や構造や単位、その他の細かなルールを扱いました。この本では第四章、次の第五章で探索的データ分析を扱います。

▶ CRISP-DMについては以下の記事をご覧ください。

探索的データ分析(前編)

  • 探索的データ分析(Exploratoly Data Analysis)
    頭文字をとってEDAと呼ばれる。データの特徴や構造を理解することです。データを集計したり分析したりして気づきを得て、インサイト(人を動かす隠れた心理のこと)を導き出すのはとても重要なこと。

  • フォルダ構成
    データ分析をする際に、プロジェクトごとに決まったフォルダ構成にしておくとわかりやすい。特にフォルダ構成を決めていない場合は、学習を進めていって自分なりにもっと良いものが見つかるまでは以下から始めてみるとよい。

    「プロジェクトのフォルダ」
      ∟src(実行するプログラム)
      ∟input(inputデータ)
      ∟intermediate(中間ファイルを格納)
      ∟output(outputデータ)

  • データフレーム操作するときのTips
    • 命名ルール
      • まずはdf_tmpのような名称でデータを格納し、加工後にdfにする
      • 単語と単語の間を「_」(アンダースコア)でつなげる
      • 長くなる場合は子音の頭文字のみ、または単語の頭文字のみをつなげる
        (Japan→jpn)
      • DataFrameはdf, Seriesはseとする
    • データの処理
      • unique()メソッドはnullを含み、nunique()メソッドはデフォルトではnullを含まない
      • notna()メソッドでnullではない行のみを取り出すことができる
      • df = df1は参照渡しでdfを変えると、df1も変わってしまう
      • df = df1.copy()とするとお互いに影響を受けない
      • 別の性質を持つデータは分けたほうが分析しやすい時もある

その他、ヒストグラムの解像度を上げるときには、つぎのようにするとよい。

bin_min = int(df['列名'].min())
bin_max = int(df['列名'].max())
edges = range(bin_min, bin_max, ビンを刻む単位)
plt.hist(df['列名'], bins=edges)
plt.show()

▶ この本に興味を持った方は以下からどうぞ。

タイトルとURLをコピーしました