学習記録(24日目)
勉強開始:12/7(土)〜
教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/19(木)読了
・Progate Python講座(全5コース):12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12月23日(土)読了
・Kaggle : Real or Not? NLP with Disaster Tweets :12月28日(土)投稿〜1月3日(金)まで調整
・Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年):1月4日(土)〜
『Pythonによるデータ分析入門』
p.346 10章 データの集約とグループ演算 まで読み終わり。
9章 プロットと可視化
・matplotlib, seabornといったデータ可視化ライブラリの解説
線種のような設定要素についてはDocString(関数名 + '?')で見られる。
(matplotlibをas pltでインポートしているなら、plt.plot?のように使う。)
・基本はmatplotlibとし、必要に応じてpandasやseabornのようなアドオンライブラリを用いるとよい。
import matplotlib.pyplot as plt
fig = plt.figure() #プロット機能が含まれるオブジェクト。
ax1 = fig.add_subplot(1, 1, 1) #プロットするためにはサブプロットを1つ以上追加する。
#以下、図の形式や入力データについて記述
・できること概要
余白の調整、軸の共有、タイトル、凡例及び表示位置の調整(loc='best'で最適位置)、
ラベル回転表示(rotation)、注釈の追加(annotate)、図の追加(add_patch)、
matplotlibのデフォルト値設定(rcメソッド)
props = {'title': 'namae no ikkatsu settei', 'xlabel': 'aiueo'}
ax.set(**props)
・DataFrameにもplotメソッドがある。データフレームにそのまま使える。
s.value_counts().plot.bar() #barhで横棒
・seabornパッケージを使用すると、プロットの前に集計や要約を要するデータを容易に可視化できる。
引数のdataにはデータを、xやyにはデータフレームの行と列の名前を指定する、
・ヒストグラム:棒グラフの一種、値の頻度を離散データとして表示
・密度プロット:観測データを生み出したと推定される連続確率分布から生成される。
通常、この分布をカーネルという正規分布などのシンプルな和として近似する方法をとっている。
そのため、密度プロットは「カーネル密度推定(KDE)プロット」とも呼ばれる。(plot.kde)
・すごいよく使いそうなメソッド
seaborn.distplot(ヒストグラムと密度推定のプロットを同時に作成できる)
seaborn.regplot(散布図を作成し、線形回帰による回帰直線をあてはめる)
seaborn.pairplot(各要素ずつを比較した散布図行列を一括で可視化できる)
10章 データの集約とグループ演算
・pandasのgroupbyメソッド
データセット同士の要素を組み合わせて任意の処理が実行できる(ものと理解。)
・グループ演算プロセスは 分離(split)−適用(apply)−結合(combine)の流れ。
・1つのデータセットに対しても、複数の要素を指定できる。
任意の値について抜き出し、処理(平均、カウント等)をした後、再度グループ化できる?
・ディクショナリを用いたマッピング情報を使用して分類もできる。
・groupbyメソッドの関数(count, sum, mean, median...)基本的な算術計算は網羅してそう。
・groupbyでデータを集約した際につく名前は、タプルを渡すことで変更できる。
as_index = Falseでインデックスなしも指定できる。
・applyは、オブジェクトを分離し、それぞれのピースに渡された関数を適用し、その後結合する。
applyに渡す関数はプログラマが自分で実装する必要があるため、想像力が求められる。
・ピボットテーブルとクロス集計。データフレームの関数でもgroupbyでも実装dけいる。
これらを扱えるようになると、データクリーニングやモデリング、統計分析に役立つ。