Helve’s Python memo

Pythonを使った機械学習やデータ分析の備忘録

pandas.Seriesのcorrメソッドで時系列データの相関係数を求める際の注意点

pandasで1次元配列を扱うSeriesクラスには、他のSeriesとの相関係数を求めるためのcorrメソッドが用意されている。 しかし、indexが時系列であるSeries同士で相関係数を求めようとすると、同じ時刻の値同士で相関を計算してしまう。 これを避けるためには、s…

PyTorchの自動微分で勾配を求める

ディープラーニングのライブラリの1つであるPyTorchには、自動微分の機能が実装されている。自動微分を使うと、関数の勾配ベクトルを自動的に求めることができるので、勾配を使った最適化手法を容易に行える。 本記事では、PyTorchのtensorクラスについて簡…

KerasのステートフルRNNで学習を高速化する

KerasのステートフルRNNおよび、Kerasのコードについて解説する。ステートフルRNNは、学習バッチ間で内部状態を保持するため、学習を高速化できる。

Chainerの自動微分で勾配を求める(補足)

ChainerのVariableクラスを使った自動微分に関する記事である。前回記事の補足として、backwardメソッドを使用するときの注意点と、chainer.grad関数を使った自動微分の計算について述べる。backwardメソッドを使用する度に勾配が加算されるため、2回以上使…

Chainerの自動微分で勾配を求める

ディープラーニングのライブラリの1つであるChainerには、自動微分の機能が実装されている。 自動微分を使うと、関数の勾配ベクトルを自動的に求めることができるので、勾配を使った最適化手法を容易に行える。 本記事では、ChainerのVariableクラスについて…

直線探索を使った最急降下法をPythonで実装

「工学基礎 最適化とその応用」を読んだので、最急降下法と直線探索への理解を深めるため、Pythonで実装した。 本記事では、最急降下法と、Armijo条件と呼ばれる直線探索手法について簡単に解説する。目次 はじめに 最急降下法 直線探索 Pythonによる実装 最…

LLE (Locally Linear Embedding) による非線形データの次元削減

LLE (Locally Linear Embedding) は、非線形データを対象とする次元削減手法の1つである。 本記事では、LLEのアルゴリズムについて解説する。目次 はじめに 多様体 LLEアルゴリズム 局所的な関係の線形モデル化 関係を維持した次元削減 参考

多重共線性(マルチコ)の直観的説明

説明変数が2つ以上ある回帰モデル(重回帰モデル)を作成するとき、相関が強い説明変数があると、推定結果が不安定になる。 この問題は多重共線性、あるいは英語のmulti-collinearityからマルチコと呼ばれる。 本記事では、多重共線性が生じる原因について、…

BaggingClassifierの使用例

前回の記事でscikit-learnのBaggingClassifierクラスについて解説したため、本記事では実際の使用例を示す。 基本的な使い方と、分類確率を出力する方法、warm startによる追加学習について示す。前回の記事: scikit-learnのBaggingClassifierでバギングす…

scikit-learnのBaggingClassifierでバギングする

scikit-learnには、アンサンブル学習を行うためのBaggingClassifierが実装されている。 本記事では、BaggingClassifierを用いた学習(バギング、ペースティング、ランダムサブスペース、ランダムパッチ)について解説する。目次 環境 アンサンブル学習 Baggi…

NumPyのemptyで空(長さ0)の配列を作る

NumPyのempty関数を用いて、np.empty(0), np.empty([0, 0]), ...とすることで、空の(要素を持たない)任意の次元の配列を作成できる。 本記事では、空の配列の作り方、使い方について簡単に考察する。目次 環境 numpy.emptyについて 空の配列の生成 空の配…

Kerasの時系列予測でgeneratorを使って大容量データを扱う 後編

前回の記事で、KerasのRecurrentレイヤに入力するデータを生成するgeneratorクラスの作り方を述べた。 本記事では、作成したgeneratorクラスを使った時系列予測の方法を解説する。目次 環境 学習データ 学習 予測 参考

Kerasの時系列予測でgeneratorを使って大容量データを扱う 前編

KerasのRecurrentレイヤを使った時系列予測において、ジェネレータ (generator) を使って逐次的にデータを出力することで、大容量のデータを扱う場合でもメモリが不足しないようにする。本記事では、Recurrentレイヤに入力するためのデータを生成するgenerat…

Windows10のPowerShellでAnaconda Pythonを使う方法

Windows10のPowerShellでAnaconda Pythonを使えるようになるまでに苦労したので、備忘録として残す。 PowerShellが起動時に読み込むスクリプトに、Anacondaが使えるようになる設定を記述しておく。 なお、本記事の設定に管理者権限は不要である。目次 環境 …

