機械学習用pythonライブラリ142選

機械学習の各分野におけるスタンダードライブラリ、痒い所に手が届くライブラリを紹介します。大全を名乗るには程遠いですが。

基本的に使用経験のあるライブラリを記載していますが、一部使ったことのない物も載せてあります。尚、画像系ライブラリはほとんど載せていません。

# 主要ライブラリ」
・[scikit-learn](https://pypi.org/project/scikit-learn/)
　・派生ライブラリ群の[scikit-learn-contrib](https://github.com/scikit-learn-contrib)
・[Tensorflow](https://pypi.org/project/tensorflow/)
・[Keras](https://pypi.org/project/keras/)
・[Pytorch](https://pypi.org/project/pytorch/)
・[XGBoost](https://pypi.org/project/xgboost/)　[解説](https://knknkn.hatenablog.com/entry/2021/06/29/125226)
・[LightGBM](https://pypi.org/project/lightgbm/)
　　[LightGBM ハンズオン - もう一つのGradient Boostingライブラリ](https://qiita.com/TomokIshii/items/3729c1b9c658cc48b5cb)
・[NGBoost](https://pypi.org/project/ngboost/)
　　[NGBoostを試してみた](https://qiita.com/yu89mo/items/a487b41a1f86e6ef22ef)
・[statsmodels](https://pypi.org/project/statsmodels/)

# AutoML
・[AutoGluon](https://pypi.org/project/autogluon/)
　　[3 行のコードが実現する機械学習の自動化。「AutoGluon」が見据える未来とは?](https://aws.amazon.com/jp/builders-flash/202108/autogluon-interview/?awsf.filter-name=*all)
　　[AutoGluon試してみた](https://qiita.com/dyamaguc/items/dded739f35e59a6491c8
)

・[TabPFN](https://pypi.org/project/tabpfn/)
　[論文](https://www.nature.com/articles/s41586-024-08328-6)
　


・[optuna](https://pypi.org/project/optuna/)
　sklearn, chainer, keras, どこでも使えるハイパーパラメータ調整ライブラリ
　　[Kerasでハイパーパラメータを自動調整したいならOptuna](https://snova301.hatenablog.com/entry/2018/12/14/191025)

[optuna-integration](https://pypi.org/project/optuna-integration/)
　ver3.6から分離
　Optunaでsklearn compatibleなモデルをチューニングする際はOptunaSearchCVを用いるのが望ましい。
　[OptunaSearchCV](https://optuna.readthedocs.io/en/stable/reference/generated/optuna.integration.OptunaSearchCV.html
)
　LightGBM専用のtuner
　[LightGBMTuner](https://optuna.readthedocs.io/en/stable/reference/generated/optuna.integration.lightgbm.LightGBMTuner.html
)

・[sklearn-genetic-opt](https://pypi.org/project/sklearn-genetic-opt/)
　遺伝的アルゴリズムでハイパーパラメータを最適化
　[GASearchCV](https://sklearn-genetic-opt.readthedocs.io/en/stable/tutorials/basic_usage.html)

・[ray](https://pypi.org/project/ray/)
　[TuneSearchCV](https://github.com/ray-project/tune-sklearn#tunegridsearchcv)

・[tpot](https://pypi.org/project/TPOT/)
　機械学習手法やハイパーパラメータを自動最適化（遺伝的アルゴリズム）
　　[その機械学習プロセス、自動化できませんか？](https://qiita.com/Hironsan/items/30fe09c85da8a28ebd63)
　＊ただし、取りうる目的変数は１つのみ。
　いわゆるMultioutputregressorには対応しないので、目的変数が複数存在する場合は前処理で分割する必要があり。

・[auto-sklearn](https://pypi.org/project/auto-sklearn/)
　　[Pythonでデータ分析：Auto-sklearnについてのメモ](http://tekenuko.hatenablog.com/entry/2017/12/12/225959)

・[pycaret](https://pypi.org/project/pycaret/)
　　　[最速でPyCaretを使ってみた](https://qiita.com/s_fukuzawa/items/5dd40a008dac76595eea)

・[Autokeras](https://pypi.org/project/autokeras/)

・[hyperas](https://pypi.org/project/hyperas/)
　hyperoptベースでkerasを自動チューニング
　　[その機械学習プロセス、自動化できませんか？](https://qiita.com/Hironsan/items/30fe09c85da8a28ebd63)


# 前処理
#### ノイズ処理
・[tabular_dae](https://github.com/ryancheunggit/tabular_dae)

#### 欠損値補完

・[miceforest](https://pypi.org/project/miceforest/)

・[missingpy](https://pypi.org/project/missingpy/)
　[Pythonでの欠測データ補完手法に関するクイックガイド（2020）](https://ichi.pro/python-de-no-ketsu-haka-de-ta-hokan-shuho-nikansuru-kuikku-gaido-2020-92431787695134)
　ライセンスはLGPL
　
・[miracle-imputation](https://pypi.org/project/miracle-imputation/)
　[論文(2021)](https://proceedings.neurips.cc/paper/2021/file/c80bcf42c220b8f5c41f85344242f1b0-Paper.pdf)

#### 特徴量エンジニアリング
・[feature-engine](https://pypi.org/project/feature-engine/)
　種々の特徴量エンジニアリング
　　[Feature-engineを使って特徴量エンジニアリングをする方法](https://sakizo-blog.com/47/)
　時系列のLagFeaturesなど

・[category-encoders](https://pypi.org/project/category-encoders/)
　カテゴリ変数のone-hot化
　　[Category Encodersでカテゴリ特徴量をストレスなく変換する](https://qiita.com/Hyperion13fleet/items/afa49a84bd5db65ffc31)

・[featuretools](https://pypi.org/project/featuretools/)
　特徴量エンジニアリング
　　[featuretoolsで特徴量を自動生成して機械学習モデルの構築を楽に早くする手法](https://qiita.com/kazuki_hayakawa/items/162cc36fbbc9440c0645)

#### 特徴量選択
・[Boruta](https://pypi.org/project/Boruta/)
　　[https://qiita.com/studio_haneya/items/bdb25b19baaf43d867d7](Borutaで特徴量を選択する)

・[BorutaShap](https://pypi.org/project/BorutaShap/)
　　[Numerai: Boruta-Shapで特徴量選択](https://qiita.com/labcorpj10/items/8b41441a21d24b65643f)


・[sklearn-genetic](https://pypi.org/project/sklearn-genetic/)
　遺伝的アルゴリズムで説明変数選択（お勧め）

・[sklearn-genetic-opt](https://pypi.org/project/sklearn-genetic-opt/)
　遺伝的アルゴリズムで説明変数選択

・[sklearn-rebate](https://github.com/EpistasisLab/scikit-rebate)
　　[Relief-based feature selection: Introduction and review](https://www.sciencedirect.com/science/article/pii/S1532046418301400)
　　[ReliefFでFeature選択 備忘録](https://qiita.com/Ihmon/items/fc837305540179e94e85)

・[zoofs](https://pypi.org/project/zoofs/)
　　[zoofs - Github](https://github.com/jaswinder9051998/zoofs)
　　[Grey Wolf Algorithm](https://www.sciencedirect.com/science/article/pii/S0965997813001853)などに対応
  　　 　scikit-learnのAPIには非対応
・[boostaroota](https://pypi.org/project/boostaroota/)
  　Boruta類似の分類用の説明変数選択手法　

・[mlxtend](https://pypi.org/project/mlxtend/)
    　　[SequentialFeatureFloatingSelection](http://rasbt.github.io/mlxtend/api_subpackages/mlxtend.feature_selection/#sequentialfeatureselector)や[ExhaustiveFeatureSelector](http://rasbt.github.io/mlxtend/api_subpackages/mlxtend.feature_selection/#exhaustivefeatureselector)に対応

・[scikit-feature](https://github.com/jundongl/scikit-feature)
    　　40の説明変数選択手法を実装。
　　ライブラリ名に反してscikit-learnのAPIには対応していない

・[Regularized-Random-Forest](https://github.com/rrrrind/Regularized-Random-Forest
)
    　　RRFのRライブラリのpythonラッパー。ライブラリの完成度は高くはない。
　　RRFや派生モデルのGRRF、GRFは予測モデルとしても用いられるが、変数選択手法として用いることが多い。

　参考：[Rパッケージ : RRF](https://github.com/softwaredeng/RRF)

# 学習手法
 ### 線形系
・[asgl](https://pypi.org/project/asgl/)
　　AdaptiveLasso, GroupLasso, SparseGroupLassoなど
　　sciki-learn-APIに対応(2024/8/1)
　　[Asgl: A Python Package for Penalized Linear and Quantile Regression](https://arxiv.org/abs/2111.00472)
　　[Sparse Group Lasso in Python](https://towardsdatascience.com/sparse-group-lasso-in-python-255e379ab892)

 ### 決定木系
・[Linear-Tree](https://pypi.org/project/linear-tree/)
　　決定木＋線形回帰・分類、ランダムフォレスト＋線形回帰・分類
　　[Linear-Tree](https://github.com/cerlymarco/linear-tree)
　　[Linear Tree: the perfect mix of Linear Model and Decision Tree](https://towardsdatascience.com/linear-tree-the-perfect-mix-of-linear-model-and-decision-tree-2eaed21936b7)

・[bartpy](https://github.com/JakeColtman/bartpy)
　BART
　　pypiのライブラリはバグがあるので、githubからインストール

・[GBART](https://pypi.org/project/gbart/)

・[aeon](https://pypi.org/project/aeon/)
　　様々な回帰、分類手法を実装。特に時系列、ディープラーニングにも強い
　　時系列以外ではRotationForest等
  


・[RGF-python](https://pypi.org/project/rgf-python/)
　　RGF(Regurarized Greedy Forest)
　　[論文](https://arxiv.org/abs/1109.0887)
　　[Regularized Greedy Forest(RGF)で多クラス分類を試してみました](https://segafreder.hatenablog.com/entry/2016/06/12/211050
)

・[imodels](https://pypi.org/project/imodels/)
　Hierarchical shrinkageやFIGS、Boosted rule

・[relf](https://pypi.org/project/rerf/)
　SPORF(Sparse Projection Oblique Randomer Forests)

・[quantile-forest](https://pypi.org/project/quantile-forest/)
　　予測値の分散を求めるランダムフォレスト

・[cubist](https://pypi.org/project/cubist/)

・[RuleFit](https://pypi.org/project/rulefit/)
　　決定木を基に特徴量を作成し、線形モデルで回帰を行う
　　[データから相互作用を自動で抽出するモデリング手法: RuleFit を試す](https://hacarus.com/ja/ai-lab/20211208-rulefit/)

✓linear-tree, RuleFit,　RGFの予測精度は良好でお勧め

 ### ベイズ系
・[gmr](https://pypi.org/project/gmr/)
　　[【ベイズ推定】GMR（Gaussian Mixture Regression）入門](https://cpp-learning.com/gmr/)


 ### その他学習手法
・ [TabNet](https://pypi.org/project/tabnet/)
　テーブルデータの機械学習
　・ [pytorch-tabnet](https://pypi.org/project/pytorch-tabnet/)
　　　[TabNetを使えるようになりたい](https://www.guruguru.science/competitions/16/discussions/70f25f95-4dcc-4733-9f9e-f7bc6472d7c0/)
　　　[TabNetを使う（回帰編）](https://qiita.com/maskot1977/items/5de6605806f8918d2283)

・[DCEKit](https://pypi.org/project/dcekit/)
　　[DCEKit (Data Chemical Engineering toolKit) を PyPI にリリース！](https://datachemeng.com/dcekit/)

・[heamy](https://pypi.org/project/heamy/)

・[PystackNet](https://github.com/h2oai/pystacknet)
　　[Kaggleでよく使われるStacking/Blendingをheamy、Stacknetをpystacknetで高速に実装する](https://blog.ikedaosushi.com/entry/2018/12/15/212508)

・[autofeat](https://pypi.org/project/autofeat/)

・[gplearn](https://pypi.org/project/gplearn/)
　　遺伝的プログラミングによる回帰モデル
　　[遺伝的アルゴリズムを使って特徴量エンジニアリングしてみた](https://qiita.com/Hatomugi/items/3bb16ed9c6bdc15f1e00)

・[GrowNet](https://github.com/sbadirli/GrowNet)
　"Gradient Boosting Neural Networks: GrowNet"

・[CBM](https://github.com/microsoft/CBM)
　　売上や需要などのカウントデータを予測するための説明可能な教師あり機械学習アルゴリズム

・[interpret](https://pypi.org/project/interpret/)
　　機械学習の解釈技術のパッケージ

✓interpretはお勧め

・[pykan](https://pypi.org/project/pykan/)
　　Kolmogorov-Arnold Networks (KANs)
   MLP(多層ニューラルネットワーク)に変わるニューラルネットワーク手法
   シンボリック回帰としても扱える

・[PiML](https://pypi.org/project/PiML/)
　　各種機械学習モデルや、評価、解釈技術などのツールボックス




## 時系列

・[Prophet](https://pypi.org/project/prophet/)
　　[時系列解析ライブラリProphet　公式ドキュメント翻訳１](https://qiita.com/japanesebonobo/items/96868e58d4da42d36807)

・[tsfresh](https://pypi.org/project/tsfresh/)
　　[tsfreshを使って多次元時系列データを特徴量エンジニアリングしてみた](https://qiita.com/yuki_edy/items/d978b3ff0f2e5024e669)

・[sklearn-sfa](https://pypi.org/project/sklearn-sfa/)
　　[Slow Feature Analysis: A Theoretical Analysis of Optimal Free Responses](https://ieeexplore.ieee.org/document/6790238)

・[hcrystalball](https://pypi.org/project/hcrystalball/)

・[artlearn](https://pypi.org/project/artlearn/)
　適用共鳴理論


# クラスタリング

・[UMAP](https://pypi.org/project/umap/)
　　　[最新の次元圧縮法"UMAP"について](https://qiita.com/cheerfularge/items/27a55ebde4a671880666)
✓ParametricUMAP
　　　[可視化アルゴリズム UMAP の パラメトリック版が登場](https://qiita.com/hoppiece_/items/4921eed006ed81394c7b)
✓DensMAP
　　　[高次元データの分布の密度を反映した埋め込み手法DensMAP](https://qiita.com/khigashi02/items/7dcc42c05b858a2dda89)


✓tSNE(sklearn)
　　　[(t-SNE, DBSCAN, Decision Tree)で、(可視化 > クラスタリング > 特徴説明)を行う](https://qiita.com/konyavic/items/7ec60f72ec480726e00a)
・[qSNE](https://github.com/i13abe/qSNE)
　　　[【論文解説:python実装】t-SNEの改良版！q-SNE](https://qiita.com/mathlive/items/7cc6a17cb0b46f6eb1ca)
・[DBSCAN](https://github.com/gbroques/dbscan)
　　　[【scikit-learnでDBSCAN(クラスタリング)](https://qiita.com/takechanman1228/items/c7f23873c087630bab18)
・[RobustPCA](https://github.com/dganguli/robust-pca)
　　　[Robust PCAで動体分離](https://qiita.com/matsxxx/items/306a42fa58218d919ac7)

・[trimap](https://github.com/eamid/trimap
)
・[PaCMAP](https://pypi.org/project/pacmap/)


✓手法比較
　　　[【次元低減】UMAP, PCA, t-SNE, PCA + UMAP の比較](https://cpp-learning.com/pca-umap/)


# scikit-learn補完
・[mlxtend](https://pypi.org/project/mlxtend/)
    scikit-learnに採用されていないアルゴリズム
        Sequential Forward/Backward Floating Selectionなど

・[scikit-lego](https://github.com/koaning/scikit-lego)
  　本家scikit-learnに実装されていない様々なアルゴリズムを提供

・[scikit-plot](https://github.com/reiinakano/scikit-plot)
    scikit-learnで得られた結果を手軽に可視化

・[scikit-learn-extra](https://pypi.org/project/scikit-learn-extra/)
    scikit-learnに採用されていないアルゴリズム
   
・[atom-ml](https://pypi.org/project/atom-ml/
    scikit-learnの高速化アルゴリズム


# XAI(説明可能AI)

・[shap](https://github.com/slundberg/shap)
　説明変数の影響度可視化
　　[Shapを用いた機械学習モデルの解釈説明](https://qiita.com/shin_mura/items/cde01198552eda9146b7)

・[sage-importance](https://pypi.org/project/sage-importance/)
　pypiのはplot関係のバグがあるので[github](https://github.com/iancovert/sage)からのインストールを推奨

　説明変数の影響度可視化(SHAPとは異なり予測精度に与える特徴量のグローバルな影響を算出)
　　[論文](https://arxiv.org/pdf/2004.00668.pdf)　[論文](https://arxiv.org/pdf/2102.10936.pdf)　[解説ブログ](https://iancovert.com/blog/understanding-shap-sage/)

・[gamma-facet](https://pypi.org/project/gamma-facet/)
　　[論文](https://arxiv.org/abs/2107.12436v1)

・[skope-rules](https://github.com/scikit-learn-contrib/skope-rules)
　　[解釈可能なルールを学習するskope-rulesのアルゴリズム](https://qiita.com/piyo7/items/ace37654f205ad5978af)
　　pypiのバージョンは古くscikit-learn v1以降ではエラーが出るため、[Github](https://github.com/scikit-learn-contrib/skope-rules)からインストール
　　参照：[Not compatible with sklearn v1](https://github.com/scikit-learn-contrib/skope-rules/issues/57)
　　分類問題のみ対応、回帰問題には未対応

・[RuleFit](https://github.com/christophM/rulefit)
　決定木を基に特徴量を作成し、線形モデルで回帰を行う
　　
・[sklearn-gbmi](https://github.com/ralphhaygood/sklearn-gbmi)
　Gradient BoostingのFriedmanとPopescuのH統計量を計算
　
# 評価
・[tibfold](https://github.com/ml-opt/tibfold)
  Tibshirani-Tibshirani methodを用いて、k-fold double-cross-validationのerrorを推定する方法
　ダブルクロスバリデーションを使わずに一重のCVで予測精度を正しく見積もれる


# その他
・[h5py](https://pypi.org/project/h5py/)
　訓練済みモデルの保存・読込に必要

# 可視化
・[matplotlib](https://pypi.org/project/matplotlib/)

・[seaborn](https://pypi.org/project/seaborn/)
　 [pythonで美しいグラフ描画 -seabornを使えばデータ分析と可視化が捗る その1](https://qiita.com/hik0107/items/3dc541158fceb3156ee0)

・[dtreeplt](https://pypi.org/project/dtreeplt/)
　graphviz不要の決定木可視化
　 [[Python]Graphviz不要の決定木可視化ライブラリdtreepltをつくった](https://qiita.com/nekoumei/items/7f2209295515c3aa1053)

・[dtreeviz](https://pypi.org/project/dtreeviz/)
　sklearnの決定木可視化　sklearn標準よりもスタイリッシュ
　 [Pythonの決定木をdtreevizでスマートに可視化する](https://qiita.com/calderarie/items/e4321bff95ac3042601b)

・[pydotplus](https://pypi.org/project/pydotplus/)
・[graphviz](https://pypi.org/project/graphviz/)

# 逆問題 - 探索
・[deap](https://pypi.org/project/deap/)
　遺伝的アルゴリズム
　順問題の予測式を機械学習で作り、逆問題を解く場合に有効
　　[DEAP](http://darden.hatenablog.com/entry/2017/04/18/225459)

・[pyevolve](https://pypi.org/project/Pyevolve/)
　遺伝的アルゴリズム

・[Gpy](https://pypi.org/project/gpy/)
・[Gpyopt](https://pypi.org/project/gpyopt/)
　　[Pythonでベイズ最適化を行うパッケージ GPyOpt](https://qiita.com/marshi/items/51b82a7b990d51bd98cd)

・[PHYSBO](https://www.pasums.issp.u-tokyo.ac.jp/physbo/)
　COMBO後継。 GPL　

・[hyperopt](https://pypi.org/project/hyperopt/)
 　SMBO

・itertools(標準ライブラリ)
・[more-itertools](https://pypi.org/project/more-itertools/)
　[document](https://more-itertools.readthedocs.io/en/stable/)
　[itertools、more-itertoolsの紹介](https://qiita.com/SaitoTsutomu/items/ddb5076ef62745f03b56)
　itertoolsの拡張ライブラリ。
　使用例：sample(itertools.combinations, 2) : iteratorからのサンプル

# 科学計算
## 材料
✓[MaterialApps](https://ma.issp.u-tokyo.ac.jp/)
 　物性科学シミュレーションのポータルサイト


✓[deepmaterials](https://github.com/deepmaterials/dlmatreview)
 　主に有機系の網羅的オープンソフトのリンク集
 　データベース、モデル、化学向けの画像処理や自然言語処理など

・[mat2vec](https://github.com/materialsintelligence/mat2vec)
　[Unsupervised word embeddings capture latentknowledge from materials science literature](https://www.nature.com/articles/s41586-019-1335-8.epdf)

https://github.com/materialsintelligence/mat2vec

## 無機化学
・[pymatgen](https://pypi.org/project/pymatgen/)
　材料科学全般
　　[pymatgen](https://pymatgen.org/index.html)

・[soaplite](https://pypi.org/project/soaplite/)
　SOAP記述子の生成
　　[SINGROUP/SOAPLite](https://github.com/SINGROUP/SOAPLite)

・[dscribe](https://pypi.org/project/dscribe/)
　soapliteの高級ライブラリ
　　[SINGROUP/dscribe](https://github.com/SINGROUP/dscribe)

・[ase](https://pypi.org/project/ase/)
　cifファイルの読み込み等
　　[ASE](http://ryokbys.web.nitech.ac.jp/ase.html)

## 有機化学
・[Rdkit](https://www.rdkit.org/docs/Install.html)
　有機化学を扱う基本のライブラリ
　SMILES形式やFingerprintへの変換
　✓sascorer
　　合成難易度の計算
　　[RDKitで合成難易度を評価して化合物をスクリーニング](https://future-chem.com/rdkit-sa-score/)


・[PubChemPy](https://pypi.org/project/PubChemPy/)
　アメリカ国立衛生研究所(NIH)が運用するPubChemのpythonライブラリ
　分子名から化合物情報（IUPAC名，分子式，分子量，xlogP，tPSA，SMILES）など入手可能

  ユーザー登録不要
　[PubChemPy](https://pubchempy.readthedocs.io/en/latest/index.html)

・[ChemSpiPy](https://pypi.org/project/ChemSpiPy/)
　王立化学会が運用するChemSpiderのpythonライブラリ
　分子名から化合物情報など入手可能

  ユーザー登録必要
　[ChemSpiPy](https://chemspipy.readthedocs.io/en/stable/)

・[deepchem](https://pypi.org/project/deepchem/)
　グラフ畳み込みによる有機化合物の解析
　　[deepchem](https://deepchem.io/)

・[chainer-chemistry](https://pypi.org/project/chainer-chemistry/) (開発中止)
　グラフ畳み込みによる有機化合物の解析
　　[化学、生物学分野のための深層学習ライブラリChainer Chemistry](https://research.preferred.jp/2017/12/chainer-chemistry-beta-release/)
　　[github](https://github.com/pfnet-research/chainer-chemistry)

・[mordred](https://pypi.org/project/mordred/)
　記述子計算ライブラリ
　　[分子記述子計算ソフトウェア mordred の開発](https://www.jstage.jst.go.jp/article/ciqs/2016/0/2016_Y4/_pdf/-char/ja)
　　[github](https://github.com/mordred-descriptor)

・[ChemPlot](https://pypi.org/project/chemplot/)
　記述子計算ライブラリ
　　[ChemPlotを使ったケミカルスペースの可視化](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjtqoiX9Y33AhVcQPUHHYoQAfYQFnoECAYQAQ&url=https%3A%2F%2Fdatadriven-rnd.com%2Fchemplot%2F&usg=AOvVaw16A1uaGdZBcDHJH7YQ56pm)
　　[github](https://github.com/mcsorkun/ChemPlot)

## 生化学
・[peptides](https://pypi.org/project/peptides/)
　ペプチドの特徴量化

・[stLearn](https://pypi.org/project/stLearn/)
　RNAの空間転写解析


## 科学計算
・[PhiFlow](https://pypi.org/project/phiflow/)
　　[Tensoflowで微分可能なPhiFlowを使ってみた](https://qiita.com/mygle/items/05bd29c03c869d9bca8e)

# 機械学習プロジェクト管理(実験管理、パイプライン管理)
　　[【MLOps入門】MLOps概要](https://qiita.com/nokoxxx1212/items/d2c36b0b22ab0da6c759)

・[MLFlow](https://pypi.org/project/mlflow/)
　　[「いつか使いたい！」と思っていた人のためのMLflowまとめ](https://qiita.com/c60evaporator/items/e0eb1a0c521d1310d95d)

・[Metaflow](https://pypi.org/project/metaflow/ml)
　　[Netflix開発のMLワークフローツール，Metaflowを試してみた【概要編】](https://qiita.com/tatamiya/items/925c818c8ba4e8cbb66e)


# 因果推論
・[lingam](https://pypi.org/project/lingam/)
　　[LiNGAM入門。気軽に因果関係を推定する (統計的因果探索)](https://qiita.com/tawash/items/73d570cdabebe863df67)

・[EconML](https://pypi.org/project/econml/)
　　[因果推論で推定した効果を可視化してみたい](https://qiita.com/yuko1658/items/714c5f283c0a035f9064)

・[dowhy](https://pypi.org/project/dowhy/)
　　[DoWhyによる統計的因果推論](https://qiita.com/kumalpha/items/a1177eb5af6168e8113d)

# 音響解析
・[openSMILE](https://pypi.org/project/opensmile/)
 　[github](https://audeering.github.io/opensmile-python/)
 　[openSMILEをPythonで使ってみた](https://qiita.com/YK-Orfeluna/items/4398bc56d8ef4726c20a)

・[ketos](https://pypi.org/project/ketos/)
 　[ketosを使って音響解析。音響解析、機械学習用ライブラリ](https://qiita.com/tetra9064/items/1a51787a3da0e70ed167)

# 関連手法
・[nmslib](https://pypi.org/project/nmslib/)
　　[近似最近傍探索ライブラリ比較](https://qiita.com/wasnot/items/20c4f30a529ae3ed5f52)

・[PyNNDescent](https://pypi.org/project/pynndescent/)
  　様々な近似最近傍探索

・[homcloud](https://pypi.org/project/homcloud/)
　　[パーシステントホモロジーでタンパク質の穴を見てみる](https://qiita.com/hkthirano/items/98cf702d04d80ec2d66f)

# ツール化（実行ファイル、GUI）
・[pyinstaller](https://pypi.org/project/pyinstaller/)
　実行ファイル（.exe）化：サイズ巨大、実行速度は遅い。作成は簡単
　scikit-learnやXGBoostをexe化するにはそれなりの工夫が必要。
　並列処理(joblib, multiprocessing)の利用にも注意が必要。

・[Nuitka](https://pypi.org/project/Nuitka/) 
　　[PyInstaller より圧倒的に優れている Nuitka の使い方とハマったポイント](https://blog.tsukumijima.net/article/python-nuitka-usage/)

・[py2exe](https://pypi.org/project/py2exe/)
　実行ファイル（.exe）化：サイズやや大きい、実行速度は早い。作成は少し手間

・tkinter
　標準ライブラリ。凝ったことはできないが、入出力、ファイル選択、画像表示程度であれば十分対応可能
・[PySimpleGUI](https://pypi.org/project/PySimpleGUI/)
　シンプルな記法で見た目もよいGUIが作れる。
　バージョン4までLGPL License
  バージョン5から有料
　　[PythonのGUIライブラリ「PySimpleGUI」を触ってみた](https://qiita.com/Droroba1990/items/7ffb4ecee6260a0308c8)

・[FreeSimpleGUI](https://pypi.org/project/FreeSimpleGUI/)
　PSGの代替ライブラリ。LGPL License

・[DearPyGui](https://pypi.org/project/dearpygui/)
　色々できるらしいが、見た目は普通。
　MIT License
　　[DearPyGuiをはじめる10行](https://qiita.com/Ninagawa_Izumi/items/7f905ee5fd4cbf523fec)

・[PyQt6](https://pypi.org/project/PyQt6/)
　GPL License
・[Kivy](https://pypi.org/project/Kivy/)
　MIT(>=1.7.2) else LGPL
・[wxPython](https://pypi.org/project/wxPython/)
　wxWidgets license
・[pip-licenses](https://pypi.org/project/pip-licenses/)
　ツール化、配布する際には使用ライブラリのライセンス確認を。

# その他　細かいところ

・[xlrd](https://pypi.org/project/xlrd/)
・[xlwt](https://pypi.org/project/xlwt/)
・[xlutils](https://pypi.org/project/xlutils/)
　エクセル関連

・[Cookiecutter](https://pypi.org/project/cookiecutter/)
　　[これでもう悩まない！機械学習のためのフォルダ構成テンプレートを使おう。](https://qiita.com/qmiyajun/items/5039b97a159b9f521e49)

・[cloudpickle](https://pypi.org/project/cloudpickle/)
　機械学習モデルの保存
　標準のpickleライブラリの拡張
　　[Pythonのシリアライズモジュール pickle marshal dill cloudpickle を比較する](https://qiita.com/kojisuganuma/items/e9b29e8e5ef5f5f289b2)

・[Swifter](https://pypi.org/project/swifter/)
　Pandasのapplyメソッド高速化
　[たった一文でPandasのapplyメソッドを高速化する](https://qiita.com/heisenberg_/items/fc4d2498f208a1d1426b)

・[chardet](https://pypi.org/project/chardet/)
　文字コードの判別。　エンコーディングの指定に悩むあなたに。
　[ファイルの文字コードの自動判別](https://qiita.com/koara-local/items/6b47f3156ca66f28b4ab)

# ライブラリ紹介サイト
　✓[The most comprehensive Repository of Python Libraries for Data Science
](https://analyticsindiamag.com/python-libraries-repository-for-data-science/)

　✓[machine-learning-collection](https://github.com/microsoft/machine-learning-collection)

　✓[best-of-ml-python](https://github.com/ml-tooling/best-of-ml-python)



# ディープラーニング関連
古豪
・Theano(モントリオール大学)：開発終了
・Caffe(カリフォルニア大学バークレー校)　Caffe2に移行
・Chainer(PFN)　開発終了

その他
・Caffe2(Facebook, Nvidia)：PyTorchにマージ
・Sonnet（Tensorflow派生）：開発中止
・cntk(Microsoft)：開発中止
・PaddlePaddle(Baidu)：開発中止（？）
・NNabla(Sony)
・Edward


### その他
　完成度は高くないが、機械学習手法を実装したpythonプログラム等

AdaptiveLasso(https://github.com/sammrai/mymodules/blob/master/reg/AdaptiveLasso.py)
AdaptiveLasso(https://github.com/AaronNHorvitz/AdaptiveLASSO/blob/master/adaptive_LASSO.py)