SVM入门实例可运行python代码完整版(简单可视化)

本文介绍了使用Python的LinearSVC实现SVM,并提供了完整的可运行代码,包括数据集处理和可视化结果,适用于初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行环境 anaconda 

python 版本 2.7.13

包含详细数据集和数据的使用,可视化结果,很快入门,代码如下

# -*- coding: utf-8 -*-
__author__ = 'LinearSVC线性分类支持向量机:包含惩罚项的'

# 导包
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model, cross_validation, svm


# 数据集:鸢尾花数据集
'''
数据数 150
数据类别 3 (setosa, versicolor, virginica)
每个数据包含4个属性:sepal萼片长度、萼片宽度、petal花瓣长度、花瓣宽度
'''
def load_data_classfication():
    iris = datasets.load_iris()
    X_train = iris.data
    y_train = iris.target
    return cross_validation.train_test_split(X_train, y_train, test_size=0.25, random_state=0, stratify=y_train)


### Python SVM 多分类可视化代码示例 支持向量机(SVM)是一种强大的监督学习算法,可以用于二分类或多分类问题。为了实现SVM多分类并在Python中进行可视化,通常会使用`sklearn`库中的`SVC`类。 下面是一个完整的Python代码示例来展示如何利用SVM执行多类别分类以及绘制决策边界: ```python 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 from mlxtend.plotting import plot_decision_regions # 加载数据集 (这里以鸢尾花为例) iris = datasets.load_iris() X = iris.data[:, [0, 2]] # 使用两个特征以便于二维平面显示 y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1) # 数据标准化处理 scaler = StandardScaler().fit(X_train) X_train_std = scaler.transform(X_train) X_test_std = scaler.transform(X_test) # 创建并拟合模型 svm = SVC(kernel='linear', C=1.0, random_state=1).fit(X_train_std, y_train) # 可视化决策区域 plt.figure(figsize=(8, 6)) plot_decision_regions(X=X_train_std, y=y_train, clf=svm, legend=2) plt.xlabel('sepal length [standardized]') plt.ylabel('petal length [standardized]') plt.title('Decision Regions via scikit-learn & mlxtend') plt.show() # 测试集预测效果评估 print(f'Test accuracy: {svm.score(X_test_std, y_test):.3f}') ``` 这段代码首先导入必要的包[^2],加载了一个经典的机器学习数据集——鸢尾花数据集,并选择了其中两列作为输入变量来进行简化后的二元空间上的绘图操作;接着进行了标准的数据预处理流程,包括划分训练/验证集合、特征缩放等步骤;之后定义了一个线性核函数的支持向量分类器实例,并通过调用`.fit()`方法完成参数估计过程;最后借助第三方工具mlxtend实现了直观的图形化输出,帮助理解不同类别之间的分布情况及其对应的判定界限[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值