数学建模_分析分类模型
一.有监督分类模型样本附带分类标签数据表格化可多特征无需时间顺序依靠已有标签训练模型实现新样本自动归类判别适合带既定分类结果的判别类问题。比如你是班主任手里有一张全班50个学生的期末成绩表最后一列已经标注了“通过(P)”或“挂科(F)”这就是答案y。现在校长拿来一个转学生的档案只有平时成绩、出勤、作业分没有“通过/挂科”这栏。校长问你“你根据以往经验猜猜这个转学生期末会通过还是挂科”1. 翻旧账数据清洗你先把50个老学生的数据看了一遍发现缺勤太多的几个学生都没通过你心里有了底。2. 给老学生出题划分训练集你拿出40个人的数据告诉他们答案当课本学规律剩下10个人的数据先藏起来不给答案当高考卷。3. 教机器解题训练模型你让机器看那40个学生的数据。你告诉它“看到‘出勤20天’且‘作业分80’的人后面标的基本都是‘通过’。”机器把它记下来——这叫决策树一连串if-else。你又让一群机器投票决定——这叫随机森林人多力量大。你又搬出终极武器XGBoost让后面的机器专门盯着前面机器的错误去修正。4. 机器做高考卷测试模型机器用学到的规律去预测那藏起来的10个人的结果。你拿着标准答案一对——对了9个准确率90%5. 实战答题正式预测机器自信满满地看了一眼转学生的档案拍板“通过” 你问它为什么它告诉你“因为这孩子出勤满勤作业分95和以前通过的学霸们一模一样。”适用于数据里有X特征和y标签/答案。标签是离散的类别如好/坏是/否红/黄/蓝。你想预测新样本的类别。典型赛题银行判断是否批准贷款好/坏客户、医学判断是否患病、邮件过滤垃圾邮件。第一步区分特征(X)和标签(y)执行动作把数据集中的“答案列”如是否通过单独拿出来作为y其他所有列如成绩、出勤、作业分作为X。X data.drop(label, axis1) # 特征题目 y data[label] # 标签答案【画表】画“特征描述表”列出所有特征名称、类型数值型/类别型、取值范围。第二步划分训练集和测试集执行动作把数据拆成训练集用来学规律占总数据70%~80%和测试集用来模拟高考占总数据20%~30%。顺序是先划分后标准化测试集的数据不能提前参与训练集的任何计算。from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)【画表】画“数据集划分表” 数据集 样本数量 用途 训练集 1120条70% 训练模型参数 测试集 480条30% 最终评估泛化能力【画表】画“数据集划分表”数据集 样本数量 用途训练集 1120条70% 训练模型参数测试集 480条30% 最终评估泛化能力第三步数据标准化执行动作把所有特征缩放到均值为0、标准差为1的标准正态分布。注意只对训练集fit学均值和标准差再用训练集的参数去transform测试集防止数据泄露。from sklearn.preprocessing import StandardScaler scaler StandardScaler() X_train_scaled scaler.fit_transform(X_train) # 训练集学均值和标准差 X_test_scaled scaler.transform(X_test) # 测试集只转换不重新学公式Z-score标准化注意逻辑回归、SVM、KNN必须做标准化决策树、随机森林、XGBoost不需要树模型不受量纲影响。第四步训练基线模型执行动作先用最简单的模型跑一遍拿到一个“基线分数”。后续复杂模型必须超越这个分数才算有效。推荐基线模型逻辑回归二分类首选可解释性强训练极快决策树能画图评委爱看但容易过拟合from sklearn.linear_model import LogisticRegression model_lr LogisticRegression() model_lr.fit(X_train_scaled, y_train) y_pred_lr model_lr.predict(X_test_scaled)【画图】画“决策树结构图”限制深度max_depth3评委能直观看到“先看成绩再看出勤”的判断流程。第五步训练主力模型执行动作跑2~3个复杂模型作为论文的主力结果。竞赛常用模型随机森林开箱即用稳定可靠不容易过拟合XGBoost比赛神器精度最高但调参稍复杂from sklearn.ensemble import RandomForestClassifier model_rf RandomForestClassifier(n_estimators100, random_state42) model_rf.fit(X_train_scaled, y_train) y_pred_rf model_rf.predict(X_test_scaled) import xgboost as xgb model_xgb xgb.XGBClassifier(n_estimators100, learning_rate0.1, random_state42) model_xgb.fit(X_train_scaled, y_train) y_pred_xgb model_xgb.predict(X_test_scaled)第六步模型对比执行动作把基线模型和主力模型的测试集准确率、F1分数、训练时间列成一张对比表证明你选的是最优的。【画表】画“模型性能对比表”比如【画图】画“模型准确率对比柱状图”XGBoost的柱子最高一眼看出谁最强。第七步模型评估执行动作如果数据里95%是“通过”5%是“挂科”机器全猜“通过”就有95%准确率但“挂科”全漏了此时准确率无效必须看以下指标。①混淆矩阵四格表执行动作统计模型猜对/猜错的情况填进四格表。比如【画图】画“混淆矩阵热力图”色块越深代表猜对越多展示哪两类容易分错。②精确率、召回率、F1分数类别不平衡必看精确率Precision机器说“通过”的人里真正通过的占多少召回率Recall所有真正通过的人里机器找回了多少F1分数精确率和召回率的“和谐平均数”类别不平衡时必看③ AUC值阈值无关的稳健指标执行动作画ROC曲线计算曲线下面积AUC。AUC越接近1模型越稳健。from sklearn.metrics import roc_auc_score auc roc_auc_score(y_test, y_pred_proba)【画图】画“ROC曲线图”横轴是假正率FPR纵轴是真正率TPR曲线下面积AUC越大越好。第八步特征重要性分析解释“为什么”执行动作随机森林和XGBoost自带特征重要性排序可以展示“哪个X对预测结果影响最大”。importances model_rf.feature_importances_【画图】画“特征重要性条形图”横轴是特征名纵轴是重要性分数一眼看出“出勤”最重要“作业分”次之“平时成绩”排第三。二.无监督分类模型无任何分类标签无标准答案依靠数据自身相似度自动分组多用于数据分组、样本分群、指标归类不做结果预测仅挖掘数据内在结构。、比如你是超市理货员老板把一堆乱七八糟的零食只有重量、价格、甜度数据没有标签推到你面前让你“分分类摆到不同的货架上去”。你没有任何“标准答案”只能靠眼睛看算法算。1. 选K值决定摆几个货架你心想“摆几个架子好呢”你画了个图肘部法则发现分成4堆的时候每堆东西内部最像、堆和堆之间最不像。那就定K4。2. 找四个“临时摊点”K-Means核心你随机在仓库里选了4个零食作为“临时中心”比如超甜的巧克力、很咸的薯片、很酸的话梅、没味道的饼干。3. 开始分堆迭代分配你对着所有零食喊“谁离巧克力近站巧克力这边”大家迅速站队。然后你重新计算每一堆的平均值比如这堆的平均甜度把“临时中心”挪到平均值的那个位置。再喊一次“重新站队”……反复几次直到队伍完全不动了。4. 检查分得好不好轮廓系数你算了一下轮廓系数范围-1到1结果是0.51接近1说明同类离得近、异类离得远。嗯分得不错5. 给货架起名字业务解读——决定分数的关键你不能跟老板说“第1堆有50个”。你得说“第一堆贵妇专享重量轻、价格极高、甜度低占比8%建议摆高档进口区。第二堆打工人能量包重量中等、价格适中、甜度爆表占比45%建议摆收银台旁边。”老板一听就懂给你竖大拇指适用于数据里只有X特征没有 y标签/答案。你想自动发现数据中的隐藏分组或找出异常值。典型赛题电商客户分群RFM模型、新闻自动归类、异常交易检测、城市小区分类、数据初探。第一步特征标准化执行动作因为“年消费额”上万和“购买频次”几十数值差距太大如果不标准化“年消费额”的“嗓门”会完全盖过其他特征导致分群全看钱。from sklearn.preprocessing import StandardScaler X_scaled StandardScaler().fit_transform(X)公式Z-score标准化【画图】画“标准化前后的箱线图对比”证明你处理了量纲差异。第二步PCA降维可视化论文门面图执行动作聚类是无监督的无法画“真实值vs预测值”图。为了在论文里展示分群效果用PCA把高维数据压缩到2维画出散点图不同簇用不同颜色标注。from sklearn.decomposition import PCA pca PCA(n_components2) X_pca pca.fit_transform(X_scaled) plt.scatter(X_pca[:,0], X_pca[:,1], clabels, cmaprainbow)【画图】画“PCA二维散点图”每个簇一种颜色展示数据在二维平面上的分离情况。第三步确定K值三种方法交叉验证①肘部法则执行动作画“簇内误差平方和WCSS- K”曲线找拐点像胳膊肘一样突然变平的地方。wcss [] for k in range(1, 11): kmeans KMeans(n_clustersk, random_state42) kmeans.fit(X_scaled) wcss.append(kmeans.inertia_) plt.plot(range(1, 11), wcss) plt.xlabel(K值) plt.ylabel(簇内误差平方和)【画图】画“肘部法则图”标注拐点位置如K4。②轮廓系数执行动作算不同K值的平均轮廓系数取最高的K。s 接近1 → 分得很好同类近异类远s 接近0 → 边界模糊样本在两簇交界处s 接近-1 → 分错了应去隔壁簇from sklearn.metrics import silhouette_score for k in range(2, 7): kmeans KMeans(n_clustersk, random_state42) labels kmeans.fit_predict(X_scaled) print(fK{k}, 轮廓系数{silhouette_score(X_scaled, labels):.3f})【画表】画“不同K值轮廓系数表”比如结论K4时轮廓系数最高选K4。③层次聚类树状图小样本时使用执行动作用层次聚类画树状图在“树枝”间隙最大的地方横切一刀切出的簇数就是K。【画图】画“树状图Dendrogram”标注切割位置。第四步运行K-Means主力算法执行动作用确定的K值运行K-Means设置n_init20多次跑取最优避免陷入局部最优。数学原理让每个点到它所在簇中心的距离平方和最小from sklearn.cluster import KMeans kmeans KMeans(n_clusters4, n_init20, random_state42) labels kmeans.fit_predict(X_scaled)第五步运行对比算法至少跑2~3种展示工作量①层次聚类小样本/要画树状图时使用执行动作选ward连接方式合并后方差增量最小画出树状图。from sklearn.cluster import AgglomerativeClustering hier AgglomerativeClustering(n_clusters4, linkageward) labels_hier hier.fit_predict(X_scaled)② DBSCAN任意形状/有噪声时使用执行动作不需要定K。能自动找出“密集的朋友”和“孤立的怪人”噪声点/异常值。from sklearn.cluster import DBSCAN dbscan DBSCAN(eps0.5, min_samples5) labels_db dbscan.fit_predict(X_scaled)必做把DBSCAN筛出来的“噪声点”标签为-1的点单独拎出来作为“异常客户”单独分析【画表】画“三种聚类算法轮廓系数对比表”比如第六步计算各簇中心为业务解读做准备执行动作计算每个簇在各个特征上的平均值生成“簇中心特征表”。centers pd.DataFrame(kmeans.cluster_centers_, columnsfeatures)【画表】画“簇中心特征表”比如【画图】画“各簇雷达图”每个簇一条线展示多维度特征对比多边形往外扩的面积越大代表该簇在该维度上越强。第七步业务解读给簇起名字讲营销故事——决定论文分数的关键执行动作根据簇中心特征表给每个簇起一个“有业务含义”的名字并给出差异化策略建议。【画表】画“各簇画像与营销策略表”比如

