howtoanalysis's Introduction
howtoanalysis's People
Forkers
david5ivehowtoanalysis's Issues
Feature Selection
参考
-
2019-02-10 特徴量選択の今と新展開
まとめてくれてて助かる…! -
2019-01-05 ランダムフォレストと検定を用いた特徴量選択手法 Boruta
偽の特徴集合とJOINして、モデルを学習し重要度を計算。これを数回繰り返す。偽の特徴よりも重要度が悪い特徴は不要と検定で判断する方法。アイデアがシンプルでかつ強力そう。ランダムフォレストじゃなくても使えそうなのでやってみたい -
2018-12-13 テンソル分解を用いた教師無し学習による変数選択
テンソル分解で教師なし変数選択できるの試してみたい
Bias
DBSCAN
とは?
密度ベースのクラスタリング手法
パラメータ
- eps : 半径
- minPts : 近傍にいれる点の数
特徴
- クラスタの数を決める必要がない
- データが密集していると適切にepsとminPtsを決めるのが難しく、ほとんどの点を一つのクラスタに分類してしまう場合も
Outlier
epsの中に、minPts個の点がない点Aは外れ値とみなされる
R
-
dbscan
パッケージ : 高速なのでこっちでOK- R:dbscan - Density Based Clustering of Applications with Noise (DBSCAN) and Related Algorithms - R package
- 中はC++らしく、sklearnより早いと書いてる : https://cran.r-project.org/web/packages/dbscan/README.html
-
fpc
パッケージ
参考
-
DAY9: 非階層的クラスタリングの3つの手法
K-Means, DBSCAN, Mean-shiftの三つの手法を簡単にまとめ。わかりやすい
http://redandwhite.hatenablog.com/entry/2016/03/12/145216 -
scikit-learnのクラスタリングの図
これみたら特性は一発でわかると思う
http://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html#sphx-glr-auto-examples-cluster-plot-cluster-comparison-py
元論文
Ester, M., Kriegel, H. P., Sander, J., & Xu, X. (1996, August). A density-based algorithm for discovering clusters in large spatial databases with noise. In Kdd (Vol. 96, No. 34, pp. 226-231).
NN
Interpretable ML
Rでのおすすめパッケージ
R記事
- 2019-03-22 shapper is on CRAN, it’s an R wrapper over SHAP explainer for black-box models
- SHAPのRラッパーも出たみたい
- 2019-03-01 How to use in R model-agnostic data explanation with DALEX & iml
- 2018-12-14 XGBoostExplainerが何をやっているか調べる(1.とりあえず使う)
参考
- 2019-06-13 Permutation Importanceを使ってモデルがどの特徴量から学習したかを定量化する
- 2019-04-23 データアナリストが活用できる(かもしれない)機械学習
- 2019-01-28 Interpretable Machine Learning A Guide for Making Black Box Models Explainable
- 2018-12-18 機械学習モデルの判断根拠の説明
まとめ
RDD : Regression Discontinuity Design
とは?
例
- x:年齢とy:死亡率の散布図で、20歳で死亡率がグンと上がる
参考
Bayesian AB Test
参考
- 2017-08-20 Bayesian Inference With Stan
038- RでStanや、
bayesAB
パッケージを使った例
- RでStanや、
UMAP
とは?
- UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction
- https://arxiv.org/abs/1802.03426
- lmcinnes/umap : https://github.com/lmcinnes/umap
特徴
- t-SNEよりも高速でありながらt-SNEと同じような可視化の結果が得られる。
- t-SNEと違って、学習済みの空間に、あとから新規のサンプルを布置できる。
ドキュメント
R package
umapr
: 著者実装。python版のumapをreticulateでラッピングしてる。今はメンテしてないので、以下2つを使ってねとのことumap
: R実装とpython版のumapをreticulateでラッピングして使える。uwot
: パフォーマンスが一番良いし、いろいろ拡張してるのでおすすめ- https://github.com/jlmelville/uwot
- https://jlmelville.github.io/uwot/umap-for-tsne.html
- https://jlmelville.github.io/uwot/umap-examples.html
- t-SNEと比較してておもしろい。UMAPがコンパクトなクラスタを作るのがよく分かる
uwot
paramter | default value | 解釈 |
---|---|---|
n_neighbors | 15 | 小さいほどローカル重視。大きいほどグローバル重視。一般には2から100の間でパラメータ調整 |
n_components | 2 | エンベデッドされる次元の数。可視化するなら2。 |
min_dist | 0.01 | 小さいほどグループ化する。大きいほど点を散らす。 |
scale | F | スケーリングするかどうか。生値のままなら、scale or colrange あたりをまず試す |
metric | euclidean | 距離関数 |
参考
-
2018/07/28 ハンズオンUMAP
pythonの場合
https://aotamasaki.hatenablog.com/entry/2018/07/28/220102 -
2018/05/20 umap – 一様マニホールド近似と投影
GithubのREADMEを翻訳してくれてる
https://githubja.com/lmcinnes/umap -
Dimensionality reduction with UMAP on MNIST
MNISTもキレイわけれるからすごいな
https://www.kaggle.com/mrisdal/dimensionality-reduction-with-umap-on-mnist
Survival Analysis
(自分的)だいたいの流れ
- 比べたいものがないなら、生存曲線を1本引くでOK
- Rの
survfit
は何かformulaに説明変数がいるが、ダミー変数いれておけばOK
- Rの
- 比べたいもの(性別やCとT1のような)があるなら、formulaに説明変数として入れれば比較できる
- 比べたい基準が複数ある(性別、年齢…)なら、Cox比例ハザードモデルでどの説明変数が有意に効くかを調べることができる。全特徴量を入れて、調べるのもOK。
- ハザード比が時間変化しないという仮定が入るので、それは要チェックである
使い方
- Rの
survival
パッケージでOK
参考
- 2019-05-18 生存解析のすヽめ:カプランマイヤー法とコックス比例ハザードモデル
- 2019-05-16 [Stan]生存時間分析のコードと便利なデータセットについて
- 2018-11-14 生存時間解析について – セミパラメトリック
- Cox比例ハザードモデルを丁寧に説明している
- 2018-10-31 Bayesian Survival Analysis 1: Weibull Model with Stan
- 2018-08-12 生存時間分析の色々なアルゴリズムをまとめてみました
- 発展まで調べてくれてるので、必要とあらばチェック
- 2018-07-23 Survival
- Rで分析してるRPubs。可視化に
ggsurvplot
を使っていてきれい。英語だが、わかりやすい
- Rで分析してるRPubs。可視化に
- Rと生存時間分析(1)
- 信頼区間のことが詳しくて参考になった
- 2013-01-27 Rで生存時間分析を行う
- 2011 生存関数における
信頼区間算出法の比較- 古いSAS資料だが、信頼区間の算出法の正確さを調べてる。loglogが良さそう
Uplift Modeling
とは?
施策をおこなうことで施策をおこなわなかったときと比べて 反応率がどれだけ上がるのか(これがuplift)を顧客ごとに推定することができ、 反応率が大きく上昇するであろう顧客のみに施策を適用することも可能となる。
よくでる4つのグループ
参考 : 2012-03-04 Uplift Modelling 入門(1)
- 左下は施策をしようがしまいが、反応してくれるので、問題なし = 鉄板ユーザ群
- 右上は施策をしようがしまいが、反応しないので、無理 = 無関心ユーザ群
- 左上は施策をしないと、反応してくれるが、施策をすると、反応しないあまのじゃく群
- 左下は施策をしないと、反応してくれないが、施策をすると、反応する狙い目 = 説得可能群
Uplift Modeling が適したケース
- 自社のお金をたんまり使った施策をするときに、その施策で期待される反応を得ることができる層に施策を提供したい…!つまり、説得可能群を発見したい場合
アプローチ
2 Model
Control(対照群)とTreatment(実験群)で2つのモデルを用意するアプローチ(そのままや)
-
ABテストで使ったTreatmentとControlの2つに対して、それぞれ反応したかどうか(0 or 1)を予測する分類モデル(よくあるのはロジスティック回帰)を学習する。特徴量は思いつくままいれておく。学習されたモデル2つを得る。
-
2つのモデルの係数を比較する。対照群と比較(率や差を取るとか?)することで、施策を実施した実験群での反応に効く特徴がなんとなくわかる
-
施策をうつべきか予測したいテストデータに対して、2つのモデルそれぞれで施策に反応する確率を求める
-
uplift = 実験群で学習したモデルでの反応確率 / 対照群で学習したモデルでの反応確率 を計算する
-
upliftが1を超えていれば、施策により反応する確率の高い層=説得可能群であると分かる。逆に1未満であると、あまのじゃく群であると分かる
注意ポイント
2つのモデルを使っているので、各学習データの偏りにより、推定されるパラメータの頑健性が心配とか
1 Model
* 勉強しなければ
参考
- 2019-04-05 CausalLift: Python package for Uplift Modeling in real-world business; applicable for both A/B testing and observational data
- 2019-03-24 Uplift Modeling用のパッケージtools4upliftを使ってみた
- かものはしさんのブログ。Rでさくっと試すにはちょうどいいみたい
- 2019-01-05 Uplift modelingで施策が効く人を見極める
- 2018-09-07 Uplift Modelingで介入効果を最適化する
- 2018-03-29 傾向スコアを用いて観察データからUpliftをモデリングする
- 2017-11-25 「仕事ではじめる機械学習」のUplift Modelingのコードを写経してみた
Bandit
Multi-armed Bandit とは?
Contextual Bandit とは?
- バンディットアルゴリズムで、特徴(Context)ごとに振る舞いが異なると考えられるときに
- 例
- 広告のA/Bの出し分けを男女で変えるなど
参考
A, B, …, nをすべて等頻度で試すのではなく、 最適腕識別のアルゴリズムを用いて効果の見込みが薄い候補を試す頻度を下げる方が、 より効率的に最適な広告やクリエイティブ (Web広告に用いる画像などの素材) を探索することができます
- 2018-06-09 効果のあるクリエイティブ広告の見つけ方(Contextual Bandit + TS or UCB)
TokyoR 第70回 LT での発表スライド
Causal Inference
Decision Tree
Sample Size
QQ Plot
STS
とは?
- STS(Structured Time Series Model) : 構造時系列モデル
参考
AB Test
Word
- FDR : False Discovery Rate : 多重比較では、FWERを抑えようとして、各ペアの有意水準を小さくするが、今度はβエラーが起こりがちになってしまう。そこで、多重度に応じて許容度を和らげる
- FWER : FamilyWise Error Rate : 多重比較で複数検定を行ったときに、どれかで有意になる確率のこと
- 多重検定では、各ペアの比較の有意水準5%とするのではなく、FWERが5%になるようにコントロールしようぜという考え方
- Sequential Testing (逐次検定) : サンプルが追加されるごとに尤度比を計算して,その尤度比が想定していた閾値を超えた時点で有意とみなす
参考
Multiple Comparisons (多重比較)
参考
- 多重比較
p.adjust()
でさまざまな方法の多重比較法でp値を補正することができる
- 厳格化の観点からの多重比較法の整理
- 有意水準調整型多重比較法 <- これを使うことが多い
- 分布調整型多重比較法
Bonferroni <- まずシンプルなのでこれ
多重回数分Nだけ各ペアの有意水準αをα/Nに下げて、想定したFWERを満たすように調整する方法
Sidak
想定したFWERを正確に満たすように調整する方法
Holm
調べ途中
Benjamini-Hochberg : BH <- よく聞く
雑にいうと、FWERをほどほどにして、FDRを抑えようという考え方
参考
Shiny
-
2019-01-17 Building an A/B Testing Analytics System with R and Shiny
RStudio:conf 2019の資料。Datacampのデータサイエンティストの話。3度同じ処理をするなら、ダッシュボードを作ろう。AB TestにShinyを使って計算しているそう -
onlinedialogue.shinyapps.io/ab-test-size
比率の差の検定のShinyApps。必要な項目やインタフェース参考になる -
Shiny Contest Submission: A/B Testing Sample Size Calculator 比率の差の検定のShinyApps。必要な項目やインタフェース参考になる
Papers
- Continuous Monitoring of A/B Tests without Pain: Optional Stopping in Bayesian Testing
- 2017_KDD_Peeking at A/B tests: why it matters and what to do about it
- mSPRT, the mixture sequential probability ratio test を提案
- Optimizely のプラットフォームの一部
全体参考
- 2018-10-03 How Etsy Handles Peeking in A/B Testing
Etsyの話。Sequential Testingはまだわかってない。ABテストの分析UI設計参考になる。 - 2015-04-14 Optimizelyのstats engineによる逐次A/Bテスト
Fisher's exact test / Chi-squared test / Binomial test
CausalImpact
defragTree
Matthews Correlation Coefficient
参考
少数クラスが正の場合はモデル精度の評価にF1スコアとマシューズ相関係数のどちらを使用いただいても問題ありません。多数クラスが正の場合は、F1スコアは正解率のような動きをとりますので、マシューズ相関係数を用いてモデルの精度を評価する必要があります。ですので、何かひとつの指標を使用するのであれば、マシューズ相関係数が最適です。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.