完整教程:机器学习入门,支持向量机

news/2025/9/23 18:36:51/文章来源:https://www.cnblogs.com/ljbguanli/p/19107712

完整教程:机器学习入门,支持向量机

原理简介

支持向量机寻找一个最优超平面来分隔不同类别的数据,目标是最大化边界(margin)——即超平面到最近数据点的距离。

场景:客户信用评分

● 问题描述:银行需要根据客户的收入(特征1)和负债(特征2)判断其信用等级(高风险/低风险)。
● 数据特点:
● 线性可分:客户数据分布存在明显分离边界(如 make_blobs 生成的两簇数据)。
● 小样本:数据量较小(100 个样本),适合 SVM 的小样本优势。

● 适用性:
●SVM 的线性核(kernel=‘linear’)适合低维且线性可分的数据。
● 若特征维度较高(如文本分类),可改用 RBF 核(kernel=‘rbf’)。

代码适配性

● 特征映射:X[:, 0] 和 X[:, 1] 可替换为客户收入和负债的标准化值。
● 标签映射:y 表示信用等级(0=高风险,1=低风险)。
● 输出结果:模型可预测新客户的信用等级,并通过决策边界直观展示风险分界。

模块化代码

将代码拆分为独立函数,提升可读性和复用性:

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 1. 数据生成
def generate_data(n_samples=100, centers=2, cluster_std=1.0, random_state=42):
X, y = datasets.make_blobs(n_samples=n_samples, centers=centers,
cluster_std=cluster_std, random_state=random_state)
return X, y
# 2. 数据划分
def split_data(X, y, test_size=0.2, random_state=42):
return train_test_split(X, y, test_size=test_size, random_state=random_state)
# 3. 模型训练
def train_svm(X_train, y_train, kernel='linear', C=1.0):
model = SVC(kernel=kernel, C=C)
model.fit(X_train, y_train)
return model
# 4. 模型评估
def evaluate_model(model, X_test, y_test):
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"SVM 准确率: {accuracy:.2f
}")
return y_pred, accuracy
# 5. 可视化结果
def plot_svm_result(X, y, model):
plt.figure(figsize=(10, 6))
plt.rcParams['font.sans-serif'] = ['Hiragino Sans GB'] # 指定默认字体为黑体
plt.rcParams['axes.unicode_minus'] = False # 解决负号 '-' 显示为方块的问题
# 绘制数据点
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis', s=50, alpha=0.8)
# 创建网格绘制决策边界
ax = plt.gca()
xlim = ax.get_xlim()
ylim = ax.get_ylim()
xx = np.linspace(xlim[0], xlim[1], 30)
yy = np.linspace(ylim[0], ylim[1], 30)
YY, XX = np.meshgrid(yy, xx)
xy = np.vstack([XX.ravel(), YY.ravel()]).T
Z = model.decision_function(xy).reshape(XX.shape)
# 绘制决策边界和间隔
ax.contour(XX, YY, Z, colors='k', levels=[-1, 0, 1],
alpha=0.5, linestyles=['--', '-', '--'])
# 标记支持向量
ax.scatter(model.support_vectors_[:, 0], model.support_vectors_[:, 1],
s=100, linewidth=1, facecolors='none', edgecolors='k')
plt.title('SVM 分类结果 (支持向量已圈出)')
plt.xlabel('特征1')
plt.ylabel('特征2')
plt.show()
# 主程序
def main():
# 数据生成
X, y = generate_data()
# 数据划分
X_train, X_test, y_train, y_test = split_data(X, y)
# 模型训练
svm_model = train_svm(X_train, y_train)
# 模型评估
y_pred, accuracy = evaluate_model(svm_model, X_test, y_test)
# 可视化
plot_svm_result(X, y, svm_model)
if __name__ == "__main__":
main()

代码结果

SVM 准确率: 1.00

在这里插入图片描述

附加说明

准确率公式

在这里插入图片描述

其中:
TP(True Positive):正类预测为正类(正确)。
TN(True Negative):负类预测为负类(正确)。
FP(False Positive):负类预测为正类(错误)。
FN(False Negative):正类预测为负类(错误)。

计算准确率

方法1:依托现成函数

上述代码中的计算准确率使用的是现成的方法:
accuracy = accuracy_score(y_test, y_pred)

方法2:手工计算

● 对比预测值与真实值:

pythoncorrect = sum(y_pred == y_test) # 正确预测的数量
total = len(y_test) # 总样本数

● 计算准确率:

pythonaccuracy = correct / total

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913492.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建设网站广州市wordpress发邮件接收验证码

如有错误或有补充,以及任何改进的意见,请在评论区留下您的高见,同时文中给出大部分命令的示例,即是您暂时无法在Linux中查看,您也可以知道各种操作的功能以及输出 如果觉得本文写的不错,不妨点个赞&#x…

网站建设构成技术要求教资注册网址

开发插件的都知道插件的content scripts和top window只共享Dom不共享window和其他数据,如果想拿挂载在window的数据还有点难度,下面会通过事件的方式传递cs和top window之间的数据写一个例子 代码 manifest.json 这里只搞了2个js,content.…

两学一做网站按钮图片小微企业名录

面向对象的基本原则:单一原则:引起一个类发生变化的原因只有一个 开放封闭原则:对于类的修改是封闭的,而对于类的扩展是开放的 依赖倒置原则:高层不依赖于底层,都应该依赖与抽象;抽象不依赖于…

做网站系统学校备案接入阿里云后原网站还能访问吗

1.2 课程架构介绍:STM32H5 芯片生命周期管理与安全调试 下面开始学习课程的第二节,简单介绍下STM32H5芯片的生命周期和安全调试,具体课程大家可以观看STM32官方录制的课程,链接:1.2. 课程架构介绍:STM32H5…

