【问题标题】:SVM plot for a non-linear decision boundary非线性决策边界的 SVM 图
【发布时间】:2019-09-10 09:48:41
【问题描述】:

我正在尝试绘制 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

【问题讨论】:

  • 请看答案;如果您在输入文件中犯了错误,请更新问题以更改它 - 只需接受答案(请参阅What should I do when someone answers my question?)并打开一个问题,如果您还有其他问题...
  • @desertnaut 不,我在输入文件中没有出错。我故意想试试那个文件(predictions.csv),因为我无法使用我的仓库中的那个文件。但如果你能在评论中回答我的问题,我会试试看?
  • 如前所述,您在这里尝试做的事情根本没有任何意义。我已经回复了你的评论

标签: python python-3.x machine-learning scikit-learn svm


【解决方案1】:

你听起来有点困惑......

你的predictions.csv 看起来像:

TARGET  Predictions
     1  0
     0  0
     0  0
     0  0

而且,正如我猜列名所暗示的那样,它包含基本事实 (TARGET) 和一些 (?) 模型的 Predictions 已经运行。

鉴于此,您在发布的代码中所做的操作绝对毫无意义:您将这两列用作X 中的特征,以预测您的y,这是...正是这些相同的列之一 (Predictions),已经包含在您的 X...

您的绘图看起来“奇怪”只是因为您绘制的内容不是您的数据点,而您在此处显示的 Xy 数据不是应该用于拟合分类器的数据。

我更加困惑,因为在您的链接仓库中,您的脚本中确实有正确的程序:

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 读取,因为您在这里莫名其妙地尝试这样做......

【讨论】:

  • 是的,您对列名是正确的。所以..你想说我​​应该使用10-features-uns.csv 数据来代替我上面的问题并在我的回购中使用其他脚本?
  • @Falady 没错!
猜你喜欢
  • 2016-07-13
  • 1970-01-01
  • 2013-12-13
  • 2014-07-10
  • 2021-07-30
  • 2018-02-04
  • 2019-09-07
  • 2017-09-20
  • 2016-06-13
相关资源
最近更新 更多