めも

メモ.

python

バンディットアルゴリズムの復習6:トンプソン抽出(ThompsonSampling)

概要 コード ログ出力 アームが保持する変数 アーム選択部分 なぜか日本語の記事があまりない。 概要 以前ソフトマックス法を 実行した時、期待値最大が見込めるアームは指数分布に基づいて決定していた。 このアームkの期待値E_kがアームごとに何らかの事前…

pythonのloggingの詳細設定を行う

利用するたびに設定を指定する .confにロギングの設定を指定する 詳細 データ解析のステップが大きくなってくるとログファイルを出力しないとどこにエラーがが入ったかやバグのチェックが大変になってくるのでメモ。 利用するたびに設定を指定する 一瞬使い…

バンディットアルゴリズムの復習4:Contextual Bandit

前回 Contextual Bandit スライド 説明 各アルゴリズム外観 EXP4 Epoch-Greedy LinUCB Thompson sampling for Contextual Bandits HyperTS・HyperTSFB 次回 書きかけ、後ほど各アルゴリズムの説明や実験など追加予定。 →水曜夜あたり→土日あたり 前回 UCB,そ…

バンディットアルゴリズムの復習3:UCB(Upper Confidence Bound)

前回 UCB(Upper Confidence Bound) UCBの説明 理論的な説明 UCBのアルゴリズム アームの定義 Arm0: ベルヌーイ Arm1: 適当に作った分布 実験 Arm0: ベルヌーイ Arm1: 適当に作った分布 次回 参考文献 前回 ε-Greedy+softmaxについてやった。 UCB(Upper Confi…

バンディットアルゴリズムの復習2:softmax

前回 Softmax Softmaxによるアーム選択 Boltzmann分布(Gibbs 分布) Softmaxのコード アーム選択部分 実験 アームの定義 Arm0: ベルヌーイ Arm1: 適当に作った分布 実験結果 Arm0: ベルヌーイの場合 Arm1: 適当に作った分布の場合 次回:UCB 参考文献 前回 ε-G…

バンディットアルゴリズムの復習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をつける)

IPAのゴシックフォントで良い場合 フォントを指定したい場合 matplotlibで使用できるフォントを探す 指定したフォントをmatplotlib全体で使用できるように指定する コード 表示例 matplotlib.rcを使ったフォントの変更 コード 表示例 IPAのゴシックフォント…

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

利用できるフォントを探す コード 出力 matplotlibで使用 日本語でラベルや凡例を表示する 利用できるフォントを探す コード import matplotlib.font_manager をインポートして findSystemFonts()でフォント一覧を取得します. gist.github.com 出力 わかりや…

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',…

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。