簡體   English   中英

SVM決策邊界繪圖出錯

[英]Error in SVM decision boundaries plotting

我試圖模仿我在Kaggle上發現的一個代碼,用於繪制SVM決策邊界。 我使用自己的數據集,包含608個數據和10個功能,共有2個類。 例如,這兩個類是你是否是diabetec。 我在這個鏈接上復制了代碼的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')

plot_decision_regions需要一個numpy數組,但x_train是一個pandas數據幀。 嘗試使用x_train.values ,即

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM