Posts on データサイエンス

機械学習ネタ。ピアソンの相関係数をヒートマップ化してプロットするには。

Udemyのデータサイエンス講習は一通りやってしまったので、復習するのもいいけど何か新しいことをやりたいと思い… これを買ってしまいました。 Python機械学習プログラミング 達人データサイエンティストによる理論と実践 impress top gearシリーズ[Kindle版]posted with ヨメレバSebastian Raschka,株式会社クイープ,福島 真太朗 インプレス 2016-06-30 KindleAmazon[書籍版] 大学数学から離れて10年以上立つので正直きついですが、かなり掘り下げて解説してくれるので理解が深まります。 その中でも、やってみて面白かったことを備忘録と練習を兼ねて、本書とは別のデータセット、irisデータを使い、特徴量同士の相関をヒートマップ化してみようと思います。 まずは特徴量同士のpairplot出力を見てみます。 この図を出すには、以下のようにします。 import numpy as np import seaborn as sns import pandas as pd from sklearn.datasets import load_iris iris = load_iris() iris_df = pd.…

機械学習って面白い。Pythonを使ってデータを分類、可視化してみた。

実践Pythonデータサイエンスのレクチャー86 決定木とランダムフォレスト、やっっっと最終章に辿り着きました。 まぁ、理解しきれてないけど… 長かった。 この最終章、visualize_tree()という独自関数を使ってランダムフォレスト分類器による分類結果を二次元マップとして描いて可視化するんですが、パッと見、よく分からないんです。 理解した気になったmeshgrid()関数のことを、実際は理解できていなかったことも要因かな…。 復習を兼ねてvisualize_tree()関数を紐解いてみたら、その過程がとても楽しかったので、簡単に紹介します。 やりたいこと 機械学習の教師用データを自分で作り、それを学習したモデルを作って、未知のデータを網羅的に与えた結果を図示して楽しむのが、ここでの目的です。 機械学習って、本来はもっと高尚な目的があって分析すると思うんですが、ここではその辺りは無視します。 可視化までの流れ概略 教師用データを単純に描画するとこうなって、 教師用データの最大最小範囲に収まる領域を満遍なく予測するため、青い点で示した座標値を作り、 それを分類モデルに与えて、結果を色付けして重ねてやると、こうなる。これは面白い。 可視化までの流れ詳細 では、実際にコードを書いて備忘録を作っていきます。 教師となるデータを作る まずはsklearn.datasets.make_blobs関数を使って、教師データを作ります。 import numpy as np import pandas as pd from pandas…

「不倫」データセットを機械学習して妻の説明変数パラメータを与えたところ、結果は…

