推荐系统评估指标详解:准确率、召回率、F1与NDCG的实战选择
前阵子评审一个推荐项目算法同学在台上很兴奋地说“我们的准确率从1.2%升到了1.5%模型效果显著提升。”台下业务方沉默了几秒问了一句“那这个提升对用户来说意味着什么”场面一度有点尴尬。这个场景我见过太多次。搞推荐系统的人几乎每天都在和准确率、召回率、F1、NDCG这些指标打交道但很多同学对它们的理解仅限于“公式会算、结果会报”真要回答“这个数涨了代表什么”“我现在这个场景该看哪个指标”一下子就卡壳了。这篇文章就把这四个指标彻底讲透包括每个指标到底在回答什么问题、怎么算、怎么用、以及实战中怎么组合着选。无论你是刚接触推荐系统的学生还是已经在调模型但总感觉指标和业务对不上号的工程师应该都能从这里找到一些有用的东西。1. 先想清楚你的系统到底在优化什么1.1 指标是指挥棒不是成绩单我以前带过一个项目某内容社区为了冲“准确率”把推荐列表越收越窄只推用户已经点击过的类型。结果怎么着准确率确实一路上涨看起来模型“效果变好了”但用户刷两下就腻了次留和时长反而跌了。后来复盘才发现问题出在哪准确率高不是因为推荐变聪明了而是因为系统“不敢推新东西”了。它只把最保守、最有把握的那几个结果放到前面用户当然会点但点来点去都是同一类内容很快就审美疲劳。这就是我想说的第一件事指标不是一张成绩单它是指挥棒。你用什么指标给模型打分模型就会朝着什么方向生长。如果指标和业务目标错位模型再“好看”也是自嗨。1.2 分类评估还是排序评估四个指标的共同身份标题里的准确率、召回率、F1、NDCG很多人会下意识觉得它们都是“分类指标”其实不完全对。准确率、召回率、F1确实来自分类任务而NDCG来自排序任务。但它们放在一起有个共同身份都是用来评估 Top-N 推荐列表质量的。推荐系统的评估体系大致可以分成三族评估视角代表指标回答的问题分类视角Accuracy、Precision、Recall、F1推出来的东西对不对、全不全排序视角NDCG、MAP、MRR对的东西有没有排前面回归视角RMSE、MAE预测的分数准不准注意回归视角的 RMSE、MAE 我没有展开讲因为在现代推荐场景里它们的地位越来越边缘。用户打分数据太稀疏而且大家都不太愿意打分你预测分再准也不如把用户最可能喜欢的那件商品排到第一位来得实在。所以这篇文章聚焦的四个指标本质上都是在同一个问题下面做文章系统给用户的那一列列表质量到底怎么样。2. 准确率和召回率一对此消彼长的兄弟2.1 公式背后的直觉先过一遍定义。大部分推荐场景里我们会用一个混淆矩阵来描述“预测”和“真实”的关系用户实际感兴趣用户实际不感兴趣系统推出来了TP推对FP推错系统没推出来FN漏推TN没推也没兴趣基于这个矩阵准确率 Precision TP / (TP FP)它回答的是系统推出来的东西里有多少是用户真正感兴趣的。召回率 Recall TP / (TP FN)它回答的是用户真正感兴趣的所有东西里系统捞出来了多少。用个生活化的类比。你是一个渔夫湖里有一百条鱼你撒了一网捞上来二十条其中十五条是你想要的品种。Precision 就是“这网里的鱼质量高不高” 15/20 75%Recall 就是“湖里目标鱼被你捞到多少” 15/100 15%。推荐场景也一样。Precision 高说明列表里的东西靠谱、噪音少Recall 高说明系统覆盖面广不容易把用户可能喜欢的东西漏掉。2.2 一个电商用户的算例看两个数到底差在哪假设某电商平台上一个用户近 30 天收藏了 20 件商品。推荐系统给他展示了 10 件其中 6 件被他点击了。那么对这个用户来说Precision 6 / 10 60%意思是推荐列表的十个坑位里有六成命中了他的兴趣。Recall 6 / 20 30%意思是用户历史收藏的二十件商品里系统只捞出来了六件。这个例子里Precision 和 Recall 都不算高但它们各自反映的问题完全不同。Precision 低说明列表里混进了不少“噪音”Recall 低说明系统对用户兴趣的了解还不够深用户可能还有大量潜在兴趣根本没有被覆盖到。这里有个需要特别注意的地方推荐场景里的“感兴趣”往往是用行为标签来代理的。点击、收藏、加购、购买这些行为的“相关强度”完全不一样。你拿“点击”当正样本和拿“购买”当正样本算出来的 Precision 和 Recall 会差出好几倍。所以报指标之前一定先想清楚你用的行为标签是什么否则数字就是鸡同鸭讲。2.3 列表长度 K一个被你低估的超参数Precision 和 Recall 还有一个特点它们和推荐列表的长度 K 强相关。你可以做个小实验。还是那个收藏 20 件的用户假设系统给他推荐的商品相关性从高到低排好前 10 件里有 6 件命中K 1通常系统会把最自信的放到第一位Precision 可能很高但 Recall 只有 5%1/20。K 10Precision 60%Recall 30%。K 50多推 40 件进来命中的可能只多了 4 件Precision 降到 20%Recall 涨到 50%。这是个典型的零和博弈。列表越长回忆的东西越多但每个坑位的信息密度越稀列表越短越精准但能覆盖的兴趣范围越小。所以我不太建议脱离 K 值去谈 Precision 和 Recall 的大小。哪怕同一个模型换一个 K 值指标就能从“很好”变成“很差”。实际项目里到底取 K 5、K 10 还是 K 50应该去问产品用户在一屏里能看完多少个结果如果一屏就五个你盯着 K 50 的 Recall 优化就是在自欺欺人。3. F1 的两面性平衡之美与场景陷阱3.1 调和平均为什么比算术平均更严格Precision 和 Recall 是一对此消彼长的兄弟那有没有一个指标把它们“揉到一起”看有就是 F1。F1 2 * Precision * Recall / (Precision Recall)这是调和平均不是算术平均。为什么用调和平均因为调和平均特别惩罚“偏科生”。举个例子。模型 A 的 Precision 90%Recall 10%。模型 B 的 Precision 50%Recall 50%。算术平均的话A 是 (90% 10%) / 2 50%B 也是 50%看起来打平。但 F1 一下就把差距拉开了F1(A) 2 * 0.9 * 0.1 / (0.9 0.1) 0.18F1(B) 2 * 0.5 * 0.5 / (0.5 0.5) 0.5A 的 F1 只有 18%远低于 B。原因是一个只会保证“推出来的都对”但“大量该推的没推”的模型在真实业务中没什么用。用户想看的东西你一个都不推推出来的再精准也解决不了问题。调和平均的逻辑就是Precision 和 Recall 缺一不可任何一边拖后腿总分就得被狠狠拉下来。3.2 推荐系统里 F1 常见的用武之地虽然前面说了 F1 对“偏科”不友好但它在两类场景里还挺好用。第一类是严肃二分类任务的阈值选择。比如你要判断“用户是否喜欢某种新内容”模型输出一个概率分你需要选一个阈值决定推不推。阈值调高推得少但准阈值调低推得多但杂。这时候可以把 Precision-Recall 曲线拉出来找到 F1 最大的那个点作为一个相对中性的阈值。第二类是正负样本相对均衡的场景比如内容打标、品类预测这种分类任务正负样本数量差距不大F1 能比较稳定地反映模型好坏。还有一种情况是做模型之间的快速对比。离线实验里同时跑十几个候选模型不想一个个看 Precision/Recall 曲线就先用 F1 排个序筛出前几名再细看。注意这只是粗筛不能拿来当作最终上线的依据。3.3 推荐场景里 F1 的三个隐患严格来说我不太建议在排序型推荐里把 F1 当主指标。原因有三个。第一正样本太稀疏。推荐场景点击率往往只有百分之几正样本是极端少数。这种数据分布下F1 很容易被少数极端用户带偏一个账号行为异常就能让整体 F1 波动。第二误判代价不一致。F1 把“漏推”和“错推”当成同一种代价在惩罚但真实业务里根本不是这么回事。把一个用户完全不感兴趣甚至反感的东西推到第一位对体验的伤害远大于漏掉一个用户本来也无所谓的东西。F1 不管这些差异它只数数。第三F1 对顺序不敏感。用户从头往下浏览第一位的广告和第五位的广告价值天差地别。F1 只会告诉你“列表里命中了几件”不会告诉你命中的那件是不是用户一眼就看到的第一条。真要评估排序质量还得看下一节的 NDCG。4. NDCG排序质量才是用户最直接感受到的4.1 从 CG 到 NDCG一步步看它在算什么NDCG 全称 Normalized Discounted Cumulative Gain翻译过来是“归一化折损累计增益”。名字很绕但拆开就不难了。先说 CGCumulative Gain累计增益。假设推荐列表每个位置都有一个相关度分数 rel_i把前 K 个位置的相关度加起来就是 CG。但它有个明显缺陷完全不考虑位置。第一位和第十位一样权重这显然不符合用户行为习惯。于是有了 DCGDiscounted Cumulative Gain折损累计增益。它给每个位置加了一个折损系数越靠后的位置权重越低。常用的公式是DCGK Σ (2^rel_i - 1) / log2(i 1)其中 i 是位置从 1 开始。这个公式做了两件事一是位置折损后一位的贡献被 log2 压缩二是相关度的指数增益相关性每提升一个级别增益不是线性加一而是指数翻倍。但 DCG 有个问题它是个绝对值没法跨用户比较。有的用户历史行为丰富相关物品多DCG 天然就高有的用户行为稀疏天然就低。所以还要做归一化。IDCGIdeal DCG理想 DCG就是假设我们拥有上帝视角把用户真实最感兴趣的东西按相关度从高到低排在最前面这时候拿到的最优 DCG。NDCG 就是当前 DCG 除以这个理想值NDCGK DCGK / IDCGK这样取值被压到 0 到 1 之间1 代表排序和理想状态完全一致可以跨用户、跨实验比较。4.2 一个 5 位置的手算例子感受位置惩罚光说公式太干我们来手算一版。假设某次推荐的 5 个结果真实相关性打分如下3强相关用户购买2中等相关点击未购买1弱相关仅浏览0无关无行为位置 1rel 3位置 2rel 0位置 3rel 2位置 4rel 0位置 5rel 1先算当前 DCG5位置12^3 - 1 7log2(2) 1贡献 7.0位置22^0 - 1 0贡献 0位置32^2 - 1 3log2(4) 2贡献 1.5位置4贡献 0位置52^1 - 1 1log2(6) ≈ 2.585贡献约 0.387DCG5 ≈ 7 0 1.5 0 0.387 8.887再看理想排序。用户真实感兴趣的是 rel3、rel2、rel1 这三件理想情况下应该排成 [3, 2, 1, 0, 0]位置1rel3贡献 7.0位置2rel2贡献 3 / log2(3) ≈ 3 / 1.585 ≈ 1.893位置3rel1贡献 1 / log2(4) 0.5位置4、50IDCG5 ≈ 7 1.893 0.5 9.393NDCG5 8.887 / 9.393 ≈ 0.946这个结果说明当前排序虽然基本把强相关的放到了第一位但中等相关的放到了第 3 位、弱相关的放到了第 5 位比理想排序略有差距所以 NDCG 是 0.946 而不是 1。你看同样是这 3 个相关物品如果在第 3 位和第 5 位的物品互换个位置NDCG 又会变。它真正衡量的是“相关的那几个结果是不是按重要程度从高到低依次出现的”。4.3 它惩罚的是什么位置权重和相关性分级NDCG 有两个设计特别值得玩味。一是位置折损系数。log2(i1) 意味着位置 2 只能获得位置 1 的约 63% 权重位置 4 只有 25%位置 10 只剩 10%。这跟用户真实浏览习惯非常吻合——越靠后的结果曝光机会越小被点击的概率呈指数下降。你不把用户最想要的东西放到前几位后面再相关也白搭。二是 2^rel - 1 的指数增益。它把“强相关”和“弱相关”的差距拉得非常大。同样是提升一个相关级别在 rel1 到 rel2 之间增益从 1 变成 3在 rel2 到 rel3 之间增益从 3 变成 7。这意味着 NDCG 特别在意“强相关物品是不是放在了最强相关的位置上”。所以我通常建议当你手头有“购买 收藏 点击 曝光”这种多级行为数据时可以放心使用 NDCG但如果你只有“点击 / 没点击”这种 0/1 标签NDCG 的评价值会大大缩水这时候用 PrecisionK、RecallK 或者 AUC 反而更直接。5. 指标选择的决策框架从业务目标倒推5.1 信息流“猜你喜欢”NDCG 是主角Recall 是护栏首页信息流是所有推荐场景里最典型的“从上往下浏览”模式。用户没有明确意图就是随便刷。这时候最应该盯着 NDCGK 看因为它关心的是“前几屏的结果质量”跟用户的真实体验高度一致。辅助指标里我会加一个 RecallK 当护栏。信息流推荐最容易犯的毛病是越推越窄最后变成一个回声室。Recall 偏低说明系统覆盖面不足哪怕 NDCG 暂时还好长期看用户也会腻。这时候就要主动调高多样性哪怕牺牲一点 NDCG。5.2 搜索排序Precision1 是第一生命线搜索和推荐的用户心态完全不同。用户带着明确需求来他就想快速找到那个东西第一条结果不对他的失望感会立刻爆表。搜索场景里我首推 Precision1。第一条结果准不准在很大程度上决定了用户要不要继续留在页面里。辅助指标用 NDCG10保证后续结果的整体排序质量。反而不太看 Recall因为搜索本来就只展示一页你把相关结果排到第 30 位跟没排出来没有任何区别。5.3 召回候选池Recall 和 Coverage 才是命门很多推荐系统是“召回 精排”的两段式架构。精排阶段关心排序质量召回阶段关心的是“有没有把该找的东西找出来”。召回阶段的主指标就应该是 RecallK甚至可以直接堆 K比如 Recall500。这个阶段的哲学是“宁可错杀一千不可放过一个”。如果召回阶段把用户感兴趣的内容漏掉了精排模型再强大也无力回天因为候选集里压根没有那些东西。辅助指标里别漏了 Coverage覆盖率它衡量的是推荐系统能覆盖多少不同物品/内容。Coverage 太低说明系统只会反复推少数几个爆款头部长尾失衡盘子做不大。5.4 多指标组合一个主指标两个护栏指标经常有同学问我能不能只用一个指标我的回答是线下可以线上绝对不行。推荐系统是个多目标博弈的场景。你光顾着 NDCG可能把用户推得很“准”但内容多样性崩了你光顾着 Recall可能什么都在推但用户第一屏全是垃圾。所以我的习惯是每个实验选定一个主指标负责方向再配两到三个护栏指标负责“不许翻车”。比如信息流场景主指标 NDCG10护栏指标CTR、人均时长、内容多样性。搜索场景主指标 Precision1护栏指标NDCG10、无结果率。召回阶段主指标 Recall500护栏指标Coverage、离线 A/B 的最终线上 CTR。下表是我自己常用来跟业务方对齐的模板业务场景主指标护栏指标为什么这么选首页信息流NDCG10CTR、人均浏览时长、多样性用户体验是“从上往下刷”前排质量决定一切搜索排序Precision1NDCG10、无结果率用户目标明确第一位错了体验就崩召回候选池Recall500Coverage、离线候选命中率漏掉比推错更可怕覆盖决定上限新品冷启动Coverage、新物品曝光占比多样性、探索成功率避免头部集中给新物品公平的曝光机会这套框架的核心思路是从业务目标倒推指标而不是把论文里的指标拿来就用。你跟业务方对齐的时候不要上来就说“我们的 NDCG 涨了 0.02”要先把这句话翻译成人话“用户想看的那个内容排到前三位的概率提高了。”他们一下就能听懂。6. 评估流程里那些常见的坑我踩过你别踩6.1 随机划分还是时间切分未来信息泄露是硬伤很多新手在划分训练集和测试集时喜欢直接随机切分图省事。这在推荐系统里是大忌。推荐行为的本质是时间序列上的事件用户昨天的收藏会影响他今天的浏览但今天的行为不可能影响昨天。如果随机划分你的测试集里就会混入“未来”的行为模型实际上看到了不该看的信息离线指标会异常虚高。等你上线以后真实预测时没有这种“作弊条件”指标立刻崩。我的做法是严格按时间戳切分训练集取前 80% 时间范围内的行为验证集和测试集各自取后面一段连续时间。哪怕牺牲一点样本量也绝不能要这种虚假的指标提升。6.2 全量召回评估和曝光样本评估结果能差一倍评估的时候我们经常忽略一个问题用户没看到的物品到底算不算“负样本”如果只看曝光样本也就是系统推出去的结果它的点击率天然是不准确的。因为曝光本身带有位置偏差排在第一位的物品就算内容一般点击率也会比第五位高。如果只拿曝光样本评估模型会学着去迎合“曝光位置”而不是学用户真正的兴趣。正确的姿势是建一个完整的候选池把训练期间所有用户可能看到的物品都放进去评估而不是只算曝光过的。同时可以引入“未曝光样本”作为负样本但这个负采样策略要谨慎采多了会把真正的正样本淹没掉。6.3 离线指标和线上目标对不上有次实验我离线调了很久把 NDCG 从 0.61 提到 0.65兴高采烈上线线上 CTR 反而跌了。后来查了半天才发现模型优化目标用的是 BPR 损失这是一个 pairwise 的排序损失但离线评估指标用的是 NDCG。BPR 优化的是“相对顺序够不够好”NDCG 惩罚的是“头部准不准”两者虽然都叫排序目标但侧重点完全不同。这里有个通用原则指标选择要尽量和模型损失函数的优化方向一致。你如果用排序损失训练就优先看 NDCG、AUC 这类排序指标如果用交叉熵训练再看 Precision、Recall、F1 这类分类指标。否则你就是在用两把不一样的尺子量同一个东西越调越糊涂。6.4 重复行为、多账号、单用户权重过重推荐系统里的用户行为并非独立事件。一个重度用户一天可能产生几十次点击一个轻度用户一周只点两次。如果你按行为条数直接平均计算指标结果会被重度用户绑架。处理办法是按用户粒度做聚合再平均。先算每个用户的 Precision、Recall、NDCG然后对所有用户求平均必要时还可以用用户活跃度做加权。这样每个用户的贡献相当不至于让几个“疯狂点击用户”把整体指标带偏。另外要特别小心同一用户多账号、同设备多用户的情况。不做去重评估和线上训练都会出现重复计数干扰模型判断。6.5 只报一个 K 值等于没报最后这个坑很隐蔽很多同学汇报指标时只报一个 NDCG10说“我们的 NDCG 是 0.32比 baseline 高了 0.02”。但这个数字可能完全掩盖真实问题。NDCG1 高、NDCG10 低说明首位很准但后续越来越烂可能是候选池后面全是垃圾。NDCG1 低、NDCG10 高说明系统排名整体还行但最关键的头部出了问题这比前者要严重得多。建议每个实验至少报 1、5、10 三档合成一张小表。别怕麻烦这种多粒度汇报能帮你快速定位问题到底出在“首位精度”还是“整体排序”。同时把 K 值相关的业务含义写清楚——这个 K 对应着用户屏幕上能看到多少个结果大家心里才有数。至于我个人的最后一点体会用了这么多年指标我最大的感受是评价指标是一面镜子照的不是模型的优劣而是你对业务的理解深度。准确率、召回率、F1、NDCG没有哪个指标能独立回答“推荐系统做得好不好”它们各管一段合在一起才能描绘出用户视角的完整图景。真正让数字有意义的从来不是公式本身而是你愿不愿意回去想清楚三件事你的用户到底在什么场景下使用这个系统你的业务目标用哪个指标最能代表以及你的评估流程有没有在骗自己。想透了这三件事哪怕下个项目从头再来你也知道该从哪里下手。

