# svm **Repository Path**: iamohenry/svm ## Basic Information - **Project Name**: svm - **Description**: 用python写了一个svm程序 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-24 - **Last Updated**: 2025-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 支持向量机 (SVM) 实现 这是一个使用 Python 实现的支持向量机 (SVM) 分类器,适用于二分类任务。该项目实现了软间隔 SVM 和高斯核函数,并使用 SMO 算法进行优化。 ## 特性 - 实现了软间隔支持向量机 - 使用高斯核函数处理非线性可分数据 - 使用 SMO 算法优化训练过程 - 包含数据可视化功能 - 支持自动归一化和数据生成 ## 主要组件 - `SVM` 类:实现完整的支持向量机算法 - `generate_moon_data` 函数:生成用于测试的月牙形数据集 - `normalize` 函数:对数据进行归一化处理 - `visualize` 函数:可视化分类结果和支持向量 ## 使用方法 1. 生成或准备数据集 2. 创建 SVM 实例 3. 调用 `fit` 方法进行训练 4. 使用 `predict` 方法进行预测 5. 可选:使用 `visualize` 函数可视化结果 示例: ```python # 生成数据 X_train, y_train = generate_moon_data() # 归一化 X_train = normalize(X_train) # 创建和训练模型 model = SVM(C=100, sigma=0.25) model.fit(X_train, y_train) # 进行预测 predictions = model.predict(X_test) # 可视化结果 visualize(model, X_train, y_train) ``` ## 算法特点 - 使用预计算核矩阵加速训练 - 实现了完整的 SMO 算法 - 包括违反 KKT 条件检查和对偶间隙停止条件 - 支持自动提取支持向量 ## 应用场景 该项目适用于需要理解 SVM 内部工作原理的教育目的,以及需要处理二分类问题的小型机器学习任务。特别适合处理非线性可分的二维数据集,如生成的月牙形数据。