初级
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
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199