Posts on python

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

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.…

機械学習ライブラリTensorFlowの日本語書籍まとめ。

まだ全部は読破できていない上、1冊は発売予定なんですが… Google製機械(深層)学習ライブラリ、TensorFlowの解説本を紹介します。 TensorFlowのフロントエンドがPythonなので、どの書籍もPythonの基本を理解していることが前提の内容となっています。 まずはこちらのポップな表紙の「TensorFlowはじめました」。 TensorFlowはじめました 実践!最新Googleマシンラーニング (NextPublishing)[Kindle版]posted with ヨメレバ有山 圭二 インプレスR&D 2016-07-29 KindleAmazon[書籍版] 本当にTensorFlowとは何なのか? Tensorとは何か? といった、TensorFlow公式ページのチュートリアルを読めば分かるような位置から図解入りで解説してくれます。 Amazonの評価コメントの評価は低いですが、入門としてはとてもお勧めだと思います。自分のような入門者にとっては、概念を図解してくれるだけでも理解のとっかかりになって、有難いものです。 次は、「TensorFlowで学ぶディープラーニング入門」。はい、まだ発売してません。すいません。 TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~posted with ヨメレバ中井 悦司 マイナビ出版 2016-09-28 AmazonKindle楽天ブックス でも上記の書籍は、副題からも、この中井悦司さんが出されている他の書籍を見ても、かなり本格的な内容であることが予想できますね。ニューラルネットワークって… 言葉は知っているけど、技術的にどうこう言われるとガクブルなので、勉強します。…

Amazon Cloud Driveが無制限プラン開始。さすがのAmazon品質… 驚きです。

Amazon Primeに入ると、自動的についてくるPrime Photoサービス。写真であれば、たとえRAWデータであれ、無制限にオンラインストレージに保存できます。年額3900円、月額に直すとたったの325円のPrime会費で、このオンラインストレージがついてくるのだから驚きです。 それが今度は、別途料金にはなりますが、無制限オンラインストレージサービスを開始しました。お値段13800円/年、月額に直すと、たったの1150円にて。大丈夫か? Amazon。 以前Bitcasaというサービスで、月1000円で無制限ストレージを提供したことがありましたが、あれよあれよと無制限プランは消えて無くなってしまいました。採算が合わなかったんですかね…。 Amazonはいつまで継続できるのかわかりませんが、3ヶ月の無料試用期間があるので、試してみました。 まずは申し込み 無料試用期間が3ヶ月もあるので、まずは試してみましょう。ここから申し込みます。 既にクレジットカード情報を登録済みであれば、そのまま確定。なければ「クレジットカードを追加」から登録します。 たったこれだけで、無料トライアルが開始されます。 自動契約更新の解除 が、このままだと3ヶ月後に自動的に契約が継続され、使用料が発生するので、まずはそれを解除します。私のAmazon Driveの右上にあるストレージの管理をクリック。 以下のように、現在のプランが表示されます。継続しないをクリック。 すると、以下のように登録を再開始となれば設定完了。 と同時に以下のようなメールが届いて、「無料体験をキャンセルしました」?! と一瞬ビビりますが、ちゃんと継続されています。…

スマホから電源スイッチのリモート操作を可能にするシステムをDIYしよう。

