時系列データの外れ値の統計的な求め方(1次元)

時系列データの外れ値の統計的な求め方(1次元)の解説 – S-Analysis
外れ値とは、統計において他の値と比べて極端に大きな値かもしくは極端に小さな値のことを指します。
外れ値とは|外れ値と異常値の違い|四分位範囲(IQR)|zスコア|pythonの実験

PyCaretでの異常検知

目次 1. 異常検知のPyCaretの概要 1.1異常検知とは 1.2異常検知の種類 1.3 PyCaretのライブラリ 2. 実験 2.1 環境構築 2.2 データロード 2.3 モデル学習 2.4 モデル推論 2.5 モデルの保存と読み込む 関連記事:PyCaret(オープンソースの自動機械学習:AutoML) 1. 異常検知のPyCaretの概要 1.1異常検知とは 異常検知(Anomaly detection) とは、データの中から異常な状態、通常のパターンとは異なる挙動を検出することです。 1.2異常検知の種類 異常検出の手法は主に3つの種類があります。 1)教師なし異常検出:ラベルがなくデータで異常モデルを学習します。 2)教師あり異常検出:「正常」および「異常」とラベル付けされたデータセットで異常モデルを学習します。 3)半教師あり異常検出:正常データのみで学習されます(異常はありません)。正常データからテストデータを推測します。   1.3 PyCaretのライブラリ pycaret.anomalyモジュールは、教師なし異常検出と教師あり異常検出の手法を提供します。 PyCaretは異常検出のアルゴリズムが12つあります。 abod     Angle-base Outlier Detection cluster   Clustering-Based Local Outlier cof        Connectivity-Based Local Outlier iforest   Isolation Forest histogram          Histogram-based Outlier Detection …

PyCaretでの異常検知 Read More »

SPARSEMAXの活性化関数

目次 1. SPARSEMAX活性化関数の概要 1.1 SPARSEMAX活性化関数とは 1.2 SPARSEMAX関数 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 SPARSEMAXの活性化関数を作成 2.5 RELUの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. SPARSEMAX活性化関数の概要 1.1 SPARSEMAX活性化関数とは SPARSEMAXとは、ソフトマックスに似たが、スパース確率を出力できる新しい活性化関数です。SPARSEMAX損失関数は、滑らかで凸状のロジスティック損失のスパースアナログです。 1.2 SPARSEMAX関数 softmaxとsparsemaxの比較 実験の結果 SPARSEMAXは、一般的なアクティベーションに比較して優れたパフォーマンスになります。 sparsemaxは、ラベルの数が多い問題に適しているようです。 SPARSEMAXの論文:From Softmax to Sparsemax: A Sparse Model of Attention and Multi-Label Classification. https://arxiv.org/abs/1602.02068 TensorFlowの資料:https://www.tensorflow.org/addons/api_docs/python/tfa/activations/sparsemax PyTorchの資料:https://github.com/KrisKorrel/sparsemax-pytorch   2. 実験 データセット:CIFAR-10 は、32×32 のカラー画像からなるデータセットで、その名の通り10クラスあります。全体画像数は60000件となり、そのうち50000件が訓練用データ、残り10000件がテスト用データに分けます。 モデル:SPARSEMAXの活性化関数のモデル …

SPARSEMAXの活性化関数 Read More »

RRELUの活性化関数

目次 1. RRELU活性化関数の概要 1.1 RRELU活性化関数とは 1.2 RRELU関数 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 RRELUの活性化関数を作成 2.5 RELUの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. RRELU活性化関数の概要 1.1 RRELU活性化関数とは RRELUとは、randomized leaky rectified linear units の略称で、ランダム化されたReLU関数です。RRELUは、活性化関数の負の部分にゼロ以外の勾配を組み込むことで、一貫して結果の改善を期待されて導入されました。最初にはKaggleNDSBコンペで使用されました。大規模な画像分類タスクでは、パフォーマンスはReLUよりもはるかに優れていると言われています。 1.2 RRELU関数 乱数はサンプリングされます。 RRELUの論文:Empirical Evaluation of Rectified Activations in Convolution Network https://arxiv.org/abs/1505.00853   TensorFlowの資料: https://www.tensorflow.org/addons/api_docs/python/tfa/activations/rrelu?hl=ja   PyTorchの資料: https://pytorch.org/docs/stable/generated/torch.nn.RReLU.html   2. 実験 データセット:CIFAR-10 は、32×32 …

RRELUの活性化関数 Read More »

Mito:Pythonでのスプレッドシート

