非线性决策边界的 SVM 图
SVM plot for a non-linear decision boundary
我正在尝试绘制分隔两个 类 癌症和非癌症的 SVM 决策边界。但是,它显示的情节与我想要的相去甚远。我希望它看起来像这样:
或任何显示点分散的东西。这是我的代码:
import numpy as np
import pandas as pd
from sklearn import svm
from mlxtend.plotting import plot_decision_regions
import matplotlib.pyplot as plt
autism = pd.read_csv('predictions.csv')
# Fit Support Vector Machine Classifier
X = autism[['TARGET','Predictions']]
y = autism['Predictions']
clf = svm.SVC(C=1.0, kernel='rbf', gamma=0.8)
clf.fit(X.values, y.values)
# Plot Decision Region using mlxtend's awesome plotting function
plot_decision_regions(X=X.values,
y=y.values,
clf=clf,
legend=2)
# Update plot object with X/Y axis labels and Figure Title
plt.xlabel(X.columns[0], size=14)
plt.ylabel(X.columns[1], size=14)
plt.title('SVM Decision Region Boundary', size=16)
plt.show()
但我得到了一个看起来很奇怪的情节:
您可以在此处找到 csv 文件predictions.csv
你听起来有点困惑...
你的 predictions.csv
看起来像:
TARGET Predictions
1 0
0 0
0 0
0 0
而且,正如我猜列名暗示的那样,它包含基本事实 (TARGET
) 和某些 (?) 模型的 Predictions
已经 运行.
鉴于此,您在发布的代码中所做的事情完全 毫无意义 :您将这两列用作 X
中的功能,以便预测你的y
,这是......完全相同的列之一(Predictions
),已经包含在你的X
......
您的绘图看起来 "strange" 只是因为您绘制的是 不是 您的数据点,而 X
和 y
数据是您这里显示的是不是应该用于拟合分类器的数据。
我更加困惑,因为在你的链接回购中,你的脚本中确实有正确的程序:
autism = pd.read_csv('10-features-uns.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)
即从 10-features-uns.csv
读取你的特征和标签,当然 而不是 predictions.csv
,因为你在这里莫名其妙地试图做...
我正在尝试绘制分隔两个 类 癌症和非癌症的 SVM 决策边界。但是,它显示的情节与我想要的相去甚远。我希望它看起来像这样:
import numpy as np
import pandas as pd
from sklearn import svm
from mlxtend.plotting import plot_decision_regions
import matplotlib.pyplot as plt
autism = pd.read_csv('predictions.csv')
# Fit Support Vector Machine Classifier
X = autism[['TARGET','Predictions']]
y = autism['Predictions']
clf = svm.SVC(C=1.0, kernel='rbf', gamma=0.8)
clf.fit(X.values, y.values)
# Plot Decision Region using mlxtend's awesome plotting function
plot_decision_regions(X=X.values,
y=y.values,
clf=clf,
legend=2)
# Update plot object with X/Y axis labels and Figure Title
plt.xlabel(X.columns[0], size=14)
plt.ylabel(X.columns[1], size=14)
plt.title('SVM Decision Region Boundary', size=16)
plt.show()
但我得到了一个看起来很奇怪的情节:
您可以在此处找到 csv 文件predictions.csv
你听起来有点困惑...
你的 predictions.csv
看起来像:
TARGET Predictions
1 0
0 0
0 0
0 0
而且,正如我猜列名暗示的那样,它包含基本事实 (TARGET
) 和某些 (?) 模型的 Predictions
已经 运行.
鉴于此,您在发布的代码中所做的事情完全 毫无意义 :您将这两列用作 X
中的功能,以便预测你的y
,这是......完全相同的列之一(Predictions
),已经包含在你的X
......
您的绘图看起来 "strange" 只是因为您绘制的是 不是 您的数据点,而 X
和 y
数据是您这里显示的是不是应该用于拟合分类器的数据。
我更加困惑,因为在你的链接回购中,你的脚本中确实有正确的程序:
autism = pd.read_csv('10-features-uns.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)
即从 10-features-uns.csv
读取你的特征和标签,当然 而不是 predictions.csv
,因为你在这里莫名其妙地试图做...