宁德商城网站建设wordpress找回文章

6.6:说明形参、局部变量以及局部静态变量的区别。编写一个函数,同时用到这三种形式。 Ans:形参及函数体内定义的变量,都是局部变量,必须进行初始化,否则会出现未定义行为,这是由于局部变量的生命…

移动互联网站建设修改网站的设计

本文主要介绍了Prompt设计、大语言模型SFT和LLM在手机天猫AI导购助理项目应用。 ChatGPT基本原理 “会说话的AI”,“智能体” 简单概括成以下几个步骤: 预处理文本:ChatGPT的输入文本需要进行预处理。 输入编码:ChatGPT将经过预…

月嫂网站模板企业网站推广服务协议

PHP 日期处理完全指南 引言 在PHP开发中,日期和时间处理是一个常见且重要的任务。PHP提供了丰富的内置函数来处理日期和时间,包括日期的格式化、计算、解析等。本文将详细介绍PHP中日期处理的相关知识,帮助读者全面理解和掌握这一技能。 1. PHP日期函数基础 1.1 date()函…

宁海县城镇建设局网站wordpress 提示

本文原文来自DataLearnerAI官方网站:ChatGPT内置隐藏debug功能:支持下载原始对话、可视化对话分支等 | 数据学习者官方网站(Datalearner) AIPRM的工作人员最近发现ChatGPT的客户端隐藏内置了一个新的debug特性,可以提高ChatGPT对话的问题调试…

网站系统里不能打印江苏高效网站制作公司

viewdata[alert]"alert(你好)"<script>viewdata[alert]</script> 在Controller存储数据 在 界面得到 关于 ViewData和ViewMode 点击这里 http://wanshiqian1221.blog.163.com/blog/static/6872130420095242016546/

firewalld 端口流量转发

需求说明 将本机 (IP: 192.168.174.100) 发往 192.168.174.165:443 的流量转发到 另一节点 192.168.174.149:20037(nginx 4层代理到192.168.174.165:443) 启用 IP 转发 # 节点IP: 192.168.174.100 sysctl -w net.ipv…

[PaperReading] Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution

目录Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any ResolutionTL;DRMethodNaive Dynamic ResolutionMultimodal Rotary Position Embedding (M-RoPE)Unified Image and Video Underst…

谈谈对软件工程的理解

谈谈对软件工程的理解软件工程的核心思想在于软件不仅仅是程序,软件工程是一门强调“实践”和“工程化”的学科。软件,即程序、数据和文档**三者的集合体。这彻底改变了我过去认为“写软件就是敲代码”的狭隘观念。文…

[PaperReading] MemGPT: Towards LLMs as Operating Systems

目录MemGPT: Towards LLMs as Operating SystemsTL;DRMethodMain contextExperiment总结与思考相关链接 MemGPT: Towards LLMs as Operating Systems link 时间:23.10 单位:UC Berkeley 相关领域:Agent 作者相关工作…

株洲定制网站建设做网站最贵

使用Python Django框架做一个音乐网站&#xff0c; 本篇音乐播放器-添加播放音乐功能实现。 目录 创建播放器数据表 设置表结构 执行创建表 命令 执行 数据表结构 添加单个歌曲 创建路由 加入播放器视图 模板处理 基类方法 子页面调用 优化弹窗 加入layui文件 基…

总线的性能指标

1.总线的传输周期(总线周期 一次总线操作所需的时间(包括申请阶段,寻址阶段,传输阶段和结束阶段 通常有若干个总线时钟周期构成 2.总线时钟周期 早期由cpu发出,而如今都是由桥接器提供的 即机器的时钟信号,计算机…

网站主页设计收费个人买卖网站怎么做

这里的状态定义一般使用DP【i】 表示 考虑前i个东西能否满足条件&#xff0c;然后我们枚举上一次的转移位置就好了 2369. 检查数组是否存在有效划分 需要注意的是我习惯从1开始写&#xff0c;所以要处理好边界的下标问题 class Solution { public:bool validPartition(vector&l…

网站建设类型的好处延安网站设计公司

闲来无事学一下设计模式&#xff0c;希望这23种可以一直更下去&#xff0c;什么时候能更完呢&#xff0c;也许一个月&#xff0c;也许一年&#xff0c;也许断更 设计模式六大原则 本文是23篇的第一篇&#xff0c;在学习设计模式之前&#xff0c;你需要了解下六大原则。 1、开…

网站开发平台有哪些国内很多网站不是响应式

作者&#xff1a;刘肉酱摩尔定律的终结将使服务于特定领域的架构成为计算的未来。一个开创性的例子就是谷歌在 2015 年推出的张量处理单元&#xff08;TPU&#xff09;&#xff0c;目前已经在为超过十亿人提供服务。TPU 使深度神经网络&#xff08;DNN&#xff09;的计算速度提…

厦门手机网站中国制造网服务种类

1. 题目 给你一个字符串 s 和一个字符 c &#xff0c;且 c 是 s 中出现过的字符。 返回一个整数数组 answer &#xff0c;其中 answer.length s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。 两个下标 i 和 j 之间的 距离 为 abs(i - j) &#xff0c…

网站权重一般有几个等级动漫网站源码下载

提示&#xff1a;RAM模型&#xff1a;环境安装、数据准备与说明、模型推理、模型finetune、模型pretrain等 文章目录 前言一、环境安装二、数据准备与解读1.数据下载2.数据标签内容解读3.标签map内容解读 三、finetune训练1.微调训练命令2.load载入参数问题3.权重载入4.数据加载…