目次 1.Mitoとは 2.Mitoの環境構築 3.Mitoの機能 4.まとめ 1.Mitoとは MitoとはPythonでGUIのエクセルのような作業でスプレッドシートを実行するライブラリです。ソート、フィルター、ピボットテーブル、データ結合などの機能があります。MitoはノートブックのIDEのJupyterLab上で運用します。コードも自動的に生成されます。   2.Mitoの環境構築 Conda環境で Mito をインストールします。 Conda環境作成: conda create -n mitoenv python=3.8   環境を利用します。 conda activate mitoenv   Mitoのパッケージをダウンロードします。 python -m pip install mitoinstaller   Mitoのパッケージをインストールします。 python -m mitoinstaller install   jupyterlabをインストールします。 pip install jupyterlab   jupyterlabを利用します。 jupyterlab   ノートブックを作成して、mitoを開始します。 import mitosheet mitosheet.sheet() アカウントを作成したから、下記の画面を表示します。 3.Mitoの機能   IMPORTをクリックして、入力ファイルを選択します。 Mitoでデータをインポートします。   …

Mito:Pythonでのスプレッドシート Read More »

TabNet(表形式データ向けの深層学習)

目次 1.TabNetの概要 1.1TabNetとは 1.2TabNetの手法 2.TabNetの実験 2.1環境構築 2.2データセット 2.3 TabNetモデル 2.4XGBoost 3.まとめ   1.TabNetの概要 1.1TabNetとは TabNetとは、Google Researchで発表された表形式データ向けの新しい深層学習です。TabNetは、シーケンシャルアテンションメカニズムを使用して、各決定ステップで処理する意味がある特徴量を選択します。インスタンスごとの特徴選択により、モデルの容量が最も顕著な特徴に完全に使用されるため、効率的な学習が可能になります。また、選択マスクの視覚化により、より解釈しやすい意思決定が可能になります。TabNetが、さまざまなドメインの表形式のデータセット全体で以前の作業よりも優れていると言われています。   1.2TabNetの手法 TabNetは、推論のために入力特徴のサブセットを処理することに焦点を当てた複数の決定ブロックを利用しています。 マスクされた自己監視学習による教師なし表現学習は、教師あり学習タスクのエンコーダーモデルを改善します。 TabNetエンコーダー。機能トランスフォーマー、注意深いトランスフォーマー、および機能マスキングで構成されています。分割ブロックは、処理された表現を分割して、後続のステップの注意深いトランスフォーマーと全体の出力で使用します。各ステップで、特徴選択マスクはモデルの機能に関する解釈可能な情報を提供し、マスクを集約してグローバルな特徴の重要な属性を取得できます。 論文:TabNet: Attentive Interpretable Tabular Learning https://arxiv.org/abs/1908.07442   Github: google-research/tabnet/ https://github.com/google-research/google-research/tree/master/tabnet   2.TabNetの実験 環境:Google Colab データセット:frmgham  Framingham Studyは、男性と女性の心血管疾患の発症に影響を与える体質的および環境的要因の縦断的調査です。 モデル:TabNet vs XGBoost モデル評価:Accuracy   2.1環境構築 TabNetのライブラリをインストールします。 !pip install pytorch-tabnet   ライブラリのインポート import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns   …

TabNet(表形式データ向けの深層学習) Read More »

Autoviz: データ自動可視化

目次 1 Autovizの概要 1.1 Autovizとは 1.2 Autovizのライブラリ 2. 実験 2.1 データロード 2.2 Autovizの探索的データ解析のEDA 3 まとめ 1 Autovizの概要 1.1 Autovizとは Autovizはデータセットを自動可視化するライブラリです。データのファイルタイプとしては、Pandasのデータフレーム、CSV、 txt、 json等のファイルから1行のコードで自動可視化できます。   1.2 Autovizのライブラリ AutoViz(filename, sep, depVar, dfte, header, verbose, lowess, chart_format¸ max_rows_analyzed, max_cols_analyzed) AutovizのAPI: filename- ファイル名を入力し、データフレームを使用する場合は、filenameを空の文字列(””)として指定します。 sep- ファイル内の区切り文字です。 depVar- データセット内のターゲット変数 dfte- パンダのデータフレーム header- ファイル内のヘッダー行の行番号 verbose-  0、1、または2の3つの許容値があります。 lowess- ターゲット変数に対する連続変数の各ペアの回帰直線の設定。小さなデータセットに非常に適しています。 chart_format-  SVG、PNG、またはJPGに設定することができます。 max_rows_analyzed- チャートの表示に使用される行の最大数を制限します。 max_cols_analyzed- 分析できる連続変数の数を制限します。   Github: https://github.com/AutoViML/AutoViz   2. 実験 …

Autoviz: データ自動可視化 Read More »

