模型预测 支持向量机
时间: 2024-12-26 20:16:17 浏览: 11
### 支持向量机在机器学习模型预测中的应用
支持向量机(SVM)是一种监督学习方法,广泛应用于分类和回归分析。当给定数据集 \((X^{(i)}, y^{(i)})_{i=1}^N\) ,其中 \(X^{(i)}\in R^p\) 和 \(y^{(i)}\in\{-1, 1\}\),如果两个类别可分,则SVM倾向于获得一个线性分类器来创建最大间隔[^4]。
对于不可分离的情况或非线性边界问题,可以通过引入核函数将原始特征空间映射到更高维的空间,在那里寻找最优超平面变得可能。常见的核函数有线性核、多项式核以及径向基函数(RBF)等。
#### 使用Python实现简单的二元分类预测案例
下面是一个利用Scikit-Learn库构建的支持向量机进行鸢尾花种类识别的例子:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
import numpy as np
# 加载鸢尾花数据集并选取前两类作为目标变量
iris = datasets.load_iris()
X = iris.data[:100, :2]
y = iris.target[:100]
# 数据标准化处理
scaler = StandardScaler().fit(X)
X_scaled = scaler.transform(X)
# 划分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(
X_scaled, y, test_size=0.3, random_state=42)
# 创建SVC对象并指定使用的kernel类型为'linear'
clf = SVC(kernel='linear', C=1).fit(X_train, y_train)
# 输出模型得分
print(f'Training accuracy: {clf.score(X_train, y_train):.3f}')
print(f'Testing accuracy: {clf.score(X_test, y_test):.3f}')
# 预测新样本所属类别
new_sample = [[5.1, 3.7]] # 假设这是我们要预测的新样本
scaled_new_sample = scaler.transform(new_sample)
predicted_class = clf.predict(scaled_new_sample)[0]
print(f"The predicted class is {predicted_class}")
```
此代码片段展示了如何加载数据、预处理、划分训练/测试集合、建立SVM模型,并最终用于未知实例的预测过程。
阅读全文