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 »

カテゴリ変数のエンコーディングのまとめ

目次 1.数字変数のエンコーディング 1.1 OrdinalEncoder 1.2 CountEncoder 2. ダミー値エンコーディング 2.1 OneHotEncoder 2.2 SumEncoder 2.3 BinaryEncoder 2.4 BaseNEncoder 2.5 HashingEncoder 3. 別のレベルの比較エンコーディング 3.1 HelmertEncoder 3.2 BackwardDifferenceEncoder 3.3 PolynomialEncoder 4. ターゲットありエンコーダー 4.1 TargetEncoder 4.2 LeaveOneOutEncoder 4.3 MEstimateEncoder 4.4 CatBoostEncoder 4.5 GLMMEncoder 4.6 JamesSteinEncoder 4.7 WOEEncoder   ライブラリのインストール !pip install category_encoders   ライブラリのインポート import category_encoders as ce   1.数字変数のエンコーディング 1.1 OrdinalEncoder サンプルデータ作成 import pandas as pd   …

カテゴリ変数のエンコーディングのまとめ Read More »

eli5でモデルの解釈

目次 1. eli5の概要 2. 実験 2.1 回帰モデル 2.2 分類モデル 関連記事:eli5での文書分類モデル   先回の記事はeli5での文書分類モデルについて解説しました。 今回はeli5で回帰モデルと分類モデルの解釈について解説していきます。   1. eli5の概要 Eli5は「Explain Like I’m 5 (私が5歳だと思って説明して)」を略したスラングです。Eli5はscikit-learn、XGBoost、LightGBMなどの機械学習モデルを解釈するPythonライブラリです。   eli5は機械学習モデルを解釈する2つのレベルを提供します。 グローバルレベル:モデルの特徴量の重要さを説明します。 ローカルレベル:個々のサンプル予測を分析して、特定の予測が行われた理由を理解します。   2. 実験 環境:Google Colab モデル解釈:eli5   ライブラリのインストール !pip install eli5   ライブラリのインポート import pandas as pd import numpy as np import sklearn import eli5   2.1 回帰モデル ボストン住宅価格データセットを読み込みます。 from sklearn.datasets import load_boston   boston = load_boston() data = pd.DataFrame(np.c_[boston[‘data’], boston[‘target’]], columns= np.append(boston[‘feature_names’], [‘target’]))   print(‘Number of columns’, len(data.columns)) data 学習とテストのデータを分けます。 from sklearn.model_selection import train_test_split   …

eli5でモデルの解釈 Read More »

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

  目次 1 LAMB最適化アルゴリズムの概要 1.1 LAMB最適化アルゴリズムとは 1.2 LAMB定義 2. 実験 2.1 データロード 2.2 データ前処理 2.3 LAMB最適化アルゴリズムのモデル作成 2.4 Adam最適化アルゴリズムのモデル作成 2.5 まとめ 記事:最適化アルゴリズムのまとめ   1 LAMB最適化アルゴリズムの概要 1.1 LAMB最適化アルゴリズムとは LAMBは、LARSに触発されて、大きなミニバッチを使用してディープニューラルネットワークのトレーニングを加速するための手法です。 LAMBの適応性は2つあります。(i)ADAMで使用される2次モーメントの平方根に関する次元ごとの正規化、および(ii)層ごとの適応性によって得られる層ごとの正規化です。 LAMBのアルゴリズムは下記になります。 以下の表は、ResNet-50ネットワークを使用したImageNetデータセットの実験結果です。 LAMBは高精度を実現できます。 論文: https://arxiv.org/abs/1904.00962 Tensorflow: https://www.tensorflow.org/addons/api_docs/python/tfa/optimizers/LAMB?hl=ja PyTorch: https://github.com/cybertronai/pytorch-lamb/blob/master/pytorch_lamb/lamb.py   2. 実験 データセット:cifar10: 60000枚の32ピクセルx32ピクセルの画像。10クラス([0] airplane (飛行機)、[1] automobile (自動車)、[2] bird (鳥)、[3] cat (猫)、[4] deer (鹿)、[5] dog (犬)、[6] frog (カエル)、[7] …

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

HARDSHRINKの活性化関数

目次 1. HARDSHRINK活性化関数の概要 1.1 HARDSHRINK活性化関数とは 1.2 HARDSHRINK関数 2. 実験 2.1 ライブラリインポート 2.2 データ読み込み 2.3 データ加工 2.4 HARDSHRINKの活性化関数を作成 2.5 Reluの活性化関数を作成 2.6 まとめ 関連記事:活性化関数のまとめ 1. HARDSHRINK活性化関数の概要 1.1 HARDSHRINK活性化関数とは HARDSHRINK活性化関数とは入力データと出力データは原点の周りは、0だがそれ以外では値のある関数です。下記の関数になります。 関数 の形をしており、変数lower/upperのデフォルト値は0.5です。 1.2 HARDSHRINK関数 TensorFlowの関数 tfa.activations.hardshrink( x: tfa.types.TensorLike, lower: tfa.types.Number = -0.5, upper: tfa.types.Number = 0.5 ) -> tf.Tensor TensorFlowの資料: https://www.tensorflow.org/addons/api_docs/python/tfa/activations/hardshrink?hl=ja   PyTorchの資料: https://pytorch.org/docs/stable/generated/torch.nn.Hardshrink.html   2. 実験 データセット:CIFAR-10 …

HARDSHRINKの活性化関数 Read More »