めも

これはメモ。

python

バンディットアルゴリズムの復習1:epsilon-Greedy

A/B テスト epsilon-Greedy アルゴリズム 説明 epsilon-Greedy アルゴリズムコード 実験(ベルヌーイ分布のアーム) アームの定義 実行結果 実験(ペナルティが大きいアームがあるケース) アームの定義 実験結果 実験(アームの分布が時間によって変化する場合) …

pythonで決定木の出力と決定境界の可視化

参考文献 dotのインストール 決定境界の可視化 データの生成 決定境界の可視化 決定木の出力 決定木のデータファイルを出力 出力画像 おまけ:非線形データの場合 データ生成 決定境界の可視化 決定木の可視化 参考文献 Python Data Science Handbook: Essen…

pythonで線形+多項式フィッティング

データの生成 コード グラフ上にプロット フィッテング 過学習のテンプレとして出てくる。 データの生成 コード 予測する曲線のデータと、それにノイズを乗せたデータを生成します。 import matplotlib.pyplot as plt import seaborn import numpy as np def…

python matplotlib 内で日本語を利用する(日本語のラベルや凡例・legendをつける)

matplotlibで使用できるフォントを探す 指定したフォントをmatplotlib全体で使用できるように指定する コード 表示例 matplotlib.rcを使ったフォントの変更 コード 表示例 matplotlibで使用できるフォントを探す 指定したフォントをmatplotlib全体で使用でき…

python matplotlib 内で日本語を利用する(使用できるフォントを探す)

利用できるフォントを探す コード 出力 matplotlibで使用 日本語でラベルや凡例を表示する 利用できるフォントを探す コード import matplotlib.font_manager as fm # フォント一覧 fonts = fm.findSystemFonts() # フォントのパスと名前を取得、とりあえず1…

pythonでgensimを使ってトピックモデル(LDA)を行う

LDA用のデータの作成 単語の辞書を作成して出力 外部に保存したコーパスと辞書の読み込み LDAの実行 コード 出力例 gensimとjanomeを用いたLDAを行います。 必要なデータは一行ごとに文章が入ったtxtファイルです。 LDA用のデータの作成 data.txtには一行ご…

OCR・文字認識の論文とかのまとめ

論文 End-to-End Text Recognition with Convolutional Neural Networks Word Spotting and Recognition with Embedded Attributes Deep structured output learning for unconstrained text recognition Deep Features for Text Spotting Reading Text in t…

pythonでpandasのgroupbyで集約+散布図(scatter)を作成

やること コード データ作成 集計 + 上位の丸め込み コード全体 出力 やること 変数が三つある時によくやるのでメモ。 データで例えると「映画の視聴回数」「変数A」「変数B」で回数ごとに A, Bの変数に変化があるかを調べたい時にとりあえず見てみる。 大抵…

pandas.DataFrameでcsvファイルを内部結合

