2019-01-01から1年間の記事一覧

Tree における単調性制約

XGBoost における単調性制約 - 2 はじめに 前回 XGBoost での単調性制約を与える方法について紹介しましたが、そのメカニズムについて調べました。 線形モデルはデータと目的変数間の単調性(増加・減少)を捉えるモデルです。 非線形モデルを使うのは、単調…

matplotlib で plt.show() するとウィンドウは開いてもグラフが描画されない

matplotlib で plt.show() するとウィンドウは開いてもグラフが描画されない、という問題が発生しました。 plt.show() で ウィンドウが開かない、というはよくあるパターンで大体が描画の際のバックエンドの指定だと思います (https://qiita.com/yoshizaki_k…

CalibratedClassifierCV で XGBoost の学習済みモデルが ValueError: feature_names mismatch となる

はじめに CalibratedClassifierCV に XGBoost の学習済みモデルを指定して、fit すると ValueError: feature_names mismatch となる場合があります。 これは XGBoost の学習時には pandas の column 名を変数とし、CalibratedClassifierCV では numpy.ndarra…

単語分散表現(Skipgram, CBoW)のベクトル長について

Skipgram など単語の分散表現のベクトル長について Skipgram, CBoW などの単語分散表現は、単語をベクトル空間に配置(埋め込む)するのですが、単語同士の類似度としてはコサイン類似度が用いられます。 言い換えると、単語ベクトル同士の角度が類似度とな…

XGBoost における単調性制約

XGBoost の単調性制約 XGBoost などの Tree 系アルゴリズムは表現力が大きいため、容易に bias を小さくできます。 下の例では、増加するトレンドにある特徴量と目的変数がにノイズが乗ったデータに対して XGBoost でフィッティングすると、全体的には上昇ト…

BayesSearchCV で XGBoost の early stopping 機能を使う

BayesSearchCV で XGBoost の early stopping 機能を使う 先日の BayesSearchCV イントロダクションの続きです。 XGBoost には early stopping という、 学習データとは別に、テストデータの Validation error が少なくとも <early_stopping_rounds> 回数連続して減少しないと、学習</early_stopping_rounds>…

scikit-optimize の BayesSearchCV を用いたベイズ最適化によるハイパーパラメータ探索

ベイズ最適化でハイパーパラメータをチューニングする ハイパーパラメータのチューニングではパラメータを様々に振りながら学習を繰り返し、一番パフォーマンスが良いところを探し出します。 学習時間はモデルやデータサイズなどによって異なりますが、効率…

jupyter notebook をコマンドラインで実行し HTML ファイルを生成する

はじめに 備忘録です。 最近は非エンジニアの分析官に一次分析内容を共有して定性分析を依頼したりする事が多いのですが、多数のモデルの場合 jupyter をある程度自動化したい場合があります。 私のよくやる流れとしては以下ですが、これを多数のモデルで PD…

関数データ解析(FDA, Functional Data Analysis)とは

関数データ解析とは 関数データ解析とは 各個体や対象に対して、複数の離散点で時間や空間の変化に伴い観測・測定されたデータを、関数の集合として捉え、解析する方法 Ramsay and Silverman, 2005 とされています。 一般的にデータ解析では、データそのもの…

Decision Tree - ID3(Iterative Dichotomiser 3 - 1979 John Ross Quinlan)

Decision Tree - ID3(Iterative Dichotomiser 3 - 1979 John Ross Quinlan) (注意) これは私の勉強・備忘録のために記したものであり、間違いがあるやもしれません。どうぞご容赦ください。 はじめに 決定木のアルゴリズムに ID3 というものがあります。 ID3…

keras.datasets.imdb.load_data() に 'Object arrays cannot be loaded when allow_pickle=False' で失敗する.

Tensorflow tutorials の「映画レビューのテキスト分類」(https://www.tensorflow.org/tutorials/keras/basic_text_classification) にて、データセットのロードに失敗します。 In [6]: from keras.datasets import imdb In [7]: (train_data, train_labels)…

Mojave に機械学習とデータ解析の anaconda 環境を構築

Macbook Air を購入したので、何もインストールされていない真っさらな状態から、機械学習とデータ解析の環境を構築しました。 日々構築方法が様々に洗練され、前回のやり方が通用しない昨今ですが、今回は anaconda で全て構築しました。 brew emacs Ricty …