OctaveをJupyterで走らせたい
Octaveを使い始めた理由、感じたこと
前回VS CodeでOctaveを走らせました。
しかしながら、結局はVS Code上のTerminalで走らせない限り、CouseraのMachine Learning Classのコードは改変しなければなりませんでした。※ただしGNU Octave GUIよりはいい感じ。
今度はコードを改変すること前提で、Jupyter上でOctaveが走る環境を構築します。
試した環境
-
- Computer: Apple MacBook Air Late 2020 M1 (Apple Silicon ARM)
-
- OS: Mac OS Big Sur version 11.2.3
-
- Anaconda3: version 3
- GNU Octave: version 6.2.0
Anaconda3のインストール
GUIでサクッとインストール。
今回使う機能は、
-
- Anacondaのコマンドで仮想環境を構築する
- Anacondaをインストールするともれなく一緒にインストールされるJupyter-Lab
です。
仮想環境の構築
Octaveのための環境を構築します。
Python3.8の環境を構築しました。
$ conda create -n py38 python=3.8 anaconda
構築できたら、仮想環境に移動します。
$ source activate py38
仮想環境にoctave_kernelをインストール。
py38$ pip install octave_kernel
パッケージの作成。
py38$ ls /Users/username/opt/anaconda3/envs/py38/lib/python3.8/site-packages/ | grep octave_kernel
py38$ $ octave_kernel-0.32.0-py3.8.egg
Jupyter-Labの起動
py38$ jupyter-lab
カレントディレクトリをコードを実行したい環境にして、グラフ描画をしてみます。
Jupyter上でグラフを表示する
下記サイトを参考にしました。
Notebookの最初で次のコマンドを実行しておきます。
graphics_toolkit ("gnuplot");
次のようなデータを読み込ました。
-
- X1:1回目のテストの結果
-
- X2:2回目のテストの結果
- y:最終合否
X1X2y8395110230
下記のようなコードを書いて2系列データの散布図を描画しました。
%% Initialization
clear ; close all; clc
%% Load Data
% The first two columns contains the exam scores and the third column
% contains the label.
data = load('ex_data.txt');
X = data(:, [1, 2]); y = data(:, 3);
pos = find(y==1);
neg = find(y==0);
plot(X(pos,1),X(pos,2),'k+',X(neg,1),X(neg,2),'ko')
% Put some labels
hold on;
% Labels and Legend
xlabel('Exam 1 score')
ylabel('Exam 2 score')
無事描画できました。