やりたいこと コード 他の例 よく使うのでメモ。 ID_labelxとID_labelyが同じ行をまとめる内部結合です。 やりたいこと X: (ID_labelx, xa, xb) = (tanaka, data_xa, data_xb) Y: (ID_labely, ya, yb) = (tanaka, data_ya, data_yb) のデータが join: (ID_la…

pythonのpandas.DataFrameで特定文字列だけ含む行を選択

大量データのカラム名の仕分けとかでよく使うのでメモ。 # データをロード clm = pd.DataFrame(data) # カラム名を付け替える clm.columns = ['id', ...] # idカラムの中から "tanaka" が含まれる行だけを選択 clm[clm['id'].str.contains("tanaka", na=Fals…

Mecabに文字列のデータ一覧を渡して単語ごとに分割させる(分かち書き)

やること 私は宇宙人です。 -> '私 は 宇宙人 です。' と変換していく。 前回クロールしてアドレス一覧からページのテキストを拾ってきて '.csv' に保存したので今回はそれらのテキストを分割して word2vecなどの前処理に入れられる状態で保存する。 前回 pa…

Ubuntu 14.04, Mac OS X に MeCab をインストール

Mac OS X Ubuntu 14.04 すでに以下のような記事があるのですが qiita.com 以下でいけました。 Mac OS X $ brew install mecab $ brew install mecab-ipadic $ pip install mecab-python $ pip install mecab-python3 (python3なら) Ubuntu 14.04 $ sudo apt-…

pythonでウェブサイトをクロールしてページの説明を収集する

やること コード 集めたテキストを形態素解析する やること ページの文章からトピックモデルを作って、ウェブの移動履歴や購入履歴からユーザの特徴ベクトルを作りたい。 その初めの一歩として、とりあえず url の一覧からページの説明を取得してcsvに保存し…

pythonでdenoising auto encoderを使ってデータを前処理する

概要 モデル定義 ノイズ付加 デノイジングオートエンコーダーの訓練 損失関数の推移 概要 まず、PFNの得居さんの記事を参照。 www.beam2d.net データにランダムにノイズを乗せたものを入力として、元のデータを正解とするDNNを学習することでデータからノイ…

pythonでpd.DataFrameのカラム名一覧を取得+単純集計

やりたいこと コード 出力 他の例 やりたいこと 全特徴のヒストグラムを作成する。 data.columns.valuesで DataFrameのカラム一覧を取得する。 コード data = pd.read_csv(filename) names = data.columns.values N, M = 5, 5 plt.figure(figsize=(N*2, M*2)…

mini-batch k-meansでデータをクラスタリングして教師データの偏りを可視化する

やること コード クラスタリング プロットするためのデータ準備 グラフ作成 結果 やること データをクラスタリングして、各クラスタごとの教師データの分布の偏りを確かめたい。 今回は 教師データ = 0, 1 の2クラスを想定。 可視化をするためのデータは 主…

pythonでAutoencoderの精度をバッチサイズを変更しながら確認

コード モデル定義 モデルの訓練 バッチサイズを狭めながらオートエンコーダを訓練して、その損失関数の減少具合を確認する。 緑色線がエポックごとのおおよその損失関数のlossの値、赤色がバッチごとのlossの値を全てプロットしたものです。 コード モデル…

pythonでAutoencoderを動かす

環境 モデルの定義 出力 モデルの訓練 誤差の減少具合 オートエンコーダーのモデルを複雑に 二つのモデルの比較 参考 環境 python2.7, ubuntu14.04上。Kerasを使用して、入力はベクトルを想定。 モデルの定義 print(autoencoder.summary())とすればモデルに…

xgboostのパラメータをグリッドサーチで決定する

モデルの詳細 コード 参考スライド モデルの詳細 Python API Reference — xgboost 0.6 documentation にあるパラメータのうち、特に影響が大きい物をグリッドサーチで決定します。xgboostの本論文はKDD2016の以下を参照。最近のコンペでは協力なベースライン…

pythonで相関係数を可視化する

問題設定 ニクラス問題で教師データのラベルが 1, 0だった時にそのラベルごとに変数の相関を、さらにラベルの違いごとに変数相関に違いがあるかを確認する。 コード plt.figure(figsize=(10, 10)) plt.subplot(221) plt.title('alldata corr') sns.heatmap(t…

pythonで分類問題のハイパーパラメータをグリッドサーチで見つける

内容が薄いのでコードのみ。 sklearn.__vsrsion__==0.18である必要あり。 from sklearn.pipeline import Pipeline from sklearn.decomposition import PCA, NMF from sklearn.preprocessing import PolynomialFeatures from sklearn.feature_selection impor…

pythonでクラスごとの分布をPCAで可視化して問題の難しさを確かめる

やりたいこと データを二次元で可視化 データを三次元で可視化 やりたいこと 主成分分析を行い、データを低次元に表す。 その分布をクラスごとに可視化して、クラスごとに分布が違っている(分布が重なっていない)なら予測が簡単そうだ、とわかるしPCAを教…

pythonで予測ミスの分布を確認

いつもいっかいどっかでやるのでメモ。 クラスを分類しまちがえた時は、そのミスの自信度を確認すること。 コード # check error prd = clf.predict_proba(X_test)[:, 1] tfdata = pd.concat([pd.DataFrame(y_test), pd.DataFrame(prd)], axis=1) tfdata.col…

pythonでBidirectional LSTMを使った分類問題

モデルの定義 モデルの精度の確認 コード 出力 Bidirectional LSTMを使って時系列データを2クラスに分類できるか確かめる。 Schuster, Mike, and Kuldip K. Paliwal. "Bidirectional recurrent neural networks." IEEE Transactions on Signal Processing 45…

pythonで母集団の分布を確認する

各特徴の分布を確認 目的値ごとに分布に違いがあるのかを確認する 2変数間の関係を見る 等高線をプロットして分布を確認する 前提として、2クラス分類。 データに含まれる特徴量は data_train.columns.values >> array(['feature1', 'feature2', 'feature3',…