質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

778閲覧

matlabのsvmclassifyをpythonで実装

mrhonen

総合スコア11

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/25 09:03

編集2020/06/25 22:33

matlabのプログラムをpythonへ書き換えています。
matlabにおいてmat形式で保存されたモデルをロードし、svmclassify関数で分類を行っているのですが、pythonにおけるsvmで同様にmatファイル形式のモデルを利用して分類を行うことは可能でしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

既に削除されているsvmclassify関数でしたがsvmclassify.mで調べたところ以下のページにコードが出ていましたので、それをpythonに書き換えることで解決しました。
https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/62061/versions/1/previews/msvm/svmclassify.m/index.html

投稿2020/06/28 03:48

mrhonen

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「python mat 読み込み」で検索すると、下記のようにいくつか引っかかります。
ndarrayに変換できているようなので、そこまで行けば後は自由にPythonのSVM系モジュールが利用できます。
Pythonで.matファイルを読む

matlabがないのでscipyでデータ作成して読み込むという感じで試してみました。

python3

1import numpy as np 2import scipy.io 3 4# データ作成 5data = np.arange(10) 6scipy.io.savemat("test.mat", {'name':data}) 7 8# ここから読み込み 9data = scipy.io.loadmat("test.mat") 10print(data) 11""" 12{'__header__': b'MATLAB 5.0 MAT-file Platform: nt, Created on: Fri Jun 26 11:34:31 2020', '__version__': '1.0', '__globals__': [], 'name': array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])} 13""" 14 15print(data["name"]) # "name"にarrayが入っていることがわかったので、こうするとarrayがとれる 16""" 17[[0 1 2 3 4 5 6 7 8 9]] 18"""

投稿2020/06/25 23:02

編集2020/06/26 02:39
jeanbiego

総合スコア3966

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mrhonen

2020/06/26 02:30

ありがとうございます。 matファイルをndarrayとして読み込みましたが、ndarrayの挙動がおかしいです。 aという変数に読み込んだとして、 print(a)では [ 4 47 52 11 3 41 39 17 53 45 6 9 51 29 49 1 46 35 40 23 10 5 50 2 27 44 33 48 12 43] となりますが、 print(a.shape) → () print(len(a)) → len() of unsized object print(a.size) → 1 print(a.ndim) → 0 となり、インデックスで要素を指定すると、 print(a[0]) → too many indices for array となってしまいます。
jeanbiego

2020/06/26 02:32

type(a)として numpy.ndarrayと出ますか?
jeanbiego

2020/06/26 02:39

回答欄にコード追加しました
guest

0

名前からしてサポートベクターマシン (SVM) を使った分類器のことだと思うので、Python で SVM 分類をやるなら以下になるのではないでしょうか。

投稿2020/06/25 09:06

編集2020/06/25 09:07
tiitoi

総合スコア21960

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問