White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

PyCon JP 2014 2日目が終わりました

終わりました。

1日目の終わりにも書きましたが、「英語ができない、勘と経験と度胸に頼る」というイメージどこいったんだって感じの、今までとは違う感じのPyCon JPだったかと思います。スタッフすらやってないのに私がPyConの理想像あげてしまうのも申し訳ないですが、Web関係だけでなく学術関係の方も参加しやすい会になるといいのかなと考えています。ただ一方で今までに比べ違う系統の発表であり、人によって前提知識がばらばらで全くわからなかったり既に知ってるよってのもあったりしたでしょう。来年は今年の発表で+1された発表があるとうれしいです。・・って自分も待ってるだけじゃなくて出さないとですね(今年は転職活動中でした)。

 

発表中に出てきた単語おさらい。自分の知ってる範囲で書いてみるけどいろんな方向から刺されそうですね・・

Numpy

ベクトル・行列の計算を簡単に扱えるようにするライブラリ

Scipy

http://turbare.net/transl/scipy-lecture-notes/intro/scipy.html

python科学計算向けツール

Scikit-learn

http://scikit-learn.org/stable/

機械学習ライブラリ

Pandas

 行列から特定の条件の行だけを抜き出すとかに長けたライブラリ。大体Rのdataframe見たいなことができるんじゃないっすかね

データ分析ライブラリPandasの使い方 | Librabuch

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

 

Matplotlib

チャート描画ライブラリ

Anaconda

上にあがったNumpy, Scipy, Scikit-learn, Matplotlib等が一まとめになったパッケージ。実はMatplotlibだかNumpyを入れようとすると途中でgfortranとかコンパイルする必要が出てきてたまにコケることもあるので、あると安心。自分はまだ使ったことないです(gfortranコンパイルしてます)。

Beautiful Soup

Scrapy

Webページを、API等経由せずに画面に表示されてるhtmlから直接データを吸い出すのに使うライブラリ。

statistics

Python3.4から標準搭載された、統計用ライブラリ

--

Hadoop

並列分散処理をするためのソフトウェア。もともとGoogleMapReduce論文を元に作られたのですが今のHadoop2はMapReduceとは限りません(Impala, PrestoとかはMapReduce使っていない)

MapReduce(Hadoop)

一旦Mapステージで複数のマシンに分散して処理させて、Shuffleステージで別のマシンに飛ばして、Reduceステージで処理結果を合計とったり件数数えたりするアルゴリズム。考えがシンプルで複数のマシンに分けやすいのだけど、立ち上げに時間がかかる(MapReduceというかJVMの問題な気もするけど)。Mapper, Reducerそれぞれ自分で処理のコード書いていかないといけません

Hive

MapReduceだといちいちコードかかないといけなくてつらいので、SQLっぽいものでデータ処理をできるようにしたもの。MapReduceベースなのもあって軽いクエリでも数分~数時間待たされる

Impala / Presto / ...

HiveがMapReduceベースで遅いんで代わりに作られてるSQLツール達。Impalaは数秒レベルで返ってくるものの、データ量が全ノードのメモリに乗らなくなると落ちるって問題がある。Prestoはそこまで早くない変わりにそういった問題はないのかな?

 

ちなみにHive, Impalaはhttp://demo.gethue.com/で触れます。

--

Deep Learning

かなりぶっきらぼうに言うと、ニューラルネットの亜種で勝手にパラメータ決めてくれるようなの。有名なのがビデオの映像学習してたら勝手に猫がきたときに反応するニューロンを発見したあたり。今回の発表だと○○○○○に近いかどうかとかやってましたね(発表で伏せられていたのでここでも伏せときます)。今の自分だときっちり説明できない・・

Googleの猫認識 (Deep Learning) - 大人になってからの再学習

深層学習入門

遺伝的アルゴリズム : genetic algorithm, GA

ニューラルネットワーク : Neural Network

単純ベイズ, ナイーブベイズ : Naive Bayes

 (テキストの)感情分析 : Sentiment Analysis

たとえば「このブログは日本語の使い方が下手だ」とか書いたらネガティブ、「この料理とてもおいしい」とか書いたらポジティブと判定されるような、文章からネガティブ/ポジティブを判定する手法。ネガポジだけでなくほかの評価軸もあります

n-gram(uni-gram, bi-gram, tri-gram, ...)

Bag of words

テキストを機械学習するときに順序を考慮するかどうか。bi-gramだとある単語Aとその前の単語の二つの順序を覚えておく。tri-gramならある単語Bとその前と前の前の三つの順序を覚えておくとか。一方でBag of wordsは順序を無視して、ある文章中にどの単語が出たかだけ覚えておくもの

形態素解析

「今日はいい天気です」を「今日 は いい 天気 です」って感じに分割する解析。英語とかの場合単語間に空白があるので形態素解析の必要がない

 

 

と列挙してみましたが、かなりいろいろありますね。。。来年はPython側の新機能か、機能を使って大規模計算や課題を解決したって話があるといいかもしれません。