相关新闻

【AI-RAN】硬件产品:DGX Spark

【AI-RAN】硬件产品:DGX Spark

NVIDIA DGX Spark 桌面级个人 AI 超级计算机 NVIDIA Grace Blackwell AI Computing at Your Desk 紧凑尺寸 1 PFLOP AI 算力 128GB 统一内存 NVIDIA 完整 AI 软件栈 NVIDIA DGX Spark 是面向 AI 开发者、科研人员、数据科学家及工程团队打造的桌面级 AI 超级计算平台。 系统…

2026/9/10 17:46:54 阅读更多 →
零依赖整站搬运:WebSite-Downloader网站离线下载实战手册

零依赖整站搬运:WebSite-Downloader网站离线下载实战手册

零依赖整站搬运:WebSite-Downloader网站离线下载实战手册 【免费下载链接】WebSite-Downloader A website downloader written with Python 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 先从一次"收藏夹事故"说起 去年冬天…

2026/9/10 17:46:59 阅读更多 →
查看 Git 本地仓库关联的远程仓库链接(URL)

查看 Git 本地仓库关联的远程仓库链接(URL)

查看 Git 本地仓库关联的远程仓库链接(URL)是日常 Git 操作的基础需求,我会为你梳理最常用的命令,并解释不同参数的作用,方便你按需使用。一、核心命令(查看所有远程仓库链接)这是最常用的基础命…

