機械学習・自然言語処理の勉強メモ

学んだことのメモやまとめ

Pandasでcsvを扱う

Pandasでcsvを扱う場合のメモ。 Read import pandas as pd df = pd.read_csv('D:\python\data\wine.data') print df # show all column test_df = pd.read_csv('test.csv', header=None, skiprows=1, names=['番号', '数学','英語']) #ヘッダがない場合はhea…

TheanoのSCANについて

SCANとは theanoにおける繰り返し処理に対応する関数。基本的な理解のために下記ページを参考にさせて頂いた。 sinhrks.hatenablog.comfnの引数は、 fn に渡す引数は (最大で) 以下の 3 つになる。それぞれ、対応する引数がない場合は省略される (fnに渡され…

Sentiment analysis (CNN)③

前回の続き kento1109.hatenablog.com前回はMLPDropoutまで確認した。 前回まででモデルの定義は説明した。 なんで、新しく層のインスタンスを生成することはない。今回は残りの部分を確認する。 define parameters パラメータを定義する。 #define paramete…

pickle(オブジェクトデータ構造を直列化・非直列化)

Python のオブジェクトを直列化・非直列化するための機能を提供。 直列化 (Serialize) ・・オブジェクトをバイト列などの表現に変換 非直列化 (Deserialize) ・・バイト列を元にオブジェクトを復元するpickle モジュールをC言語で再実装したcPickleモジュー…

matplotlibのscatter(散布図)

散布図を作るときは、scatterが便利。分類やクラスタリングを視覚化する場合、 ラベルの出力値に応じて自動で色分けしてくれる。以下のようにcにラベルを指定するだけ plt.scatter(x[:, 0], x[:, 1], c=crf.labels_) すると、こんな風に色分けしてくれる。

matplotlibの色指定

忘れがちなのでメモ。主要な色については 1 文字で指定可能b:青 (Blue) g:緑 (Green) r:赤 (Red) c:シアン (Cyan) m:マゼンタ (Magenta) y:黄 (Yellow) k:黒 (Black) w:白 (White)出力イメージ 尚、これらの情報はこちらを参考にさせて頂いた。(ほ…

gensimでLSI(潜在的意味解析)

コーパスと辞書を用いて潜在的意味解析を行う。 *文書のベクトル化(次元圧縮) 文書セットから辞書を作成する。 不用語を取り除く BoW表現に変換 from gensim import corpora dic = corpora.Dictionary(documents) dic.filter_extremes(no_below=20, no_ab…

MeCabの基本操作

形態素解析エンジン。 言語, 辞書,コーパスに依存しない汎用的な設計が基本方針。 コスト推定はコーパスから学習する。 *与えられた文章を分割できるすべてのパターンに分割し、その中で計算したコストがもっとも小さい分割結果を採用。 とりあえず解析 MeC…

gensimのコーパス操作

コーパスを作るときの操作をまとめる。 from gensim import corpora doclist = [['human', 'interface', 'computer'], ['survey', 'user', 'computer', 'system'], ['eps', 'user', 'interface'], ['system', 'human', 'system', 'eps'], ['user','time'], […

gensimのword2vecを試す。

Word2vecを使って日本語の自然言語処理で分散表現を使おうと思った場合、 Wikipediaデータの入手 データクレンジング(形態素解析できるようテキスト形式に変換) Mecabなどを使って形態素解析 Word2vecで学習 事前にが必要。データクレンジングや学習には結…

gensimでDoc2Vec

Doc2Vecとは Doc2Vecは、任意の長さの文書をベクトル化する技術。 文書やテキストの分散表現を獲得することができる。 *ベクトル同士の類似度を測定して、文書分類や似た文書を探すことができる。Word2VecのCBoWにおける入力は、単語をone-hot表現した単語I…

TheanoでLogistic Regression(ロジスティック回帰)

下記のdocumentationの整理を行う。Classifying MNIST digits using Logistic Regression — DeepLearning 0.1 documentation LogisticRegressionインスタンスの生成 例題の入力は28×28のMNIST画像。 出力は1~10までの数値。(10クラス分類) # construct th…

TheanoでMLP(多層パーセプトロン)

下記のdocumentationについて整理する。Multilayer Perceptron — DeepLearning 0.1 documentationモデルイメージはこんなん。 MLPインスタンスの生成 まずは、MLPインスタンスを下記のように生成する。 # construct the MLP class classifier = MLP( rng=rng…

TheanoでSentiment analysis (CNN)②

前回でマックスプーリングまでの層の定義をまとめた。 kento1109.hatenablog.com 今回は、MLP層についてまとめる。 MLPDropput ここに書いたこととほとんど同じ。 kento1109.hatenablog.com 呼び出し側 classifier = MLPDropout(rng, input=layer1_input, la…

TheanoのLeNetConvPoolLayerについて

Theano(LeNetConvPoolLayer) LeNetConvPoolLayerクラスのチュートリアルはここ。 Convolutional Neural Networks (LeNet) — DeepLearning 0.1 documentation 論文の実装をするときは、このクラスを元に実装するのが正攻法だと思う。 なんで、LeNetConvPoolLa…

TheanoでSentiment analysis (CNN)①

Sentiment analysis TheanoでCNNによるSentiment analysisのコードを読む。 コードは github.com process_data.py ここは前処理。Theanoでの処理もない。 この前処理でどういうデータセットが出来るかを押さえる。cPickleで保存する変数は、revs, W, W2, wor…