機械学習のための「前処理」入門

4章 構造化データの前処理(2)

1 顧客の特性を知る

1.3 データの正規化

範囲変換
f:id:bitop:20190614073611p:plain
Z変換
f:id:bitop:20190614073655p:plain
平均 ほぼゼロ
f:id:bitop:20190614073756p:plain
標準偏差 ほぼ1
f:id:bitop:20190614073921p:plain

2 顧客のグループ化

2.1 階層型クラスタリング

f:id:bitop:20190614074121p:plain
グループは15に分類されナンバー15がもっとも多い
f:id:bitop:20190614080701p:plain

2.2 非階層型クラスタリング

f:id:bitop:20190614084446p:plain
かなり団子になっているので別々にしてみた
f:id:bitop:20190614084533p:plain
f:id:bitop:20190614084643p:plain
f:id:bitop:20190614084709p:plain
f:id:bitop:20190614084730p:plain
f:id:bitop:20190614084817p:plain
f:id:bitop:20190614084842p:plain
f:id:bitop:20190614084905p:plain
f:id:bitop:20190614084928p:plain
f:id:bitop:20190614084955p:plain
f:id:bitop:20190614085020p:plain
クラスタ数を2にしてみた。
f:id:bitop:20190614085255p:plain

機械学習のための「前処理」入門

1.4 統計量の計算

f:id:bitop:20190611092658p:plain

f:id:bitop:20190611092734p:plain

1.5 データの可視化(その1)

f:id:bitop:20190611092840p:plain

f:id:bitop:20190611092920p:plain

このplotting.scatter_matrixは比較的新しい
関数のようでpandas version 0.19ではエラーが
でたのでversion(0.24.2)をあげたら描画OKとなった。
f:id:bitop:20190611092951p:plain

value_countsによる頻度(出現率)を算定できる
f:id:bitop:20190611093358p:plain

1.6 データの可視化(その2)

plt.gca()は直前に操作したaxesを取得する関数。
plt.setp()は第一引数のobjectにいろいろ設定するための
ここではaxisの横軸の目盛にラベルを後付け設定している。
f:id:bitop:20190611095206p:plain

2 データ準備

2.2 欠損値の除外

もともとより 300行(4%)除外された
f:id:bitop:20190611100829p:plain

dropnaは通常欠損値が存在する行を削除するがaxis=1と引数を指定すると列を削除できる

2.3欠損値の補完

f:id:bitop:20190611101444p:plain

2.4 外れ値の除外

f:id:bitop:20190611102014p:plain

2.5 文字列を数値へ変換

f:id:bitop:20190611102854p:plain One-Hot表現 f:id:bitop:20190611103114p:plain

2.6 分析データセットの作成

ここでto_csv('bank-prep.csv')として保存したファイルはGoogleDriveではなく
Google Colaboratoryが動作している環境(Linux)の/contentに保存されていた。

3 モデル作成

3.2 不均衡データの均衡化

imbalancedは既に入っていた。
f:id:bitop:20190611110707p:plain
imbalancedにはunder_sampling以外にもbase,exceptions,over_sampling,utilsも実装されているようです。
f:id:bitop:20190611112654p:plain

均衡化した結果おなじ数となった。
f:id:bitop:20190611112037p:plain
RandomUnderSampler関数の引数の意味はこちらのサイトにある
tekenuko.hatenablog.com

3.3 決定木モデルの作成と検証

精度の平均は0.76768,標準偏差は0.02992 
f:id:bitop:20190611115815p:plain
再現率は0.84615,適合率は0.7857
f:id:bitop:20190611120008p:plain

3.4 パラメータの最適化

決定木のパラメータは13ある。
f:id:bitop:20190611120241p:plain

もっともよい組み合わせは
f:id:bitop:20190611120906p:plain
となり本とは若干異なった。

機械学習のための「前処理」入門

1章 データ分析・活用を始めるために

 省略

2章 データ分析のプロセスと環境

 Google Colaboratoryで作業することにする。
 ワーク用のデータは出版社のサイトからDownLoadしGoogle Driveに保存する。
 f:id:bitop:20190609175259p:plain

3章 構造化データの前処理

1.2 データの読み込みと確認

 最初にGoogle ColaboratoryからGoogle Driveをマウントさせる
 f:id:bitop:20190609175751p:plain
   f:id:bitop:20190609175929p:plain

1.3 欠損値の確認

isnull()は要素が欠損値ならTrueを返す。any()は列または行(axisで指定する)にひとつでもTrueがあればTrueを返す。その反対はall()
f:id:bitop:20190609181745p:plain

欠損値が多いのはpoutcome[前回のキャンペーンの成功の有無],contact[連絡手段]
f:id:bitop:20190609182450p:plain

「株とPython-自作プログラムでお金儲けを目指す」を読む

約1ケ月間(2019/4/19 - 2019/5/31)かかって収集した株データをplotする。 データはSQLiteに保存したデータを「raw_prices.csv」としてエキスポートした。

f:id:bitop:20190602103644p:plain

f:id:bitop:20190602103722p:plain
出来高も描画 f:id:bitop:20190602111254p:plain

ローソク足も描画、データは
株価データ・株主優待情報・先物データ・ランキングデータ・CSVダウンロード無料 | 株式投資メモ・株価データベース

からトヨタ自動車の2019年分をCSVファイルでDownLoadした

f:id:bitop:20190602111603p:plain

f:id:bitop:20190602111727p:plain

ここを参考にした

note.nkmk.me