2026/9/20 5:16:28 阅读更多 →

最新新闻

大整数加法速查手册:拆解源码彻底搞定

大整数加法速查手册:拆解源码彻底搞定

大整数加法速查手册:拆解源码彻底搞定 看了一堆教程还是不会写项目?别慌,很多人卡在“看懂了逻辑”和“能独立实现”之间的鸿沟。大整数加法看似简单,实则是考察字符串处理、数组操作及边界条件的经典入门题。本文不玩虚的,直接通过一份…

2026/9/22 3:58:21 阅读更多 →
qvod视频搜索实战项目踩坑:API全变后的3个致命错误

qvod视频搜索实战项目踩坑:API全变后的3个致命错误

qvod视频搜索实战项目踩坑:API全变后的3个致命错误 qvod视频搜索接口在2023年Q4版本升级后,底层数据结构彻底重构,导致大量基于旧版API开发的实战项目直接报错。很多开发者盯着控制台里满屏的 JSON Parse Error…

2026/9/22 3:58:21 阅读更多 →
3个维度图解原理:你x我xx选型避坑指南

3个维度图解原理:你x我xx选型避坑指南

3个维度图解原理:你x我xx选型避坑指南 看了一堆教程还是不会写项目?别怪自己笨,是你没搞懂底层逻辑。 很多人卡在“为什么我的代码跑不通”或者“这个库到底怎么选”上。其实, 你x我xx 的核心不在表面 API,而在其背后的 图解原理 。…

