辞書的に使ってしらべたことから覚書。
2.3 デコレータ
- Python2.4で追加された構文
- 関数やメソッドのラッピング処理(受け取った関数を拡張して返す)の見た目をわかりやすくする
- クラスメソッドや静的なメソッドを定義する際に、メソッド定義の前の行にすっきりと書く事が目的
- いくつかのコードパターンを実装するときに非常に意図がわかりやすいコードになる
辞書的に使ってしらべたことから覚書。
はじめてのR masaha03 (SlideShare) 超お勧め
組み込み関数 read.table read.csv
外部パッケージを使う Eccel 画像ファイル
データ構造 データフレームがメイン
データの結合 merge, rbind, cbind データの抽出 subset
テキスト、Excel
図 組み込みのplot 外部パッケージ lattice ggplot2 (最近はこちらが多い)
レポーティング knitr 普通のレポート slidify パワーポイントに出力 Rpubs
(昔はTeXとかでまとめることが多かった)
RGUI Windowsは使いにくい RStudio 最近の定番。メモリは食う。一番無難 ESS Emacs EZR 医学系ではやりつつある Rzパッケージ SPSSの使いやすさ(GUI)をRで実現、masaha03さんが作った
seekR Rについて検索しやすい
Rseek 英語版
R-tips Rjpwiki 同志社大学 金明哲先生 群馬大学 青木繁伸先生
ほかプログラミング言語の経験あり R言語逆引きハンドブック Rによるデータサイエンス Rパッケージガイドブック
データ分析自体の不慣れ データ解析のための統計モデリング入門 デー玉イニング入門 早稲田大学 豊田先生 シナリオに沿ってRを使っていく
ゼロからはじめるR言語勉強会 最近はじまった勉強会 Wako.R (6/8開催) dritoshiさん R界のアイドルらしい。とがっている。人によっては引く Tokyowebmining 充実した議論、主催者の自己紹介が長い Zansa ガチで意も技術も高い大学生 集合地プログラミング勉強会 tetsuroitoさん 元はPythonをやっていた。今はやってない
さくさくテキストマイニング 資料が豊富。今はやってない 社会科学研究のためのR勉強会 ネットワーク関連
cran task view 目的別に外部パッケージがまとめられている。やりたいことが無い人はとっかかりに良いかも
Julia Rに我慢なら無い人が作り始めた次世代統計言語 脅威のPython勢 pandas:RのデータフレームをPythonで Bokeh:ggplot2ライクな可視化 scikit-learn:機械学習 機械学習向け Orange:統計、機械学習 統計向け
Jubatsu ゆばたす。分散したデータを常に素早く深く分析する。元はC++のライブラリ。機械学習
分散分析 3つ以上の平均値を比較するための統計的方法 2つの平均値を比較する方法はt検定
主効果:それぞれの要因ごとの効果 常温か、冷温か 交互作用効果:ふたつの要因が組み合わされた場合に生じる効果。単純に二つの足し算ではない
評価者によって主観が入っているのではないか?を分析
主効果:温度によって簿平均は異なるか?
銘柄によって異なるか?
冷蔵と常温をそれぞれ別の人たちに評価してもらったとき
seekR管理人平村さん
LinkedInのR Projectがおすすめ httpo://linkedin/
Salesforce.com,Force.comに接続するパッケージ CRMにはいているデータを検索、引き出してRで分析してSalesforceに戻す
多数の変量をもつデータを分析する
1変量、2変量の分析ができなければできない
平均、分散、共分散、相関係数、行列演算 微分積分、分布
分散を最大化させるのが一番合理的
因子分析は何が因子になっているかということを重視する アルゴリズムは主成分分析
主成分分析か、因子分析か? -> 因子分析でうまくいくかわからないようなものを分析するときは、とりあえずprcompに入れて主成分分析 -> 特徴を考えて要因分けしたい場合は因子分析
質の分析に主成分分析 -> 分散行列でやったとき、生の行列でやったとき、相関係数でやったとき -> 係数の順序は変わらないが、寄与率が変わる。寄与率が99%とかなってしまった。
相関の高い係数があると、使えるのか 相関係数の信頼区間が重要。 重回帰分析、目的変数がいかに精度を持っているかが重要
主成分分析は、どんな要素があるか、よりわかりやすく見るために使う。
市場はさまざまな価値感や趣向の人たちで構成されている。ターゲットになる人を決めたい。
レコメンドエンジンはもともとあるサービスに対するもの。 戦略ポジショニングは
どんな人たちで構成されていて セグメンテーション その中で誰をターゲットにして ターゲティング どんなサービスを提供するか ポジショニング
市場を意味のあるグループに分ける
セグメント1,2,3,4
区分する方法:昔からの方法では、年代、性別、地域、職業など。 -> 趣味趣向が多様化しているので基本的な属性による区分では意味のあるグループができなくなってきている -> 同じセグメント内でも、さまざまな趣向や価値観の人が存在するようになった。
ログやアンケートで、その人の趣向や消費行動を見て本質的なグループわけをすること 職業や性別ではなく、本質的なところでグループ分けする
主成分分析を駆使して可視化する。 k-means方
fmsbパッケージのradarchart関数で実行できる
どのセグメントをターゲットにするかを決定する
こだわりデジタル層 飛びつきミーハーそう
ターゲットセグメントの頭の中の自分たちのサービスと競合サービスの位置づけを理解し、彼らにどんなサービスを提供するかを決める
視覚マップを作成する ユーザにとってのサービスの位置づけマップ。マップ上で近い位置にあるサービスは競争関係になる
視覚マップ上でユーザが重視している方角を見つける
視覚マップはMDSでつくる (発表者がMDSが好きだから) 個体間の距離や非類似関係からマップを構築する
MASSパッケージのisoMDS関数で作成できる
説明変数?
形態素解析 ざっくりというと単語分割のこと 「お酒」は「お」が接頭詞になる。ただ人によっては「お酒」で一語
「mecab」でできる mecab ハードルは高ければ高いほどくぐりやすい <- 入力する
ベクトル空間モデル 文書をベクトル空間の1点として表現する 素性(そせい feature) のとり方は色々ある
Unigram model
maxsentパッケージ New York Timesの記事のタイトルのデータ N-gram model
文字列処理はPythonでやったほうがやりやすい
AパターンとBパターンを実際に試して結果が良いほうを選ぶ 本当に数値が高いほうを客観的に選べる
検定 起きた結果が偶然なのかを判断する
-> ABテストだけは簡単だが、検定を加えるととたんに難しくなる
A あったらいいなを形にする B 無限の可能性をあなたに
好きなほうのキャッチコピーを選んでください -> AとBを実際に選んでもらって決める
検定 A1 B2
この結果は偶然。どちらか一方が優れているとは言い切れない。 この時点でははっきりしない
「偶然おきる」 A.3打席1安打の3割りバッター B.300打席100安打の3割バッター
Aは偶然かも、Bはすごい binom.test
で検定ができる
ZeroMQ(rzmq)つかうとRやほかの言語間で通信できる
Python から R を呼び出す Webクローラを書く、データベースを操作、文字列処理が楽になる
scikit-learnが物足りない
Pandas Rで言うデータフレームが使える
Webデータ取得 -> csvに整形 -> 前処理 -> R
rpy2 で簡単にPythonとRの連携が非常に楽
pip install rpy2
これらよりjsonでzeroMQ使う方が連携しやすい?
ironpythonを使うほうが良い?
Xcodeを基本から勉強。前は何も知らずに画面遷移をコピペプログラムしただけだったので基本から勉強します。 バージョンは4.6.2。
File -> New -> Project
Master-Detail-Application
Product Name : nicomoro
Use Storyboards」「Use Automatic Reference Counting」の二箇所チェック
createでデスクトップにフォルダを作成
ファイルの一覧になっている
パネルに表示されるフォルダの構造と実際のフォルダでは構造が違う
→Xcode上では違う階層で同じ名前のファイル名も作れるが、コンパイル時にエラーになる。
フォルダのルールをできるだけ守る
プログラムを入れるフォルダ、設定ファイルを入れるフォルダ等予め決められているフォルダのルールにできるだけ従う
→変なところに作られたファイルは適切な場所に移動させる
Runでシミュレーターを実行。横にあるメニューでシミュレーターを選択(iPhone,iPadなど)
左:通常表示
中:画面分割(ジェントルマンみたいなアイコン)使いっぱなしにしているとおかしくなるので作業が終わったら通常表示に戻すことを意識する
右:差分表示。あまり使わないほうが良い。ストーリーボードを開いている状態で押してしまうと差分が出まくって戻れなくなる
左:左側のパネルを出したり引っ込めたり
中:下のパネルを出したり引っ込めたり(実行ログが表示されたりするところ)
右:右側のパネルを出したり引っ込めたり(Identityとか情報が表示されたりするところ)
※ ここは色々いじってもOK
左側パネルの一番上の部分をクリックした後、「TARGETS」で目的のアプリを選択
アプリのアイコンの設定とかできる。
ストーリーボードに表示されているものは選択してDeleteキーで消せる
→その後「Command S」で保存する
使わないmファイルやhファイルを削除
→「Move to Trash」でゴミ箱に移動しないと、表示されなくなるだけでディレクトリ内にはファイルは残ってしまう。エラーの元になるのでちゃんと消す。
右下の方にあるところのリストにある「View Controler」を真ん中の画面にドラッグアンドドロップ
→AWSっぽい立方体のアイコンにチェックが入っている状態で表示される(Object library)
左側のパネルにフォルダやファイルをドラッグアンドドロップ
「Choose options for adding these files」の画面の「Add to targets」で対象のプロジェクトにチェックが入っていることを確認する。
iPhoneで電波とか時刻とかバッテリー残量とかが表示されているところ
右下の方にあるリストの中にある「Image View」を対象のView Controlerにドラッグアンドドロップ
→広い画面で見ていてドラッグアンドドロップができない時は、対象のView Controlerにズームしてからやってみる
選択した状態で、右上の「Image View」のImageに、先ほどリソースを追加した中に入っている背景画像のファイル名を入力する(bg.pngなど)
サイズはGUIでも変更できるし、右上のパネル「View」でWidth,Heightを数値で指定することもできる
先ほどと同じ要領でキャラクターの画像を配置する
右下の方にあるリストの中にある「Round Rect Bottun」を対象のView Controlerにドラッグアンドドロップ
ダブルクリックするとボタンに表示されている文字を変更できる
同じ要領でView Controlerを右側に追加する
→吹き出しのImageや「戻る」ボタンを追加しておく
左の画面上に配置したボタンをCtrlを押しながらクリックし、右の画面にドラッグアンドドロップする
メニューが出るので「modal」を選択する
※ここでシミュレータを実行してボタンを押すと、次の画面に遷移する
戻るボタンを実装するためにクラスを作る
File -> New -> File
Objective-C class を選択
以下を何処かにコピペ
1 2 3 4 |
|
後の画面に設置した「戻る」ボタンをCtrlを押しながらMainViewの「exit」にドラッグアンドドロップする
→出てきたメニューで先ほど追加した
おのおのが好きな事を好きなようにやるハッカソン。 実際に自分の手を動かすのは楽しいですね。
日本人のみ相手に仕事をしている場合は、わからないことがあれば話をしながら進めることができるが、 海外も視野に入れると時差も休日も言語も違い、これを話しながら進めるのは現実的ではない。
Webフォームから値を入力するとバッチ処理で自動的にストレージ(NAS)の拡張ができるシステム構築を目指す。
Webサーバ
Pythonのフレームワークを利用してWebの入力フォームを作成。
NAS名やボリューム名、拡張サイズを入力する。
バッチサーバ
cronなどジョブスケジューラーを利用してWebフォームで入力された値に従ってバッチ処理を行う。
fabricを利用予定。
NAS管理サーバ
既存のNASを管理しているサーバ。こちらには新たに設定を追加せず、fabricを利用して
バッチサーバからssh経由で送られてきたコマンドを自動で実行するようにしたい。
NASサーバ
拡張対象のNASサーバ
Amazon Linuxは以下でインストール可能
1 2 3 4 5 6 |
|
まだfabricは絡んでおらず、printでコマンドを書き出しているのみ。
jsonファイル中身
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
これを読み込んで処理する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
ハッカソン中は引数が無いとエラーになっていたが、上記のようにargc == 2 and
を追加するとうまく実行できるようになった。
以下実行結果
1 2 3 4 5 6 7 |
|
Helpも実行結果も問題なく表示された。
動作確認用
1
|
|
Djangoが難しかったのでこっちを使ってみた
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
以下のようにするとPCのWebブラウザからリモートアクセスできた。
1 2 |
|
※ 以下挫折中 ※
1 2 |
|
1 2 3 4 5 |
|
SGの設定で8080ポートを開けておく
1 2 3 4 5 |
|
〜つづく〜
Zaimの家計簿自動入力スクリプトの作成もやりたかった。現在は認証のとろころで詰まってます。ググって自力でできるかなぁ。 できなかったら、次回はその辺やってみて有識者の知恵を拝借できればと思います。
この講習会ではじめてXcodeでiOS用プログラミングをしました。 概要のまとめです。
第17回 granpark.rb 「データ解析技術入門(R言語編)」
1 2 3 4 5 6 7 8 |
|
代入には「=」も使えるが、Rは慣例的に「<-」を使う。
「c」を使う
1 2 3 4 5 6 |
|
「matrix」を使う
3行4列の行列に1から12までの数値が入っている例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
アヤメのガクヘン(蕚片)と花びらに関するデータ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 |
|
同じ値は1になる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
for, if, while, repeat, 添字操作は遅くなるのでなるべくやらない
添字操作は添字集合による論理判断させる
添字一つではなく、ある条件の集合体として操作させる
→それによってできた添字集合は逐次の論理判断と等価
1 2 3 4 5 6 7 8 9 |
|
これを速くする
1 2 3 4 |
|
できるだけコードを書かずに計算する方法を考えるとだいたい正解
ifやforを使いすぎるとRubyやPerlより遅くなるが、ちゃんとやるとC++くらい速い
ifやループは使わない事に喜びをおぼえてきたら立派なR使い。
使うべきところは使ってもよい。
エクセルより大きなデータを扱える
メガ、ギガクラスの処理はRでよい →それより大きくなるとHive
Rstudioを入れると、WebブラウザでRが使える
→エディタや描画や関数など別窓で表示させられる
→iPadでRが使えるらしい
プログラミングをしている時に気になったことを素早く本で調べられるように まとめようと思います。OSなど本書と私の環境は異なっています。
Pythonの初期設定についての解説。ここではAmazonLinuxで環境を構築する。
必要なものがあれば随時追加していく
1 2 3 4 5 6 7 8 |
|
zaimは無料の家計簿サービス。家で一日の収支を家計簿にまとめるのは大変な作業ですが、このサービスを利用すると買い物をした直後にスマートフォンやタブレットで家計簿をつけることができます。その場その場で収支を書き込めるので面倒くさがりの私でも継続的に家計簿をつけることができています。この様なサービスをつくれればつくりたいなと思っていたのですが、zaimという素晴らしいサービスがありましたので利用させていただいています。
固定費の入力ですが、正直できていません。細かく税金や給料など毎月確認したいなあとは思っているのですが、なかなか腰を据えて入力する気がどうしてもおこらないのです。
そこで、最近勉強し始めたPythonを利用して入力を自動化することを検討してます。 カード会社や銀行のデータをテキストで落としてきて、それを処理してzaimのAPIを利用して入力する方法を考えようと思います。他によい解決方法やよいソフトがあればらそちらを利用してこの開発はストップする可能性もあります。
ここにアプリケーションを登録するとConsumer KeyやConsumer Secretなどを得られる
ここがすごく参考になりそう。
1 2 3 4 5 |
|
このエラーがでていたのでrequestsのバージョンを指定してインストール
1 2 |
|
1 2 3 4 5 6 7 8 |
|