相关新闻

数据可视化如何驱动大数据分析?5大核心应用场景实战拆解

数据可视化如何驱动大数据分析?5大核心应用场景实战拆解

聊到数据可视化,我接触过不少做数据分析的同行,第一反应都是“不就是最后画几张图交差嘛”。这个看法我在早期项目里也有过,直到有一次在某电商数据平台监控中心里,凌晨两点靠一张实时趋势图抓住了支付链路的异常,才彻…

2026/10/18 6:36:53 阅读更多 →
CRM选型实战指南:从需求分析到避坑落地

CRM选型实战指南:从需求分析到避坑落地

CRM选型这件事,我见过太多企业把它搞成了一场豪赌。有团队花了大半年时间调研考察、轮番演示,终于签下一家,结果上线三个月,活跃度只剩百分之二十;也有公司压根没搞正式选型,让销售负责人自己挑了个工具&am…

2026/10/18 6:36:53 阅读更多 →
2026互联网大厂职级薪资全解析:AI测试开发面试与晋升指南

2026互联网大厂职级薪资全解析:AI测试开发面试与晋升指南

1. 从一份薪资爆料帖说起:为什么大家都在盯着这套职级表最近技术圈里聊得最热的话题之一,就是某头部视频平台流出的2026年职级与薪资体系对照表。我前后翻了好几份不同渠道的版本,也跟几位在不同业务线待过的朋友交叉验证了一下,发…