2026/9/22 3:58:21 阅读更多 →
当当网上书店首页复刻踩坑实录与源码解析

当当网上书店首页复刻踩坑实录与源码解析

当当网上书店首页复刻踩坑实录与源码解析 复制来的代码跑不通不知道怎么调,这是很多前端转岗或者练手项目时最崩溃的时刻。你从网上搜到一份“当当网上书店首页”的高仿代码,满怀期待地粘贴进项目,结果页面要么白屏,要么布局错乱,控制台报错一片红。别急…

2026/9/22 3:58:21 阅读更多 →
面试总被问原理?3个方案对比s200spx手写实现完整示例

面试总被问原理?3个方案对比s200spx手写实现完整示例

面试总被问原理?3个方案对比s200spx手写实现完整示例 面试官盯着你,眼神里带着“这你都不知道?”的轻蔑。你脑子一片空白,明明背过八股文,可一涉及底层逻辑就卡壳。这种“原理答不上来”的窘境,是无数转岗开发者的噩梦。别慌,今天不整虚的,直…

2026/9/22 3:57:21 阅读更多 →
3步搞定质量体系图解原理,拒绝Stack Trace报错

3步搞定质量体系图解原理,拒绝Stack Trace报错

3步搞定质量体系图解原理,拒绝Stack Trace报错 面对满屏红色的 Stack Trace,你是不是觉得像看天书?明明代码逻辑没变,一跑就崩,日志里全是 NullPointerException 或者…

2026/9/22 3:57:21 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/22 2:43:42 阅读更多 →