0
我通过在Jupyter笔记本中使用matplotlib和mlxtend从Iris数据集制作了SVM图。我试图让物种名称对剧情的传说,而不是0,1和2。到目前为止,我的代码是:将图例名称添加到matplotlib中的SVM图中
我不能。
from sklearn import svm
from mlxtend.plotting import plot_decision_regions
X = iris[['SepalLengthCm', 'SepalWidthCm']]
y = iris['SpecieID']
clf = svm.SVC(decision_function_shape = 'ovo')
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)
在该地块
和结果找到如何用物种名称(Iris-setosa,Iris-versicolor和Iris-virginica)取代0,1和2。
import pandas as pd
iris = pd.read_csv("Iris.csv") # the iris dataset is now a Pandas DataFrame
iris = iris.assign(SepalRatio = iris['SepalLengthCm']/iris['SepalWidthCm']).assign(PetalRatio = iris['PetalLengthCm']/iris['PetalWidthCm']).assign(SepalMultiplied = iris['SepalLengthCm'] * iris['SepalWidthCm']).assign(PetalMultiplied = iris['PetalLengthCm'] * iris['PetalWidthCm'])
d = {"Iris-setosa" : 0, "Iris-versicolor": 1, "Iris-virginica": 2}
iris['SpecieID'] = iris['Species'].map(d).fillna(-1)
如何确保图例中出现的手柄的顺序与标签的顺序相同? – ImportanceOfBeingErnest
@ImportanceOfBeingErnest对不起,我没有想到我更新了答案。 – Dark