Pythonで機械学習等のプログラミングを行う場合に使用するライブラリの使用方法についてまとめます。具体的にはNumPy、pandas、matplotlib、scikit-learn、TensorFlow/Keras、Jupyter Notebookといったコンテンツを扱っています。※コンテンツについては随時追加中です。
以下の目次から気になる項目を選択していただければ、該当ページへのリンクがありますので、そこから該当ページに移動することができます。
NumPy
Pythonで機械学習というと必ずあがるモジュールが「NumPy」です。NumPyは大量のデータに対して高速にかつ効率的に数値計算を行うことができます。NumPyの各種使い方について紹介します。
- 配列(ndarray)の作成方法 ~array, zeros, ones, full, arange, random, randint, randn, normal, linspace, eye, empty~
- 配列(ndarray)の属性情報の確認方法 ~ dtype, size, shape, ndim, itemsize, nbytes ~
- 配列(ndarray)の要素を参照する方法
- 配列(ndarray)の形状を変更する方法 ~ reshape ~
- 配列(ndarray)の結合方法 ~ concatenate, vstack, hstack ~
- 配列(ndarray)の分割方法 ~ split, vsplit, hsplit ~
- 配列(ndarray)をソートする方法 ~ sort, argsort ~
- numpyのndarrayとPython組み込み型のlistとの違い ~なぜ分析でndarrayを使うのか~
- 「配列(ndarray)のスライス」と「Python組み込みのlistのスライス」の違い
- ユニバーサル関数(ufuncs)を用いた配列(ndarray)の計算
- 集約関数を用いた計算 ~ sum, prod, mean, median, std, var, max, min, argmax, argmin, any, all ~
- ブロードキャスト(broadcast)の基本
- ファンシーインデックス(Fancy Indexing)の基本
pandas
Pythonでの機械学習でNumPyと並んであがるモジュールが「pandas」です。pandasのデータ構造は、分析前の前処理など各種データの操作が容易にできるため分析には必須のモジュールです。pandasの各種使い方について紹介します。
- Seriesの作成方法
- Seriesのデータ選択方法
- DataFrameの作成方法
- DataFrameのデータ選択方法
- 欠損値(NaN、None)の扱いと処理方法 ~ isnull, notnull, dropna, fillna ~
- DataFrameを結合する方法 ~ merge, join ~
- DataFrameをgroupbyでグループ化して集約する方法
- DataFrameのpovot_tableでピボットテーブルを扱う
- DataFrameによるcsvファイルの入出力 ~read_csv, to_csv~
- Excelファイルを読み込む方法 ~ read_excel ~
- DataFrameで日付・時間の列を処理する方法 ~to_datetime~
- Indexの基本
matplotlib
データ分析の際には結果をグラフなどで可視化するといったことをよく行います。Pythonで簡単にグラフ作成などの可視化ができるモジュールが「matplotlib」です。matplotlibの各種使い方について紹介します。
scikit-learn
Pythonでの機械学習ライブラリとしてよく知られているのが「scikit-learn」です。scikit-learnの各種使い方について紹介します。
- LinearRegressionで線形回帰をする方法
- 線形回帰の正則化手法 ~ラッソ(Lasso)回帰、リッジ(Ridge)回帰、ElasticNet回帰~
- LogisticRegressionでロジスティック回帰をする方法
- k近傍法(k-NN)を用いたデータ分類方法
- サポートベクターマシン(SVM)の使用方法
- PCAで主成分分析をする方法
- KernelPCAでカーネル主成分分析をする方法
- 決定木(DecisionTree)とランダムフォレスト(RandomForest)の使用方法
- KMeansでk-means法によるクラスタリングをする方法
- DBSCANでクラスタリングする方法
- グリッドサーチとランダムサーチでハイパーパラメータをチューニングする方法(GridSearchCV, RandomizedSearchCV)
TensorFlow/Keras
Pythonでのディープラーニングライブラリとしているのが「TensorFlow」「Keras」です。KerasはTensorFlowの高水準APIという位置づけで簡単にモデル構築できるものになっています。TensorFlow/Kerasの各種使い方について紹介します。
【TensorFlowやKerasの基本】
- 深層学習ライブラリ TensorFlow、Kerasの概要
- Keras APIでモデルを構築する色々な方法と違い(Sequential API, Functional API, Subclassing API)
- Tensor(テンソル)の作成方法
- Tensor情報の確認方法
- Tensorの要素を参照する方法
- Tensorのシャッフル方法
- Tensorの型変換方法
- Tensorの形状を変更する方法
- Tensorの軸を拡張する方法
- Tensorを転置する方法
- Tensorを用いた数値計算
- Tensorの行列積を計算する方法
- 集約関数を用いたTensorの計算
- Tensorの形状でサイズ1の次元を削除する方法
- one-hotエンコーディングの方法
- GradientTapeの自動微分による勾配の計算方法
【各種ディープラーニング手法の実装】
- CNN(畳み込みニューラルネットワーク)による画像分類の基本
- RNN(リカレントニューラルネットワーク)による時系列データ予測の基本
- 訓練済みモデルVGG16での転移学習
- 自己符号化器(AutoEncoder)の実装
- 変分自己符号化器(VAE:VariationalAutoEncoder)の実装
- DCGAN(Deep Convolutional GAN)の実装
【その他 関連情報(数学など)】
- ニューラルネットワークの活性化関数まとめ (sigmoid, ReLU, Leaky ReLU, swish, h-swish, softmax)
- 正規分布間のKLダイバージェンス(Kullback-Leibler divergence)の導出
- L1正則化とL2正則化の概要と効果
- 乱数のシードで42をよく使うのはなぜか?
※コンテンツ随時追加中
Jupyter Notebook
ブラウザ上でPythonプログラムを簡単に編集、実行できる環境である「Jupyter Notebook」のインストールや使い方について紹介します。
データ分析関連資格学習
データ分析関連の資格に関わる記事を紹介します。