2026/10/18 6:35:53 阅读更多 →

最新新闻

全球电商数据接口一键接入:技术要点与选型指南

全球电商数据接口一键接入:技术要点与选型指南

上个季度我帮一个做跨境电商的朋友整理运营流程,他手上有5个平台账号,每天早晨雷打不动要花两小时导出各后台的订单和库存,再做一轮手工汇总。有一回因为某个平台库存同步晚了半天,一单爆款直接超卖,赔了运费还被买家差…

2026/10/18 7:28:03 阅读更多 →
Python微信小程序电影院购票系统:从建表到并发锁座的完整实现

Python微信小程序电影院购票系统:从建表到并发锁座的完整实现

1. 先从需求拆起:一套能用的影院购票系统,不只是“电影列表 一张订单表”这几天又有人拿着“python微信小程序的电影院购票售票系统”这个题目来找我,说网上模板很多,但要么是纯前端摆了个样子,要么后端只有一张订单表…

2026/10/18 7:28:03 阅读更多 →
从配置到远程开发:这款免费跨平台编辑器的高效使用指南

从配置到远程开发:这款免费跨平台编辑器的高效使用指南

简介:Microsoft Visual Studio Code 的完整 zip 安装资源,面向开发者与编程学习者。该编辑器免费开源,跨 Windows、macOS、Linux 使用,内置 Git 版本控制、IntelliSense 智能补全、调试器、集成终端与扩展市场,原生支持…

