LoginSignup
0
1

More than 3 years have passed since last update.

CVXOPTのimportの経緯

Last updated at Posted at 2019-05-14

こちらを実行したい

授業で講談社の「機械学習のための連続最適化」を輪講していて、14章のSVMの理解を深めたいと考え検索していた。
何件か理論とその実装の記事が見つかりコードも記載してあった。今回は線形SVMの理論と実装にあるコードを実行する。

出たエラー

最適化問題を解くのに便利なcvxoptライブラリについてimportがまだだった。
Q = cvxopt.matrix(_Q)
p = cvxopt.matrix(-np.ones(N))
G = cvxopt.matrix(-np.eye(N))
h = cvxopt.matrix(np.zeros(N))
A = cvxopt.matrix(y[np.newaxis], (1, N), 'd')
b = cvxopt.matrix(0.0)
solution = cvxopt.solvers.qp(Q, p, G, h, A, b)

jupyterを起動し貼っつけてみると以下のように出る。

ModuleNotFoundError Traceback (most recent call last)
in ()
1 import numpy as np
2 import sys
----> 3 import cvxopt
4 import matplotlib.pyplot as plt
5 import sklearn.datasets
ModuleNotFoundError: No module named 'cvxopt'

対処

対処はこちらを参考にさせていただいた。凄くシンプル。検索は[No module named]で。
cvxoptのインストール
ちなみにModuleNotFoundErrorで検索するとModuleNotFoundError解決方法といった記事が紹介されたが今回は関係なさそう。

結果

AnacondaでもJupyterでも動作確認でき、記事と同じ実行結果となった。一安心。
pcost dcost gap pres dres
0: -8.2406e+00 -1.4586e+01 3e+02 1e+01 2e+00
1: -7.6844e+00 -2.4040e+00 3e+01 2e+00 2e-01
2: -4.7478e-01 -5.7972e-01 1e+00 5e-02 6e-03
3: -3.5402e-01 -4.3247e-01 9e-02 7e-04 8e-05
4: -4.1264e-01 -4.3173e-01 2e-02 8e-05 1e-05
5: -4.2931e-01 -4.2951e-01 2e-04 9e-07 1e-07
6: -4.2949e-01 -4.2949e-01 2e-06 9e-09 1e-09
7: -4.2949e-01 -4.2949e-01 2e-08 9e-11 1e-11
Optimal solution found.
svm02.png

感想

二次計画問題について先に学習していたため、今まで学んでいたことにつながっていくのが面白いと思う。以下などを参照しながら最適化アルゴリズムの実装につなげたい。
機械学習の数理 Advent Calendar 2018
Pythonの数理最適化用ライブラリCVXOPTの使用例

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1