よっしーの私的空間

機械学習を中心に興味のあることについて更新します

機械学習

SHAPを使用した回帰問題の機械学習モデルの局所解釈方法

shapライブラリを使用して、回帰問題を解いた機械学習モデルの大局的解釈を行う。 1.SHAPとは SHAP(SHapley Additive exPlanations)は、機械学習モデルの局所的な解釈可能性を提供するためのフレームワークです。SHAPは、個々の特徴量が予測にどのように…

PDP/ICEを使用した回帰問題の機械学習モデルの大局的解釈方法

pdpboxライブラリを使用して、回帰問題を解いた機械学習モデルの大局的解釈を行う。 1.データセット 今回はsklearnのボストン住宅価格データセットを例に実装してみる。データセットの概要は以下の通り。 目的変数:ボストンの地域別住宅価格 説明変数:以…

Tensorflow-EfficientnetでGradCAMを実装してみた

前々から気になってたGrad-CAMを実装してみました。実装に当たって以下を参考としてます。 EfficientNet-Keras-GradCam-Visualization/inference_example.ipynb at master · lvisdd/EfficientNet-Keras-GradCam-Visualization · GitHub上記は訓練済みのEffic…

ImageDataGeneratorでデータ拡張してみた

ImageDataGeneratorを使って画像拡張を色々試してみます。使う画像は実家のワンコ(小次郎君)の写真です。 1.画像の水増し ① 回転(rotation_range) ② 横にずらす(width_shift_range) ③ 縦にずらす(height_shift_range) ④ 明るさを変える(brightnes…

機械学習における不均衡データへの対処方法(Over Sampling, Under Sampling)

機械学習における不均衡データへの対処方法としてアンダーサンプリングやオーバーサンプリングについてまとめます。不均衡データとは目的変数のクラスの度数が極端に偏っているデータのことです。今回はKaggleで公開されている「Credit Card Fraud Detection…

LightGBMでOptunaを使用するときの再現性確保について

Optunaとはハイパーパラメータチューニングを自動で実施してくれる大変便利なフレームワークで、LightGBMを使う人は良く使うんじゃないかなと思います。今回はそんなOptunaを使用するときの再現性の確保方法についてまとめます。私が使用しているパッケージ…

TensorFlowとPytorchにおける画像のデータ構造の違いと変換方法について

本記事では以下についてまとめます。 TensorFlowとPytorchにおける画像のデータ構造の違いについて解説 データ構造の相互に変換する方法について解説 1.TensorFlowとPytorchの画像のデータ構造の違い 1.1.概要 1.2.具体例を使ってデータ構造の違い…

Pythonで株の銘柄コード一覧を取得する方法

Python上で銘柄コード一覧を取得して、Pandas.DataFrameに格納する方法についてまとめます。手っ取り早くソースコードを見たい方は本記事最下段の参考まで飛んでください。 1.概要 2.JPXから銘柄コード一覧をダウンロード 3.ダウンロードしたExcelをPa…

TensorflowによるBiT(Big Transfer)の実装

2019年にGoogle Brainから発表された画像認識モデルBiT(Big Transfer)をファインチューニングする方法についてまとめます。BiTにかかわる解説は以下が良くまとまっていました。 パラメータ数10億!最新の巨大画像認識モデル「BiT」爆誕 & 解説 - Qiita簡単…

横持ちデータを縦持ちデータに変換する方法(Pandas)

PythonのPandasで横持ちデータを縦持ちにデータに変換する方法についてまとめます。 縦持ちデータを横持ちデータに変換する方法については過去記事にまとめています。 1.実施内容(概要) Pandasの以下のような横持ちデータを 氏名 数学 国語 英語 ドイツ…

機械学習による株価予測(LightGBM)

LightGBMを使用して株価予測をしていきたいと思います。ソースの全文は本記事の末尾に載せました。忙しい人は1.概要と末尾のソースで十分かもしれません。 1.概要 1.1.予測対象 1.2.説明変数 1.3.分析期間 1.4.予測結果 2.株価データ…

縦持ちデータを横持ちデータに変換する方法(Pandas)

データを縦持ちから横持ちに変換する方法について解説します。 横持ちデータを縦持ちデータに変換する方法についてはこちらでまとめています。 1.そもそも縦持ちと横持ちとは 縦持ちとは縦に長いデータで以下のようなデータのことです。 氏名 科目 点数 A…

ViTモデルロード時のエラー(ValueError: Unknown layer: ClassToken)について

ViT(Vision Transformer)を使用して学習したモデルをロードしようとしたところ、(ValueError: Unknown layer: ClassToken)というエラーが出ました。本記事ではこのエラーに対する対処方法についてまとめました。

ViTとEfficientnetをCIFAR-10で試してみた

ViT(Vision Transformer)とEfficientnetをCIFAR-10で試してみて、分類精度や処理速度の違い等を比較しました。

TensorflowによるEfficientNetの実装

EfficientNetの概要を紹介するとともに、TensorflowによるEfficientNetの実装方法についてまとめました。qubvel/efficientnet(tfkeras)を使用しています。

TensorflowによるViT(Vision Transformer)の実装

CNNに取って代わると言われている画像分析手法、ViT(Vision Transformer)の実装方法についてまとめました。vit-kerasを使用しています。また、ViTモデルの種類等もまとめました。

Tensorflowによる再現性の確保について(GPUを使用する場合)

Tensorflowによる再現性の確保方法についてまとめました。とくにGPUを使用する場合を想定しています。

マルチGPUによるTensorFlowの学習

複数のGPUを使用してTensorflowを学習する方法についてまとめます。 1. Mirrored Strategy Mirrored Strategyとは、Tensor Flowで作成したモデルを複数のGPU、TPUを使用して学習するためのAPIです。Mirrored Strategyの公式ページに細かく解説が載っています…

AWSでJupyter Notebookサーバを起動してクライアントPC(Windows)からアクセスする方法

AWSでJupyter Notebookを起動して自宅のWindowsPCからアクセスする方法についてまとめました。EC2インスタンスの作成方法から解説しています。機械学習用を想定しています。

KerasのCallback:ModelCheckpoint使用時のエラー「Error! hdf5file is not UTF-8 encoded」について

KerasのCallBack:ModelCheckpointを使ったところ「Error! hdf5file is not UTF-8 encoded」というエラーにぶつかりました。結論ですが、無視でOKです。私みたいに余計な調べものをする人が減ることを祈ります。 KerasにはModelCheckpointというクラスが用意…

Keras分析結果の再現性確保について

Kerasの再現性確保方法についてまとめます。主にKerasの公式ドキュメントを参考にしていますが、一部注意点があるので、その点を中心に解説します。 1.環境 GPU:GeForce GTX 1070 Python:3.7.3 Keras:2.4.3 tensorflow-gpu:2.4.0再現性の確保の仕方に影響…

"Blas GEMM launch failed"の対処法

Kerasを使った株価予測を行っているのですが、いつも使っているコードから突然"Blas GEMM launch failed"というエラーが出ました。 色々調べて自己解決できたので、備忘録を兼ねてブログに残します。 1.環境 GPU:GeForce GTX 1070 Python:3.7.3 Keras:2.3.…