機械学習

TensorFlowの公平性指標(Fairness Indicators)

目次 1. TensorFlowのFairness Indicators 1.1 公平性指標(Fairness Indicators)とは 1.2 Fairness IndicatorsのAPI 2. 実験 2.1 環境構築 2.2 データセット 2.3 公平性指標 関連記事: 機械学習モデルを解釈するSHAP eli5でモデルの解釈   1. TensorFlowのFairness Indicators 1.1 公平性指標(Fairness Indicators)とは Fairness Indicators はTensorFlow Model Analysis (TFMA)のパッケージにあり、公平性メトリックの計算するライブラリです。既存のツールの多くは、大規模なデータセットやモデルではうまく機能しません。しかしTensorflowのFairness Indicatorsでは、10億ユーザーのシステムで動作できるツールで大規模に強いのが特徴です。 公平性指標でやることは、 データセットの分布 定義されたユーザーグループ間のモデルのパフォーマンスを評価 個々のスライスを深く掘り下げて、根本的な原因で改善 です。 1.2 Fairness IndicatorsのAPI パッケージ: Tensorflowデータ検証(TFDV) Tensorflowモデル分析(TFMA)公平性指標 What-Ifツール(WIT) 資料https://www.tensorflow.org/tfx/guide/fairness_indicators#render_fairness_indicators GitHub: https://github.com/tensorflow/fairness-indicators   2. 実験 環境:Google Colab …

TensorFlowの公平性指標(Fairness Indicators) Read More »

MLXTENDのでのアソシエーション分析

  目次 1. Mlxtendの概要 1.1 Mlxtendとは 1.2 頻繁なパターンのモジュール 1.3 mlxtendのインストール 2. Apriori 2.1 Aprioriのアルゴリズム 2.2 Aprioriの実験 3. 相関ルール 2.1 Association Rulesのアルゴリズム 2.2 Association Rulesの実験 関連記事: 協調フィルタリング(Collaborative filtering)レコメンドエンジン レコメンドのランキングの評価指標 (PR曲線とAUC, MRR, MAP, nDCG)   1. Mlxtendの概要 1.1 Mlxtendとは Mlxtendは machine learning extensionsの英語略称で、データサイエンティストの作業のライブラリです。サンプルデータ、前処理、モデル作成、モデル評価、可視化などのモジュールを提供しています。今回はfrequent_patternsのモジュールを解説したいと思います。 Mlxtendのモジュール:http://rasbt.github.io/mlxtend/USER_GUIDE_INDEX/ Mlxtendのgithub:https://github.com/rasbt/mlxtend   1.2 頻繁なパターンのモジュール 頻繁なパターン(frequent_patterns)のモジュールはapriori、association_rules、fpgrowth、fpmaxがあります。一緒に何が変われるかというパターンを理解するために、アソシエーション分析のアルゴリズムのモジュールです。   1.3 mlxtendのインストール Colabの環境で、mlxtendを更新します。 !pip install mlxtend –upgrade import mlxtend mlxtend.__version__ 0.19.0 …

MLXTENDのでのアソシエーション分析 Read More »

時系列データの外れ値の統計的な求め方(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 »

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 »

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 »

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 »

大規模データのクラスター分析Faiss

  目次 1. Faissの概要 1.1 Faissとは 1.2 Faissのライブラリ 2. 実験 2.1 サンプルデータ生成 2.2 Faissのkmeans 2.3 Scikit-learnのkmeans 2.4 まとめ   1. Faissの概要 1.1 Faissとは FaissはFacebook Resarchが提供する高密度ベクトルの効率的な類似性検索とクラスタリングするライブラリです。近傍探索問題は、データ量に応じて計算量が急激に増大する古典的な問題があって、RAMが足らないや計算時間がかかるといった問題あります。ライブラリーFaissは、Python / Numpyの完全なラッパーを使用してC ++で記述されて、学習時間が高速であると言われています。   1.2 Faissのライブラリ ライブラリーFaissは、ベクトルのセットを格納するインデックスタイプを中心に構築されており、L2および/またはドット積ベクトルの比較でそれらを検索する機能を提供します。 利用可能なインデックス構造のほとんどに対応しています。以下の点で優れていると言われています。 ・検索時間 ・検索品質 ・インデックスベクトルごとに使用されるメモリ ・トレーニングの時間 ・教師なしトレーニングのための外部データの必要性   資料:https://github.com/facebookresearch/faiss   2. 実験 データセット:大量データを生成します。(1,000,000件) モデル:FaissのkmeansとScikit-learnのkmeans モデル評価:実行時間、Rand score(クラスタリング間の類似度) Rand scoreの詳細: RAND Scoreの記事   ライブラリのインストール conda install faiss-cpu …

大規模データのクラスター分析Faiss Read More »

eli5での文書分類モデルの解釈

目次 1. eli5の概要 1.1 eli5とは 1.2 eli5のライブラリ 2. 実験 2.1 データロード 2.2 SVCの分類分析 2.3 eli5のモデル解釈 1. eli5の概要 1.1 eli5とは Eli5は「Explain Like I’m 5 (私が5歳だと思って説明して)」を略したスラングです。Eli5は統合されたものを使用してさまざまな機械学習モデルを解釈するPythonライブラリです。   1.2 eli5のライブラリ 対応機械学習ライブラリ: scikit-learn XGBoost LightGBM CatBoost lightning sklearn-crfsuite Keras   2. 実験 環境:Google colab データセット:20 Newsgroups:Usenet*1から収集した約20000文書、20カテゴリのデータセットです。 モデル:SVCの分類分析 モデル解釈:eli5のTextExplainer   ライブラリのインストール !pip install eli5 2.1 データロード Scikit-learnのデータセットから、20 Newsgroupsの学習とテストのデータセットを読み込みます。 from sklearn.datasets import fetch_20newsgroups   categories = [‘alt.atheism’, ‘soc.religion.christian’, ‘comp.graphics’, ‘sci.med’] …

eli5での文書分類モデルの解釈 Read More »

ランド指数 (Rand Index)クラスタリング間の類似度

目次 1. ランド指数 (Rand Index)の概要 1.1 ランド指数 (Rand Index)の概要 1.2 scikit-learnのランド指数 2. 実験 2.1データセット生成 2.2 KMeansのランド指数 2.3 dbscanのランド指数 2.4 MeanShiftのランド指数 2.5 まとめ 1. ランド指数 (Rand Index)の概要 1.1 ランド指数 (Rand Index)とは ランド指数 (Rand Index)は、2つのクラスタリング間の類似度を計算します。 Rand indexは下の式で計算します。 ARI = (RI – Expected_RI) / (max(RI) – Expected_RI) 例えば、 Cluster1: 1, 2, 1, 1, 2 Cluster2: 1, 1, 2, …

ランド指数 (Rand Index)クラスタリング間の類似度 Read More »