データ解析に関するいろいろな手法を解説した記事や、データ解析をするときの考え方の記事をまとめました。興味のある内容がございましたら、ぜひリンクへ飛んでいただけたらと思います。
pdfファイルやパワーポイント(pptx)ファイルは、自由にご利用ください。
数学(行列計算・線形代数・統計・確率)が不安な方へ
高校数学の知識から、人工知能・機械学習・データ解析へつなげる、必要最低限の教科書
人の学習と人工知能の学習~人工知能を学習させるとかモデルを構築するということ~
最尤推定・最尤法~与えられたデータから確率分布のパラメータを推定する~
ニュートン法(ニュートン・ラフソン法)~f(x)=0の解を数値的に求める~
データの前処理
- 基本的なデータの前処理方法 オートスケーリング(標準化)・変数選択など
- 主成分分析(Principal Component Analysis, PCA)の前に変数の標準化(オートスケーリング)をしたほうがよいのか?
- 本当に標準偏差(分散)が0の説明変数(記述子・特徴量)を削除してよいのか?
- スペクトル・時系列データの前処理の方法~平滑化 (スムージング) と微分~
- トレーニングデータ・バリデーションデータ・テストデータの定義
- 回帰分析・クラス分類をするときの、モデル構築用データ (トレーニングデータ) とモデル検証用データ (テストデータ) の分け方 [Kennard-Stoneアルゴリズムのコードあり]
- 外れ値検出 (Outlier Detection) もしくは 外れサンプル検出 (Outlier Sample Detection) ~他の値・サンプルと大きく異なる値・サンプルを見つけよう!~
- One-Class Support Vector Machine (OCSVM) で外れ値・外れサンプルを検出したりデータ密度を推定したりしよう!
- 回帰分析のときに外れサンプルを検出する手法を開発しました [金子研論文]
データセットの可視化・見える化
- データの可視化・見える化のための手法を選ぶときの2つのポイント
- 見える化・可視化した結果を評価する指標を開発しました、ハイパーパラメータの設定もこれでOK (Python・MATLABプログラムあり)
- 主成分分析(Principal Component Analysis, PCA)
- 独立成分分析 (Independent Component Analysis, ICA)
- 自己組織化マップ(Self-Organizing Map, SOM)
- Generative Topographic Mapping (GTM)
- t-distributed Stochastic Neighbor Embedding (t-SNE) ~データの可視化に特化した手法~
クラスタリング
- 階層的クラスタリング(クラスター分析)、近いクラスターを結合していく
- k平均法 (k-means clustering) 非階層的クラスタリング
- 混合ガウスモデル (Gaussian Mixture Model, GMM)~クラスタリングするだけでなく、データセットの確率密度分布を得るにも重宝します~
変数選択
- Stepwise (ステップワイズ) 法による説明変数 (入力変数・記述子・特徴量) の選択~手軽な変数選択手法~
- GAPLS, GASVR でモデルの推定性能がよくなるように説明変数の選択をしよう![Pythonコードあり]
- [Pythonコードあり] スペクトル解析における波長領域や時系列データ解析におけるプロセス変数とその時間遅れを選択する方法
回帰分析
- k最近傍法(k-Nearest Neighbor, k-NN)でクラス分類・回帰分析・モデルの適用範囲(適用領域)の設定をしよう!
- 最小二乗法による線形重回帰分析
- 部分的最小二乗回帰(Partial Least Squares Regression, PLS)
- Locally-Weighted Partial Least Squares (LWPLS, 局所PLS) ~あのPLSが非線形性に対応!~ [Python・MATLABコードあり]
- リッジ回帰(Ridge Regression, RR), Least Absolute Shrinkage and Selection Operator (LASSO), Elastic Net (EN)
- サポートベクター回帰(Support Vector Regression, SVR)
- 決定木(Decision Tree, TD)
- ランダムフォレスト(Random Forest, RF)
- 誤差逆伝播法によるニューラルネットワーク(BackPropagation Neural Network, BPNN)~深層学習(ディープラーニング)の基礎~
- ガウス過程による回帰(Gaussian Process Regression, GPR)
- [Pythonコードあり] 教師あり混合ガウスモデル(Supervised Gaussian Mixture Models)で回帰分析も逆解析も自由自在に♪~Gaussian Mixture Regression(GMR)~
- [Python・MATLABコードあり] クロスバリデーションしないで非線形回帰モデルのハイパーパラメータを最適化する方法~サンプルの中点の活用~
クラス分類
- クラス分類とクラスタリング、名前は似ていますが全く異なります
- k最近傍法(k-Nearest Neighbor, k-NN)でクラス分類・回帰分析・モデルの適用範囲(適用領域)の設定をしよう!
- 線形判別分析(Linear Discriminant Analysis, LDA)
- サポートベクターマシン(Support Vector Machine, SVM)
- 決定木(Decision Tree, TD)
- ランダムフォレスト(Random Forest, RF)
- 誤差逆伝播法によるニューラルネットワーク(BackPropagation Neural Network, BPNN)~深層学習(ディープラーニング)の基礎~
- 単純ベイズ分類器 (ナイーブベイズ, Naïve Bayes Classifier) でクラス分類
アンサンブル学習
- アンサンブル学習 ~三人寄れば文殊の知恵~ たくさんモデルを作って推定性能を上げよう!
- ランダムフォレスト(Random Forest, RF)
- アンサンブル学習でも、各サブモデルの適用範囲・適用領域をちゃんと考えよう!~Ensemble learning method Considering Applicability Domain of each Submodel (ECADS)~
- Adaboost (Adaptive Boosting) によるアンサンブル学習のやり方を解説します
半教師あり学習 (半教師付き学習)
モデルの検証
- 回帰モデル・クラス分類モデルを評価・比較するためのモデルの検証 (Model validation)
- 人工知能・機械学習のときには過学習 (オーバーフィッティング) に気をつけよう!~過学習とその対処法~
- ダブルクロスバリデーション(モデルクロスバリデーション)でテストデータいらず~サンプルが少ないときのモデル検証~
- モデルの推定性能を評価しても、その結果で最適化したら評価にならないので注意ですよ!
- バリデーション結果は、少数の比較には使ってよいが最適化に使ってはいけない!~外部バリデーションや(ダブル)クロスバリデーションでは何を評価しているのか?評価するときのジレンマとは?~
- y-randomizationで過学習(オーバーフィッティング), Chance Correlation(偶然の相関)の危険度を評価!
- r2やRMSE・MAEはもう古い!?回帰分析においてモデルを評価するための新しい指標を開発しました
- テストデータ・バリデーションデータ(モデル検証用データ)におけるモデルの精度が低いときのポジティブな側面
モデルの適用範囲
- モデルを作るのにサンプル数はいくつ必要か?に対する回答~モデルの適用範囲・モデルの適用領域~
- モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) ~回帰モデル・クラス分類モデルを使うとき必須となる概念~
- 本当に標準偏差(分散)が0の説明変数(記述子・特徴量)を削除してよいのか?
- k最近傍法(k-Nearest Neighbor, k-NN)でクラス分類・回帰分析・モデルの適用範囲(適用領域)の設定をしよう!
- One-Class Support Vector Machine (OCSVM) で外れ値・外れサンプルを検出したりデータ密度を推定したりしよう!
- Xの変数を適切に非線形変換して線形の回帰モデルを作るとモデルの適用範囲・適用領域が広がるかも![検証結果とPythonプログラムあり]
モデルの解釈
モデルの逆解析
- 回帰モデル・クラス分類モデルの逆解析~目標のY(物性・活性など)を達成するためのX(説明変数・記述子・特徴量・パラメータ・入力変数)とは?~
- ランダムフォレスト(Random Forest, RF)や決定木(Decision Tree, DT)で構築したモデルを逆解析するときは気をつけよう!
- [Pythonコードあり] 教師あり混合ガウスモデル(Supervised Gaussian Mixture Models)で回帰分析も逆解析も自由自在に♪~Gaussian Mixture Regression(GMR)~
- 部分的最小二乗回帰 (Partial Least Squares Regression, PLS) モデルの逆解析するときのちょっとしたメリット
実験計画法
- 実験計画法の概要~データを上手く使って実験のコスパを上げましょう!~
- 実験計画法で実験パラメータの候補を選択する (直交表を作成する) プログラムを公開します
- ベイズ最適化(Bayesian Optimization, BO)
時系列データ解析 (ソフトセンサーなど)
- 時系列データを扱うときの3つの注意点(ソフトセンサー解析など)[データ解析用のPythonプログラム付き]
- 適応型ソフトセンサーで産業プラントにおけるプロセス状態等の変化に対応する (Adaptive Soft Sensor)
- Locally-Weighted Partial Least Squares (LWPLS, 局所PLS) ~あのPLSが非線形性に対応!~ [Python・MATLABコードあり]
異常検出・異常診断
- T2統計量・Q統計量~異常値を検出したり、モデルの適用範囲・適用領域(AD)を設定したり~
- One-Class Support Vector Machine (OCSVM) で外れ値・外れサンプルを検出したりデータ密度を推定したりしよう!
失敗例
その他
- どんなときにデータ解析・データ分析で成果がでやすいか?
- モデルを作るのにサンプル数はいくつ必要か?に対する回答~モデルの適用範囲・モデルの適用領域~
- ロバストなモデル・手法・方法ってどういうこと?推定性能が高い、とは違います!
- サンプル数が少ないときはどうするか?・・・うーん、仕方がないので幅で考えましょう! (一変数・単変量で正規分布に従う場合)
- サンプル数が少ないときはどうするか?・・・うーん、仕方がないのでデータ分布を仮定してたくさんサンプリングしましょう! (多変量の場合)
- 個性的な人工知能をつくる
- 尺度水準~変数(記述子・特徴量)のレベルを把握しておきましょう~
- どんなクラス分類のデータも回帰分析に変換する方法 (説明変数にも使えます)
- バーチャル(virtual)についてあまり知られていない意味を説明することで、機械学習関係に対する信用度が上がるきっかけにならないかと淡い期待をよせる
- データ解析・機械学習をはじめたいとき、市販のソフトウェアを使うのがよいか、プログラミングを勉強するのがよいか、それぞれのメリット・デメリットを考える
- プログラミング課題(模範解答付き)
- MATLAB に慣れた人が Python を始めるときの11の注意点
- (ノート)パソコンの選び方~金子研で購入するときにチェックする7つの項目~
- [実績あり] 機械学習・データ解析・Pythonに関する10時間のハンズオンセミナー(体験学習)でどのくらいのことができるようになるのか?