Plotlyのインタラクティブなグラフをブログ等に埋め込む

Plotlyで生成したインタラクティブなグラフを、ブログ等のWebページに埋め込む方法を説明する。

エンベデッドシステムスペシャリスト試験 2018年午後Iの計算問題解説

情報処理技術者試験の高度試験の1つである、エンベデッドシステムスペシャリスト試験 (ES) の2018年午後Iの計算問題を解説する。目次 はじめに 問1(ドローン) 問2(冠水防止システム) 問3(トラック隊列走行システム) 参考

エンベデッドシステムスペシャリスト試験 2017年午後IIの計算問題解説

情報処理技術者試験の高度試験の1つである、エンベデッドシステムスペシャリスト試験 (ES) の2017年午後IIの計算問題を解説する。

エンベデッドシステムスペシャリスト試験 2017年午後Iの計算問題解説

情報処理技術者試験の高度試験の1つである、エンベデッドシステムスペシャリスト試験 (ES) の2017年午後1の計算問題を解説する。

Scikit-learnの主成分分析 (PCA)

Pythonの機械学習ライブラリScikit-learnに実装されている主成分分析のクラスを調べた。本記事では、PCAクラスのパラメータ、属性とメソッドについて解説する。

Scikit-learnの正則化付き重回帰モデル

Pythonの機械学習ライブラリScikit-learnに実装されている重回帰モデルを調べた。通常の線形回帰に、回帰係数を正則化するRidge回帰、Lasso回帰、Elastic Netを加えた4種類の回帰モデルの基本的なロジックと使用方法をまとめた。

Pythonのf-stringsで文字列を扱う

Python 3.6以降で実装されたf-stringsと呼ばれる数字や文字列の表記法について、学術計算で最低限必要な範囲でまとめた。 本記事では、整数・小数の桁数指定や、指数表示を扱う。

Scikit-learnでデータのスケール変換(前処理)する

Pythonの機械学習用ライブラリScikit-learnに実装されている、スケール変換について調べた。スケール変換を行うクラス3つのパラメータとメソッドをまとめ、各変換の結果を比較した。

<matplotlib> スタイルによるグラフの見た目の変更

matplotlibにはスタイルと呼ばれる、グラフの見た目を変更できるプリセットが用意されている。スタイルを活用することで、グラフの見た目を簡単に変更できる。

<Keras> RNN, GRU, LSTMによる時系列予測

KerasのRNN, GRU, LSTMレイヤを使って時系列データを学習させる。 Kerasを初めて使われる方は、以下の記事を参考にして下さい。

<Keras> ニューラルネットワークによる正弦波の回帰【入門】

以前、Chainerの入門記事を書いたが、実装が容易なkerasを試してみた。ニューラルネットワーク (NN) による回帰の実装例として、sin波を学習させる。

<Tensorflow> Nehalem以前のPCへの導入

ディープラーニングのライブラリKerasを導入した。 このとき、Kerasがバックエンドで使用するTensorflowのインストールにやや詰まったため、備忘録として手順を残す。目次 環境 Tensorflowのインストール Kerasのインストール

<Scikit-learn> ランダムフォレスト回帰のfeature_importances_の定義

Scikit-learnの回帰木やランダムフォレスト回帰のクラスには、 Feature Importances (FI) という説明変数の重要度を示す指標があるが、 導出について公式のリファレンスに書かれていなかったため調べた。 結論から述べると、各説明変数による予測誤差の二乗…

<matplotlib> オブジェクト指向なカラーバーの表示

matplotlibライブラリで作成したヒートマップや等高線図のカラーバーを、オブジェクト指向スタイルで調整する。 オブジェクト指向によるグラフの描画は、複数のグラフをプロットしたときに、どのグラフの描画を調整しているか分かりやすいという利点がある。

<matplotlib> オブジェクト指向な対数軸プロット

matplotlibライブラリで作成したグラフを、オブジェクト指向スタイルで調整する。 オブジェクト指向によるグラフの描画は、複数のグラフをプロットしたときに、どのグラフの描画を調整しているか分かりやすいという利点がある。

<Chainer> Iteratorクラスによる学習用ミニバッチ作成

以前の記事で、ChainerのChainクラスとOptimizerを使って最小限のニューラルネットワーク (NN) を実装した(以下のリンクを参照)。 今回は、データセットから学習用ミニバッチを作成してくれるIteratorクラスの動作を確認する。helve-python.hatenablog.jp…

※Adblockが有効の場合やモバイル版ページでは、シェアボタンをクリックできません