import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
# 创建自定义数据集
np.random.seed(42)
X, y = datasets.make_blobs(n_samples=100, centers=2, random_state=42)
# 可选:添加一些噪声
X = X + np.random.randn(100, 2) * 0.1
# 数据标准化
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 使用 SVM 进行分类
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)
# 预测测试集
y_pred = svm.predict(X_test)
# 可视化结果
plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap='viridis')
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='viridis', alpha=0.5)
plt.title('SVM 分类结果')
plt.xlabel('特征1')
plt.ylabel('特征2')
plt.show()