サーバ管理経験者なら、これって意外と夢だったりしませんかね? パソコンの電源スイッチをリモート(自宅の外)からON/OFF操作する。 これ、意外と簡単にできちゃいます。電子工作経験とRaspberry Piみたいな小型低消費電力サーバと、低消費電力無線機能付きマイコンXBeeが2つあれば。 XBeeを使ってできること こちらに概要を書いていますが、Arduinoほどの自由度はありません。 でもXBee自身が結構な数のI/Oを持つ上、ADCもあったりするので、ちょっとしたことならXBeeだけで出来てしまいます。今回のようなリレー操作なら超簡単。 とあるピンにリモートで0か1を指定して、それがそのままリレーのON/OFFに変換されるというだけでの仕組みです。 そんなシステムの構成 それなりにシーケンス図を書いてみるとこうなります。 PC電源をON/OFFするには、マザーボードの電源スイッチ端子をショートさせればいいので、リレーを使います。 リレー制御は3.3V highにできるGPIOがあれば十分なので、XBeeのdigital I/O操作APIを叩くだけというお手軽さ。 設定やら構築やらの手順 RaspberryPi + XBee Coordinatorの組み立てと設定 RaspberryPiがWebサーバとして動作して、ユーザはブラウザ経由でXBee Coordinatorを操作することになります。 家庭菜園リモート監視の記事のCoordinatorの設定とRaspberry Pi側のサーバ環境構築を参考にXBeeとRaspberryPiを設定してみてください。 この辺も整理しないと・・・。 小型リレーボードキットLK-RB1 + XBee Routerの組み立てと設定 お手軽にリレーを使えるようにしたキットがあります。小型リレーボードキットLK-RB1です。 エレキット 小型リレーボードキット (5V用) LK-RB1posted with…

Pythonで実行中のコードの情報を取得する方法。例えば関数名とか。

テスト実装していて、ふと「今実行中の関数名を取得するにはどうするんだろう?」と思って調べてみると、いつもお世話になっているQiitaに投稿している人がいた。助かります。 m(._.)m Pythonネタ。実行中の関数・メソッド名を取得したい on @Qiita https://t.co/CJsM5lp2Uh— takashi ando (@takashi7ando) 2016年7月16日 ちなみにPython2でも3でも同じ方法で取得できました。 >>> def printFuncName(): ... print sys._getframe().f_code.co_name ... >>> printFuncName() printFuncName ただ、さすがにこのコードは覚えにくいな・・・。sysモジュールのprivateな関数使ってるし・・・。 ということで「frame」をキーワードに調べてみると、ちゃんと用意されていました。inspectモジュールを使って、もっとスマートに取得できるようです。 inspectモジュールでスタック情報を参照する inspect: インタプリタスタックから引用します。ちなみに、Python3.5はまたちょっと違うようですが、…

代表的な機械学習アルゴリズム4つの精度を不倫データで比較する。

変なタイトル…。 またも前回の続きですが、udemyで紹介される機械学習アルゴリズムは以下の4つ。 というより、多すぎて試しきれず、以下の4つに絞ったというか。 ロジスティック回帰 k近傍法 サポートベクトルマシン ナイーブベイズ分類 これらをデフォルトのまま使って予測精度を比較してみようかなと。 まずは不倫データを整えます。前回までの記事にコードのコピペです。 import pandas as pd import numpy as np from pandas import DataFrame, Series import statsmodels.api as sm def is_affairs(affairs): return 1 if affairs > 0 else 0 X = sm.datasets.fair.load_pandas().data Y = X.affairs.…

機械学習用データから分かる、不倫への明暗を分ける5つの要因。

興味本位で始めた、機械学習用不倫データセットと、Pythonの機械学習ライブラリscikit-learnを使って、愛妻の不倫を予測した前回の続き。(疑っているわけじゃないです) 結局、どのパラメータが不倫の大きな要因なのか? 不倫を避けるにはどうすればいいのか? と疑問に感じた人が調べるのは、係数(coefficient)です。 詳しい話はUdemyの実践 Python データサイエンスの講習やWikipediaを参照するとして、ざっくり言うと、「旦那の職業」「妻本人の職業」「子供の人数」・・・などの係数のうち、どれが目的変数(妻が不倫するかしないか)を決定するのに最も影響力を持つか、と解釈しました。 係数は、前回作ったロジスティック回帰modelに格納されているので、一目でわかるように可視化します。 from sklearn.linear_model import LogisticRegression from sklearn.cross_validation import train_test_split # トレーニング用データと確認用データを分離 X_train, X_test, Y_train, Y_test = train_test_split(X, Y,…

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

結果はシロでした! 不倫しないそうです。(本人に結果報告したら「わかんないよ」と言われましたが…) まずは学習データをロードします。 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(…

実践 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…