SVM实战
2023-02-12·Machine Learning, SVM, sklearn
SVM 基础
SVM 是有监督的学习模型,需要事先对数据打上分类标签,通过求解最大分类间隔来求解二分类问题。如果求解多分类问题,可以将多个二分类组合起来形成多分类。
- SVM 用作回归:使用 SVR 或 LinearSVR(Support Vector Regression)
- SVM 用作分类器:使用 SVC 或 LinearSVC(Support Vector Classification)
乳腺癌检测案例
1. 数据加载
data = pd.read_csv("./data.csv")
pd.set_option('display.max_columns', None)
print(data.columns)
print(data.head(5))
print(data.describe())
通过相关性减少数据维度特征,用少量特征代表数据特性,可以增强分类器的泛化能力,避免过拟合。
2. 特征选择
features_remain = ['radius_mean', 'texture_mean', 'smoothness_mean',
'compactness_mean', 'symmetry_mean', 'fractal_dimension_mean']
3. 准备训练集和测试集
train, test = train_test_split(data, test_size=0.3)
train_X = train[features_remain]
train_y = train['diagnosis']
test_X = test[features_remain]
test_y = test['diagnosis']
# Z-Score 规范化,保证每个特征维度均值为0,方差为1
ss = StandardScaler()
train_X = ss.fit_transform(train_X)
test_X = ss.transform(test_X)
4. 模型训练和预测
model = svm.SVC()
model.fit(train_X, train_y)
prediction = model.predict(test_X)
print('准确率: ', metrics.accuracy_score(test_y, prediction))
#Machine Learning#SVM#sklearn