← 返回题库
初级

SVM线性分类可视化

未完成 0%
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    import pandas as pd
    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn.svm import SVC
    from sklearn.model_selection import train_test_split
    df = pd.read_csv("https://data.zuihe.com/moons.csv")
    X = df[["feature1","feature2"]].values; y = df["target"].values
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    svc = SVC(kernel="linear", random_state=42).fit(X_train, y_train)
    h = 0.05; x_min, x_max = X[:,0].min()-0.5, X[:,0].max()+0.5
    y_min, y_max = X[:,1].min()-0.5, X[:,1].max()+0.5
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    Z = svc.predict(np.c_[xx.ravel(), yy.ravel()]).reshape(xx.shape)
    plt.contourf(xx, yy, Z, alpha=0.3); plt.scatter(X[:,0], X[:,1], c=y, edgecolors="k")
    plt.title("SVM Linear Kernel"); plt.show()
    print(f"{svc.score(X_test, y_test):.4f}")

示例

输入
solve()
期望输出
0.8560
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码