サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
esu-ko.hatenablog.com
タイトルの通り、CausalImpactをPythonで試してみます。 下記本を元にし、RからPythonで書き直し、同様の効果が推定できるか試してみます。 導入 pyが最初につくのに注意します。 pip install pycausalimpact データの作成 statsmodelsのcigarデータを使います。 CausalImpactはデータフレームの一番左をyとし、それ以降が予測に使う変数となるため、その形となるようにpivotと並び替えを行います。 import statsmodels.api as sm df = sm.datasets.get_rdataset('Cigar', 'Ecdat').data #上記本の初期加工を関数化しておく def create_data(df): tmp = df[(df['year']>=70) & (~df['state'].isin
データ分析の仕事をしていると、基本的な表形式のデータ以外では表現しにくい現実事象が存在します。要素と関係性で表現されるネットワークもその一つです。 個人的にはこの形式のデータは、示唆までたどり着きにくいため、ビジネス的な分析とは言いにくいな、とは思います。ただし、探索的にデータを理解したり、プロダクトの機能として使えることは多い分野だと思っているため、タイトルはあえて「データを扱う」にしました。 ネットワーク分析とは networkxはグラフ(ネットワーク)に関するデータの保持/操作をしやすくするパッケージです。 なお、情報がきちんとまとまっているのは以下の書籍です。(クリックするとAmazonにとびます) (感染症のモデルであるSIRモデルや、Word2Vecとの組み合わせなど、応用も多く非常に面白かったです。 ネットワークは繋がりを持つ要素(=ノード)と、その繋がり(=エッジ)で表現さ
Pythonでデータを扱う場合、 csvファイルを読み込んだり、出力することがあります。 そんな時は標準モジュールのcsvを使えば簡単です。 CSVをリストとして読み込む csvモジュールのreader,writerを使うだけです。 読み込む import csv data = [] with open("file.csv","rb") as f: reader = csv.reader(f) for row in reader: data.append(row) 書き込む import csv output_data = ["書き込む","データ","だよ"] with open("file.csv","wb") as f: writer = csv.writer(f) # csv用のヘッダーがデータにない場合は先に書いておく # writer.writerow(["header","d
Pythonでスクリプトを作っている時に、 ループの進捗を確認したい時があります。 ループ毎にprint等で確認してもよいのですが、 長い処理を行う場合、ターミナルの表示がムダに感じます。 そこでプログレスバーを表示するtqdmモジュールを使用します。 使い方 pipを使っていれば、pipで入ります。 pip install tqdm 使い方はループのイテレータをラップするだけです。 importの仕方にだけ気を付けましょう。 from tqdm import tqdm import time for i in tqdm(range(100)): time.sleep(1)#ループしたい処理を書く # 以下のプログレスバーが出る # 75%|███████▍ | 75/100 [02:02<10:51, 1.28s/it] enumerateと併用したい場合 Pythonではループカウンタ
PythonでRSSリーダーを作りたい時があります。 そういった時はfeedparserモジュールを使用します。 feedparserは標準モジュールではないので、 pip等でインストールします。 pip install feedparser 使い方 RSSフィードのURLを与えてあげると、 FeedParserDictという辞書型に似た形で返してくれます。 ドキュメントを見るとほとんどのパース作業を裏でやってくれているので、 使用する分には何も考えないでも使えてしまいます。 import feedparser url = "feedのurl" rss = feedparser.parse(url) type(rss) # <class 'feedparser.FeedParserDict'> #辞書っぽいアクセス #feedのタイトルとデスクリプション print(rss['feed']
そろそろ画像まわりも覚えていきたいので、 まずPillowをためす。 機械学習なんかをするにはOpenCVやnumpyで画像を扱える必要があるのだろうけど、 まずは簡単な画像編集から。 Pillowとは PillowはPILというモジュールがForkされたもの。 PIL自体の開発は止まっているのだけれど、 Pillowはimport PILで使えるので、 昔はPIL使ってたコードもそのまま使える配慮をしてくれている。 導入 pip install Pillow pillowとlower caseにすると全く関係ないモジュールが入るので注意。 使い方 とりあえず適当な画像をダウンロードしてきて、 読み込んでみる。 画像のダウンロードにはwgetというモジュールを使った。 from PIL import Image import wget img_url = 'ダウンロードしてくる画像のURL
はいはーい、今週のPythonです。 始めての方向けに説明すると、 毎週twitterで(手動で)キュレーションした記事を紹介してます。 で、その反応状態を見て、コメントをするシリーズ記事です。 今回は若干趣向を変えて、いきなり記事を全部紹介します。 Python3のmap等の生成物(イテレーター)・丸括弧でのジェネレーター内包表記は使い捨て Python: ast (Abstract Syntax Tree: 抽象構文木) モジュールについて PythonでFizzbuzz(1行で) 感想など 渋いですね。 こういぶし銀な凄さが伝わってきます。 なんせリスト内包表記、ジェネレータ内包表記、イテレータ、astですよ。 先週は画像処理記事ばっかりで、 なんか派手感ありましたが、その反動なんでしょうか。 で、 せっかくなんで、今週は真剣に理解するとすごく分かりにくい、 イテレータやジェネレータ
画面なんて作るから構築に時間がかかるんだ!(極論) ※なお、良心がタイトルを「まだテンプレートで消耗しているの?」にさせなかった模様。 Pythonの有名ドコロwebフレームワークは、 どれもデフォルトでテンプレート機能が用意されています。 (対してORMはDjangoくらいだったりする) 今回紹介するFalconはそのテンプレート機能すらも捨て去った漢モジュールです。 最近のスマホアプリや、javascriptによるフロントMVCの攻勢を見ると、 テンプレートはなくても良いんじゃないかと思うことがあります。 そうなるとtornadoやDjangoは少々大げさすぎる感じはするので、 サーバサイドをScrapy + mongodb + データ集計+Falconで組んで、 フロントはスマホアプリやJSに完全に任せてしまうという構成もありなきがします。 使い方 pipでいれて pip insta
今日は、新☆年☆度ですね! 新しい年度、新しい環境を過ごした人も多いのではないでしょうか。 そして本日はエイプリルフールです。 Googleが物理フリックを発表したり、 Facebook上では結婚ネタが頻発したり・・・ みなさんはどんな嘘をつきましたか? なお私は地味にこんな記事を書きました・・・ esu-ko.hatenablog.com Pythonはいいぞの精神で書きましたが、 来年こそは、もっとおもしろく出来るといいな、と思います。 というわけで、新年度最初の今週のPythonです。 VASILYさんのクローラーとディープラーニングの話が聞きたくて『Fashion Tech meetup #2』に参加した VASILYはFasTech(なんて言葉はない気がする)系の企業。 vasily.jp iQONを作っている会社、っていうとわかりやすいですかね? そのVASILYのmeetup
ぼけっと、色々な記事を読んでいたら、 先日AlphaGo(っぽい)レポジトリを紹介していた時に出てきた、 Kerasというモジュールの紹介記事を見かけた。 esu-ko.hatenablog.com aidiary.hatenablog.com 色々なDeepLearningのKeras版レポジトリも元記事位は付いているので、 Chainerで書き直したら勉強になりそ−、とは思うんだけど、 そもそも何かを知っていないとお話にならないので、その調査メモ。 Gaussian-Bernoulli RBM 連続値を処理したいときの制約ボルツマンマシン Chapter 8 ボルツマンマシン - 深層学習本読み会 補助関数法によるGaussian-Bernoulli RBMの 学習アルゴリズムの検討 制約つきボルツマンマシン (RBM; Restricted Boltzmann Machine) の私
Pythonで自然言語処理を行いたい場合、 選択肢は、 NLTK Sci-kit learn gensim があります。 NLTKはフルスタックなツールで、 下記の本でも丁寧に記載されています。 sklearnはtf-idfなどを扱うためのクラスを持っています。 で、最近は残りのgensimを勉強しています。 でもその前に 日本語で自然言語処理を行う場合、 単語ごとの分割が問題になってきます。 英語などは単語ごとに空白が入っているので、splitしやすいのですが、 日本語だとその分割作業があります。 Pythonだと、 Pythonのmecabラッパーやjanomeなどで、 この作業が可能です。 esu-ko.hatenablog.com で、gensim gensimは結構色々な作業が可能です。 有名ドコロでは、word2vecがあります。 が、今回はトピックモデルについて勉強しました。
ここ、数日間、ガリガリPythonでアプリを書いていました。 今回から珍しくpydoc回りをきちんとやろうと思ったのと、 あんまり日本語情報のないモジュールを使っていたので、 中身を詳しくなるためにinspectというモジュールを使います。 導入 標準モジュールなので、 初めから入ってます。 import inspect 何ができるの? importされているモジュールから 色々な情報を抜き出せます。 基本 import urllib # 関数やらクラス名やらを返す for a in inspect.getmembers(urllib): print a[0] getmembersをすると (オブジェクト名,オブジェクト)のタプルを格納したリストが帰ってきます。 ちょっと応用 # クラスのみ inspect.getmembers(urllib,inspect.isclass) # 関数のみ
今回はアソシエーションルールを扱います。 データマイニングで有名な「おむつとビール」の逸話を生み出した手法ですね。 Pythonでは以外とアソシエーションルールの利用例がなかったので、 調べるのが大変でした・・・。 (一瞬自分で実装することになるかもかと思った) (クリックするとamazonに飛びます) 準備 import numpy as np import pandas as pd import Orange import matplotlib.pyplot as plt % matplotlib inline sklearnにはアソシエーションルール分析は実装されていないので、 Orangeを使用します。 データの準備 ec = pd.read_csv("ch9_2.txt",sep=" ") ec.head() book cosmetics electronics food imp
前回から大分、間があいてしまいましたが、 Pythonでデータサイエンス続き編です。 前回のアソシエーションルールまでで、 本編は一通り終了しました。 残りは10章に載っている、 様々な手法に触れてみよう編です。 手を動かしながら学ぶ ビジネスに活かすデータマイニング 作者: 尾崎隆出版社/メーカー: 技術評論社発売日: 2014/08/22メディア: 単行本(ソフトカバー)この商品を含むブログ (6件) を見る 今回はベイジアンモデリング 教科書はこれ、ですが、ベイジアンモデリングそのものの説明は最小限でした。 準備 Pythonでベイジアンモデリングを用いるには、 MCMCを扱えるpystanを使用します。 これは重力波の研究にも使われたツールで、 StanというMCMCを扱うライブラリのPythonラッパーです。 andrewgelman.com pipで入ります。 pip inst
データ分析やりたい、知りたい、 でも僕文系・・・ な人って結構いるんじゃないかと思います。 そういう人向けのロードマップを書きます。 あと理系だけど、統計苦手とか、 専門じゃないけど触れておきたい 人にも役に立つと思います。 前提 高校までの確率を知ってる人 (微積や線形代数は必要なし) 目標 統計検定二級をとる なぜ統計検定二級かというと 一級だとしっかり数式がわからないといけない 三級だと理論にあまり触れない からです。 この記事が役に立つ人の目標ラインとしては二級が妥当かと。 資格所持に価値があるか、というのは人によるとは思います。 (少なくとも就職や転職ではあまり役には立たない印象です) が、資格試験ベースで勉強すると、過去問を解くことで進捗が可視化できます。 自分の成長を確認したり、弱点がわかりやすくなるので、 勉強の目標としては有効だと思っています。 (何より合格できるとうれし
データ分析の仕事をしていると、基本的な表形式のデータ以外では表現しにくい現実事象が存在します。要素と関係性で表現されるネットワークもその一つです。 個人的にはこの形式のデータは、示唆までたどり着きにくいため、ビジネス的な分析とは言いにくいな…
この本のRのコードを基に、 Pythonに書きなおして勉強をしています。 ※クリックするとamazonに飛びます 今回は第四章:重回帰分析を行います。 準備 import pandas as pd import numpy as np import Orange 今回は重回帰のモデル構築に、 sklearnではなくOrangeというモジュールを使用します。 これは、Orangeの方がモデルのデータを表示しやすいためです。 (予測をするのであれば、sklearnの方が楽ですが・・・) データの準備 本書によると、扱うデータは ビールの販売データ(被説明変数) 販売促進の施策(説明変数) のようです。 beer = pd.read_csv beer = pd.read_csv("ch4_3_2.txt",sep=" ") beer.head() # Revenue CM Temp Firewo
そろそろ本腰をいれて、Pythonでデータ分析を始めることにしました。 教科書は以下の本を使用します。(クリックするとamazonに飛びます) 元の本はRでデータ分析を行っているので、 それをPythonでやるにはどうやるのか? を何回かに分けてノートとして公開します。 (今回は検定) 環境構築 目的 モジュール 環境 Anaconda IDE IPythonNotebook データ処理 Numpy,Pandas グラフ作成 matplotlib 検定等 Scipy 機械学習 Orange,sklearn 時系列分析 statsmodels 以上を導入しておきます。 第三章:検定 というわけで、上記の書籍の第三章、検定から入ります。 IPythonNotebookを起動してノートをつくります。 まずは、必要なモジュールをimportします。 import numpy as np impor
id:mamoruk さんより自然言語処理を学ぶ書籍を紹介していただきました。 ありがとうございます。 http://cl.sd.tmu.ac.jp/prospective/readings 自然言語処理 機械学習 ウェブマイニング に分かれており、非常に参考になります。 また、mamorukさんの監修なさっている本が3/5(明日!)発売予定なので、 手にとってみようと思います。 自然言語処理の基本と技術 (仕組みが見えるゼロからわかる) 作者: 奥野陽,グラム・ニュービッグ,萩原正人,小町守,イノウ出版社/メーカー: 翔泳社発売日: 2016/03/05メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る mamorukさん自身の紹介記事はこちら 技術から基本を学ぶコンセプト 以下読んだことある本について感想など。 集合知プログラミング 集合知プログラミング 作者:
IPythonNotebook、便利ですよね。 データ分析ツールとしても良し。 コードの確認としても良し。 実際のノートとして使っても良し。 HTMLしたら共有も楽勝〜。 でもわがままな人はこう思ったりするんです。 「ノートがファイルに別れてるから、共有しにくい」 それ、解決しましょう。 Pythonの静的CMS「Pelican」にIPythonNotebookのノートが流し込めます。 ブログとして閲覧できるようになります。 Pelicanとは 動的CMSと言えば、Wordpress。 これはデータベースに記事を格納してます。 Pelicanはそれとは異なりPython製の静的CMS 対して、静的CMSは事前にHTMLを出力して、 それを静的サーバでブログとして提供します。 なので、DropboxのPublicフォルダや、GitHubPageでもブログが公開できるんです。 ちょっとした身内
optunaは下準備にコードを書く必要がありますが、lightgbmが対象の場合は、より簡単なコードで処理することができます。 コード lightbgmでtrainしていたところを、optuna.integration.lightgbmに変えるだけです。 ▼lightgbmに関してはこちら esu-ko.hatenablog.com 下準備 import lightgbm import optuna.integration.lightgbm as lgbo from sklearn.model_selection import train_test_split # 回帰の場合 opt_params = { "objective":"regression", "metric":"rmse" } # データを用意する X_train,X_test,y_train,y_test = train_
ディープラーニングタノシイ! イラストで学ぶ ディープラーニング イラストで学ぶ ディープラーニング (KS情報科学専門書) 作者: 山下隆義出版社/メーカー: 講談社発売日: 2016/02/23メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 以前、『初めてのディープラーニング』を紹介した時に、 こっちのほうがおすすめだよ、と言われた書籍です。 私はあくまでも初めてのディープラーニングのが好きですけど! レベルとしては初めてのディープラーニングとほとんど一緒。 こちらのほうが、Chainer,TensorFlowと多彩なフレームワークの説明あり。 初めてのディープラーニング 初めてのディープラーニング --オープンソース"Caffe"による演習付き 作者: 武井宏将出版社/メーカー: リックテレコム発売日: 2016/02/19メディア: 単行本(ソフトカバー)
Pythonのデータ分析は、pandasやnumpyのおかげで大変快適です。 しかしそうは言っても、コード書くほどじゃないんだよなあとか、 まだデータ全然わかんねえんだよなーという時があります。 そんなときに便利なモジュールがpivottablejsです。 というわけで、まずは動画を御覧ください。 pivottablejs pivottable.jsはもともとjavascriptのパッケージです。 インタラクティブにデータを可視化したり、集計することが可能になります。 (人と相談したりしながらの操作も楽ですね!) pythonではpivottablejsというモジュールを導入することで、 これが使用することが可能になります。 使い方 pip install pivottablejs で、導入。 IPython notebook上で、 import pandas as pd from piv
今日も元気にPython記事を手動キュレーションしてると以下の様な記述が Pythonプログラマから見て、Rubyって羨ましいなと思うところ。 Rubyには、デザインパターンに焦点を当てた書籍もある。 デザインパターンといえばGoF(wikipedia:ギャング・オブ・フォー_(情報工学))が有名だけれども、 あれってC++とかJavaを使っている前提のデザインパターンだから、 言語によってはそんなデザインパターンいらねぇよという話になる場合がある。 なので、言語に特化したデザインパターンの書籍ってあると便利。 Pythonにもこういうのが欲しいよね。Rubyって羨ましいよなぁ。 いやいや、Pythonにも全部のせデザパタ本ありますよ! こいつ(クリックするとAmazonに飛びます ) ついでに目次もamazonより引用 1章 生成に関するデザインパターン 1.1 Abstract Fac
自然言語処理については、 前から興味があったのですが、 なかなか学ぶのが難しい。。。 ということで、自然言語処理に強い某社の専門家にお勧めを聞いてきました! ついでに自分の持っている本も持っていき、 その評価も聞いてきました。 一冊目 入門 自然言語処理 作者: Steven Bird,Ewan Klein,Edward Loper,萩原正人,中山敬広,水野貴明 出版社/メーカー: オライリージャパン 発売日: 2010/11/11 メディア: 大型本 購入: 20人 クリック: 639回 この商品を含むブログ (44件) を見る 私「自然言語処理といえば、これですよね。最初に買ったのがこれでした」 専「え、それ辛くない?」 私「大分」 専「これNLTKを使う前提だしね。独学には向かないんじゃないかな。監督者がいて、かつPythonやったことない人が期間をかけてやるには良いんじゃないかな」
ディープラーニング、DeepLearning,DEEP LEARNING! しょっちゅう人工知能とセットで情報が伝わってくるので、 「ああ、あれね?」って人も多いんじゃないでしょうか? (pythonつったらDeepLearningでしょ〜って人も多い気がします) しかし、実際に「ディープラーニングってなんなの?」 と聞かれたときに胸はって答えられますか? もちろん、答えれるyo! え、一応、TensorFlow(Chainer)で画像の識別できる・・し? えーと、あれだよあれ。碁を打つ奴。ビジネスが変わるよね〜 従来のニューラルネットにドロップアウトなどの新しい要素を追加して、それから・・・ と、上記のうちどれかの解答をしてしまった人におすすめのが、 発売されたばかりのこの本です。 初めてのディープラーニング --オープンソース"Caffe"による演習付き 作者: 武井宏将 出版社/メー
ディープラーニングは色々な知識が必要です。 「チュートリアル動かしました」で止まったままの人も多いでしょう。 そこで、自分がchainerを理解しながら動かした時の方法を書きます。 大前提 とは言ったものの、誰でも入門は無理なので。 以下が最低限の前提です。 数学:微分積分、行列、確率とか聞いても「ああ、あれね・・・」くらいには思う IT:Pythonがそれなりに分かる。numpyはそこそこ分かる。 機械学習:説明変数とか、目的変数とか分類とかが何となく分かる やる気:引っかかった時に、調べる気力がある ゴール chainerを自分で色々試せるレベルになる。 あくまで試せるレベルになるだけです。 それでも千里の道も一歩からです。 一緒に頑張りましょう。 ちなみになぜchainerか、というと、 入門者が触るには、バランスは良さそうに見えたからです。 最初の最初 ディープラーニングは歴史から
tinydbはmongodbのようなドキュメント型データベースです。 特徴として、mongoのようにサーバーを立てる必要がありません。 web APIを叩いたりしていると、 jsonファイルを楽に扱えたらなあ、と思うことがあります。 また、簡単なプロトタイプアプリを作る場合、 データスキーマを決めたくない場合があります。 tinydbはjsonファイルとドキュメントデータベースの中間のようなデータベースです。 基本はjsonファイルですが、 サーチやインサートなどDBライクに操作でき便利です。 導入 pip install tinydb 使ってみる テーブルは作成しなくても大丈夫です。 勉強のため、テーブル作成をやってみます。 from tinydb import TinyDB db = TinyDB("db.json") # インメモリーで使いたい時は # from tinydb.sto
このページを最初にブックマークしてみませんか?
『あれもPython,これもPython』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く