2026/10/18 7:28:03 阅读更多 →
C++ Lambda捕获机制:生命周期、悬空引用与闭包原理详解

C++ Lambda捕获机制:生命周期、悬空引用与闭包原理详解

“这段代码要传到后台异步执行,你确定它捕获的变量还活着吗?”——这是我做代码评审时最常抛给写代码的人的一个问题。C的lambda捕获机制,表面上就是中括号里写几个名字的事儿,但几乎每个经历过大型C项目的开发者,都被…

2026/10/18 7:28:03 阅读更多 →
VS Code 高效配置指南:从插件管理到远程开发避坑

VS Code 高效配置指南:从插件管理到远程开发避坑

简介:微软 VS Code 代码编辑器程序目录资源包,适合需要在离线环境安装、定制或研究其内部结构的前后端开发者与运维人员。资源共有七千零九十四份文件,以 JavaScript 脚本、JSON 配置、Markdown 文档、TypeScript 类型定义和 CSS 样式为主&am…

2026/10/18 7:28:03 阅读更多 →
jieba+TF-IDF+SVM:中文垃圾短信分类实战全流程解析

jieba+TF-IDF+SVM:中文垃圾短信分类实战全流程解析

简介:一份面向本科毕业设计场景的自然语言处理中文文本分类实战资源包,聚焦垃圾短信识别任务。资源基于Python3.6环境,借助jieba分词与Scikit-learn机器学习库完成分词、特征提取和分类模型训练,数据文件采用标签加文本的制表分隔…

2026/10/18 7:27:03 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →