Ошибка в построении границ решений SVM - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь подражать этому одному коду, который я нашел в Kaggle при построении границ решений SVM. Я использую свой собственный набор данных с 608 данными и 10 функциями, с 2 классами. Например, эти 2 класса, независимо от того, являетесь ли вы диабетом или нет. Я скопировал часть кода SVM по этой ссылке (которую вы можете найти, прокручивая ее внизу вниз), где упоминалось о визуализации границ решения. Вот ссылка на мою ссылку .

Однако я получаю эту ошибку, говоря, что «X должен быть массивом Numpy». Может кто-нибудь объяснить мне, что это значит?

Код ниже - то, что я сделал. Обратите внимание, что мой набор данных был предварительно нормализован. Кроме того, я делю данные на соотношение 70:30.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.pyplot as show
import matplotlib as cm
import matplotlib.colors as colors
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn import svm
from mlxtend.plotting import plot_decision_regions


autism = pd.read_csv('diabetec.csv')

x = autism.drop(['TARGET'], axis = 1)  
y = autism['TARGET']
x_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.30, random_state=1)

t = np.array(y_train)
t = t.astype(np.integer)
clf_svm = SVC(C=1.3, gamma=0.8, kernel='rbf')
clf_svm.fit(x_train, t)
plt.figure(figsize=[15,10])
plot_decision_regions(x_train, t, clf = clf_svm, hide_spines = False, colors = 'purple,limegreen', markers = ['x','o'])
plt.title('Support Vector Machine')

1 Ответ

0 голосов
/ 17 апреля 2019

plot_decision_regions ожидает массив numpy, но x_train - это кадр данных pandas.Попробуйте с x_train.values, т.е.

plot_decision_regions(x_train.values, t, clf = clf_svm, ...
...