decision_function_shape="ovo") clf.fit(X, y) plot_decision_boundary(lambda x: clf.predict(x)) plt.title("SVM-Nonlinearity") plt.show() #预测测试集数据 y_train_pred = svmmodel.predict(X_train) print("SVM模型预测训练集300例
然后使用填充轮廓图(plt.contourf)可视化决策边界,并将原始数据点覆盖在图上以供参考。 # Plot decision boundary of Linear SVMZ_linear=clf_linear.predict(np.c_[xx.ravel(),yy.ravel()])Z_linear=Z_linear.reshape(xx.shape)plt.contourf(xx,yy,Z_linear,cmap=plt.cm.Paired,alpha=0.8)plt.scatter(X[...
svm_vis.fit(X_train_vis, y_train_vis) plot_decision_boundary(X_test_vis, y_test_vis, svm_vis) 八、调整超参数 SVM模型有许多超参数可以调整,如惩罚参数C、核函数类型(线性、多项式、径向基函数等)。通过网格搜索和交叉验证,可以找到最优的超参数组合。 from sklearn.model_selection import GridSearch...
最后,通过plt.show()函数显示整个图形。同时,我们也定义了一个名为plot_decision_boundary_3d的函数,该函数接受分类器、测试数据和测试标签作为输入,并用于绘制三维空间中的决策边界。现在,让我们期待并欣赏最终的可视化结果吧!从上述结果中,我们可以清晰地看到支持向量机在三维空间中成功地将两类点进行了正确分割...
P = model.decision_function(xy).reshape(X.shape) # plot decision boundary and margins ax.contour(X, Y, P, colors='k', levels=[-1, 0, 1], alpha=0.5, linestyles=['--','-','--']) # 生成等高线 -- # plot support vectors ...
plot_decision_regions(X_train, y_train, classifier=svm_model) plt.title('SVM Decision Boundary (Training set)') plt.xlabel('Feature 1') plt.ylabel('Feature 2') plt.legend(loc='upper left') plt.show() plot_decision_regions(X_test, y_test, classifier=svm_model) ...
def plot_svc_decision_boundary(model, axis): x0, x1 = np.meshgrid( np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1, 1),# 600个,影响列数 np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1, 1),# 600个,影响行数 ...
plot_decision_boundary(poly_kernel_svc,axis=[-1.5,2.5,-1.0,1.5]) plt.scatter(X[y==0,0],X[y==0,1]) plt.scatter(X[y==1,0],X[y==1,1]) plt.show() 与使用LinearSVC不同 原理 将原来的损失函数转换为右式 多项式原本转换是将xi,ji转换为新的矩阵,这里多项式核函数就是K函数,用函数K计...
进行预测:使用predict方法对测试集进行预测。 评估模型性能:使用accuracy_score计算准确率,使用confusion_matrix计算混淆矩阵。 可视化结果(可选):定义一个函数plot_decision_boundary来绘制决策边界,并只使用前两个特征进行可视化。 运行上述代码,你将能够使用Python实现SVM分类,并评估模型的性能。
plot_decision_boundary(poly_kernel_svc,axis=[-1.5,2.5,-1.0,1.5]) plt.scatter(X[y==0,0],X[y==0,1]) plt.scatter(X[y==1,0],X[y==1,1]) plt.show() 与使用LinearSVC不同 原理 将原来的损失函数转换为右式 多项式原本转换是将xi,ji转换为新的矩阵,这里多项式核函数就是K函数,用函数K计...