結果はシロでした! 不倫しないそうです。(本人に結果報告したら「わかんないよ」と言われましたが…) まずは学習データをロードします。 import pandas as pd import numpy as np from pandas import DataFrame, Series import statsmodels.api as sm X = sm.datasets.fair.load_pandas().data 学習データに対する正解を作ります。 未知のデータ(妻パラメータ)に対する不倫するか(1)しないか(0)の結果を知りたいんですよね。 def is_affairs(affairs): return 1 if affairs > 0 else 0 Y = X.affairs.apply(…

Udemyデータサイエンス講座のロジスティック回帰テーマは「不倫」。

実践 Python データサイエンス、最後の方でscikit-learnを使って機械学習の基礎が学べます。これは面白い。 今やっとロジスティック回帰なんですが、ここに至るまでにこなしたのは株価解析や(これも面白かったけど)、アメリカ大統領選得票数の解析など、ちょっと堅いテーマが多かったのです。 それがロジスティック回帰にきて、テーマはなんと、「不倫」。 以下のようなデータセットを使ってLogisticRegressionモデルに食わせるわけですが、要するに以下のパラメータを与えれば、その人が不倫するかしないかの2値で予測結果が返っってくるというわけです。あくまで機械学習の学習用のテーマに過ぎないんですが…。 print(sm.datasets.fair.NOTE) :: Number of observations: 6366 Number of variables: 9 Variable name definitions: rate_marriage : How rate marriage, 1 = very poor, 2 = poor, 3 = fair, 4 = good, 5 = very good age : Age yrs_married…

実践 Python データサイエンス@Udemy 進捗状況 その3

聞かれてないのに、勝手にUdemyの実践Pythonデータサイエンスの進捗報告。 やっと本題の機械学習にたどり着いたことで気づいたこと。 ここからいきなり難しくなって進まない。いや進むんだけど、ちゃんと理解しようと自分で色々試したり、関数ヘルプ読んだりしてると、なかなかね…。 セクション1 このコースの内容とPythonについて セクション2 準備 セクション3 numpyを知ろう セクション4 pandas入門 セクション5 データ解析の基礎 その1 セクション6 データ解析の基礎 その2 セクション7 データ解析の基礎 その3 セクション8 データの可視化 セクション9 実践データ解析 セクション10 機械学習 セクション11 付録A:Pythonの基礎 セクション12 付録B:統計入門 セクション13 付録C:SQLとPython セクション14 付録D:Webスクレイピング そして以下の本もまた難しくて、なかなか進まず。 でもOpenCVを使った画像処理+機械学習やデータビジュアライゼーションにとどまらず、Pythonでパフォーマンス考慮したコードを書くには?プロファイリングして最適化するには?などなど、非常に幅広く深く網羅しているので、Pythonの深淵に触れたい方にもオススメの一冊。 詳細はいつかそのうち紹介したい。…

Keen IOに蓄積した自家発電量データをPythonで可視化する: ピボットテーブルのプロット

前回の続き。 Keen IOから取得した自家発電量データでピボットテーブルを生成すると、以下のようになりました。 In [24]: data_p.head(3) Out[24]: label Amp Hours Array Current Array Voltage \ timestamp 2016-05-06T00:03:06.020Z 23811.1 1.994629 54.019775 2016-05-06T00:13:06.221Z 23811.8 1.735840 53.349609 2016-05-06T00:23:06.417Z 23812.6 2.321777 53.986816 label Battery Voltage Charge Current…

Keen IOに蓄積した自家発電量データをPythonで可視化する: ピボットテーブルの生成

Udemyの実践 Python データサイエンス復習を兼ねて、自家発電量データからピボットテーブルを生成します。 ピボットテーブルとは? ピボットテーブルの使い方 ピボットテーブルは、Excelで「クロス集計」を行う機能です。 クロス集計は、2つ以上の項目についてデータの集計を行う集計方法です。 初心者のためのExcel講座 一つのデータをいろいろな視点から統計をとったり、分析したりする場合に使います。 元になる表は、領収書の項目をただ横並びに入力したようなものが分かりやすいと思います。 横並びに入力したような、それなりの量のデータを自前で用意するには、Keen IOに蓄積した1年分の自家発電量データしかないので、これを使います。なぜ横並びに入力したようなデータが必要なのかは後で触れます。 また、Keen IOとは以下のようなサービスです。 REST API経由でデータを送信することができ、オンラインのデータベースに蓄積が可能 データを可視化してWeb経由で参照するためのダッシュボードサンプルコードを無料公開しており、カスタマイズ可能 月当たりのデータ送信量が少なければ全て無料で使用可能、有料のPro版ならデータ解析もしてくれるらしい まずはKeen IOからデータをロードするための下準備。projectid、readkey、master_keyには、Keen IOにログイン後、プロジェクトのホーム画面で「Show API Keys」ボタンを押して表示されるキー値を入れます。 from keen import KeenClient from pandas import DataFrame,…

実践 Python データサイエンス@Udemy 実践データ解析準備でkaggleに「オマエbotじゃねーの?」と疑われる。

タイタニック号のデータセットを使うために、The world's largest community of data scientists compete to solve your most valuable problems.と謳うkaggleのアカウントを作っておくように勧められます。 Facebookアカウントに関連付けて簡単にアカウントを作れるんですが… ブラウザで戻ったり進んだりしていたら、いつの間にかkaggleにログインを拒否られ、 「オマエbotじゃねーの?」 「この問題を解いて、オマエがデータサイエンティストであることを証明しろ」 と、いきなり英語でケンカを売られました。 その問題がこちら。毎回変わるのかな? 生徒は全部で62人います。 33人の生徒は数学を、37人の生徒は統計学を、32人の生徒は財政学を受講しています。 18人の生徒は数学と統計学の両方を、24人の生徒は統計学と財政学の両方を、11人の生徒は財政学と数学の両方を受講しています。 9人の生徒は、3つ全てを受講しています。 3つの授業、何も受講していない生徒は何人いますか? 包含図を書いて整理すれば、簡単ですね。 見事bot容疑は晴れて、「疑ってごめんなさい」と謝罪されました。 さて、データセットをダウンロードするか…。…

実践 Python データサイエンス@Udemy 進捗状況 その2

Udemyの実践Pythonデータサイエンス、やっと実践データ解析の章に辿り着きました。 セクション1 このコースの内容とPythonについて セクション2 準備 セクション3 numpyを知ろう セクション4 pandas入門 セクション5 データ解析の基礎 その1 セクション6 データ解析の基礎 その2 セクション7 データ解析の基礎 その3 セクション8 データの可視化 セクション9 実践データ解析 セクション10 機械学習 セクション11 付録A:Pythonの基礎 セクション12 付録B:統計入門 セクション13 付録C:SQLとPython セクション14 付録D:Webスクレイピング 今更気づきましたが、よく見るとセクション11以降は「付録」となってますね。 ここから先は自分で経験を積みなさいということか…。まだ終えてませんが。 経験を積むにはどうするか? と探していたら、こんな本を見つけたので購入しておきました。 これまた濃ゆい内容で面白そうなんですが、濃すぎる内容なので紹介はいつかそのうち別の機会に…。…

実践 Python データサイエンス@Udemy 進捗状況

自前のデータを可視化してみたり、meshgridの使い方を再確認してみたりと時間がかかっております、Udemyの実践Pythonデータサイエンス。 Paypalの履歴を見ると、このコースを受講し始めたのが3月18日。約1ヶ月かけて31 of 104 items completeという状況は、だいぶペース遅いですね。 修了証を受け取れるのは6月半ばってこと…? セクションでいうと、今いるのはセクション6のデータ解析基礎その2の真ん中。 なんとか来月半ばまでに修了したいなぁ。何があるわけでもないんですが、3ヶ月はちょっとかけ過ぎかなぁと。 セクション1 このコースの内容とPythonについて セクション2 準備 セクション3 numpyを知ろう セクション4 pandas入門 セクション5 データ解析の基礎 その1 セクション6 データ解析の基礎 その2 セクション7 データ解析の基礎 その3 セクション8 データの可視化 セクション9 実践データ解析 セクション10 機械学習 セクション11 付録A:Pythonの基礎 セクション12 付録B:統計入門 セクション13 付録C:SQLとPython…