NOVOGRAUDの最適化アルゴリズムの解説

  目次 1 NOVOGRAUD最適化アルゴリズムの概要 1.1 NOVOGRAUD最適化アルゴリズムとは 1.2 NOVOGRAUD定義 2. 実験 2.1 データロード 2.2 データ前処理 2.3 NOVOGRAUD最適化アルゴリズムのモデル作成 2.4 Adam最適化アルゴリズムのモデル作成 2.5 まとめ 記事:最適化アルゴリズムのまとめ 1 NOVOGRAUD最適化アルゴリズムの概要 1.1 NOVOGRAUD最適化アルゴリズムとは、層ごとの勾配正規化と分離された重み減衰を使用した適応確率的勾配降下法です。論文より、画像分類、音声認識、機械翻訳、言語モデリングのためのニューラルネットワークの実験では、SGD、Adam、AdamWと同等かそれ以上のパフォーマンスの結果になりました。今回私達も評価とサンプルコードを紹介していきます。 NOVOGRAUDの特徴: 学習率と重みの初期化の選択に適しています 大規模なバッチ設定でうまく対応できます。 Adamに対しての半分のメモリフットプリントになります。   アルゴリズム: NovoGradは3つのアイデアを組み合わせています。 層ごとの2次モーメントを使用します。 層ごとの2次モーメントで正規化された勾配を使用して1次モーメントを計算します 重量減衰を切り離します。 論文:Training Deep Networks with Stochastic Gradient Normalized by Layerwise Adaptive Second Moments https://arxiv.org/pdf/1905.11286.pdf   Tensorflow: https://www.tensorflow.org/addons/api_docs/python/tfa/optimizers/NovoGrad?hl=ja   PyTorch: https://pytorch-optimizer.readthedocs.io/en/latest/_modules/torch_optimizer/novograd.html   …

NOVOGRAUDの最適化アルゴリズムの解説 Read More »

LISHTの活性化関数

  目次 1. LISHT活性化関数の概要 1.1 LISHT活性化関数とは 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 LISHTの活性化関数を作成 2.5 Reluの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. LISHT活性化関数の概要 1.1 LISHT活性化関数とは LISHT活性化関数とはLinearly Scaled Hyperbolic Tangent の略称です。ReLUとSwishは、大きな負の入力値を利用できず、勾配消失問題に悩まされる可能性があります。LiSHT活性化関数は、非線形双曲線タンジェント(Tanh)関数を線形関数でスケーリングし、勾配消失問題を解決します。 論文より、分類実験は、ベンチマークIris、MNIST、CIFAR10、CIFAR100、およびtwitter140データセットに対して実行され、より高速な収束とより高いパフォーマンスの結果になりました。多層パーセプトロン(MLP)、畳み込みニューラルネットワーク(CNN)、および長短期記憶(LSTM)のようなリカレントニューラルネットワークを含む3つの異なるタイプのニューラルネットワークで、優れたパフォーマンスの向上が見られます。 LISHTの論文:LiSHT: Non-Parameteric Linearly Scaled Hyperbolic Tangent Activation Function for Neural Networks https://arxiv.org/pdf/1901.05894.pdf   TensorFlowの資料: https://www.tensorflow.org/addons/api_docs/python/tfa/activations/lisht?hl=ja   2. 実験 データセット:CIFAR-10 は、32×32 のカラー画像からなるデータセットで、その名の通り10クラスあります。全体画像数は60000件となり、そのうち50000件が訓練用データ、残り10000件がテスト用データに分けます。 モデル:LISHTの活性化関数のモデル vs Reluの活性化関数のモデル …

LISHTの活性化関数 Read More »

Pulearnでの陽性のラベルとラベルなしデータの分類分析

  目次 1. Pulearnの概要 2. 実験 2.1 データロード 2.2 SVCモデル 2.3 BaggingPuClassifierのSVCモデル 3. まとめ   1.Pulearnの概要 Pu learningとは Learning from Positive and Unlabeled dataの英語略称で、陽性のラベルとラベルなしデータで学習です。通常の二項分類分析には、1はラベル陽(positive)、0は陰性(negative)であるデータセットです。一方で、0は陰性ではなく、明示的に与えられないデータもあり、そのようなデータセットはpu learningの手法を利用します。   今回の記事では、pulerningを実験したいと思います。   論文:https://cseweb.ucsd.edu//~elkan/posonly.pdf 資料:https://pulearn.github.io/pulearn/   2.実験 環境:Google Colab データセット:陽性のラベルとラベルなしデータセットを見つけないので、scikit-learnの二項分類のbreast_cancerのデータセットにします。 モデル: SVCモデル vs BaggingPuClassifier SVCモデル   2.1 データロード ライブラリのインストール !pip install pulearn   データロードします。 569件のデータは陽性のラベルが357件あります。 import pandas as pd import numpy as np from sklearn.datasets import load_breast_cancer   cancer = load_breast_cancer() data = pd.DataFrame(np.c_[cancer[‘data’], cancer[‘target’]], columns= np.append(cancer[‘feature_names’], [‘target’]))   X = data.drop(columns=[‘target’]) …

Pulearnでの陽性のラベルとラベルなしデータの分類分析 Read More »