用mlhelper charts让模型看得见:自动打开浏览器绘制KNN散点图与决策树

📅 2026/8/24 12:11:41
用mlhelper charts让模型看得见:自动打开浏览器绘制KNN散点图与决策树
用mlhelper charts让模型看得见自动打开浏览器绘制KNN散点图与决策树【免费下载链接】mlhelperAlgorithms and utils for Machine Learning in JavaScript.项目地址: https://gitcode.com/gh_mirrors/ml/mlhelpermlhelper 是一个用 JavaScript基于 Node.js编写的机器学习算法与工具库内置 kNN、决策树、Logistic 回归、AdaBoost 等常用算法。其中最贴心的功能是charts 可视化模块只需一行代码它会自动在本地 4000 端口启动服务并自动打开浏览器为你绘制 KNN 散点图、决策树图形和回归分界线让模型效果看得见。本文带你快速上手这套图表工具。为什么要给模型可视化做机器学习时分类结果是黑盒kNN 到底把测试点判给了哪一类决策树是怎么一步步分裂的Logistic 回归的分界线画在哪里仅凭打印出的数字很难建立直观感受。mlhelper 的 charts 模块把这件事简化到极致——训练完模型后调用绘图函数浏览器自动弹出图表页面新手也能秒懂模型在做什么。安装 mlhelper 并引入 charts 模块通过 npm 安装即可npm install mlhelper也可以克隆源码仓库后本地运行示例git clone https://gitcode.com/gh_mirrors/ml/mlhelper引入方式const charts require(mlhelper).utils.charts;charts 模块的源码位于 src/utils/charts/index.ts提供了drawkNN、drawDT、drawLogistic三个绘图函数官方说明见 docs/graph.md。一行代码绘制 KNN 散点图drawkNN会按类别把训练数据分组绘制成散点并用不同颜色标出待测点一眼看出k 个近邻落在哪些类里const charts require(mlhelper).utils.charts; const kNN require(mlhelper).algorithm.kNN; let knn new kNN(dataSet, labels); let result knn.classify([1.1, 0.8], 4); charts.drawkNN(kNN.autoNormal(dataSet), labels, knn.autoNormalVector([1.1, 0.8]), { width: 500px, height: 400px, size: 15 });调用完成后浏览器自动打开标题为 Scatter plot for kNN 的散点图即刻呈现不同类别的点各占一种颜色测试数据inx单独成组方便你检查 k 值选取是否合理。完整示例可参考 src/algorithm/kNN/test.ts。决策树图形化drawDT 用法ID3 决策树训练后是一棵嵌套的 JS 对象直接打印很难读。drawDT会把它转成图形化的树形结构自动打开浏览器展示const DT require(mlhelper).algorithm.DT; let dt new DT(dataSet, labels); let result dt.classify(labels, [young, myope, no, reduced]); charts.drawDT(dt.getTree(), { width: 600, height: 400 });getTree()返回训练好的树对象见 src/algorithm/DT/index.tssrc/algorithm/DT/test.ts 中就是标准用法。图表背后的原理为什么浏览器会自动打开所有绘图函数最终都会调用 src/utils/charts/server.ts 中的服务函数用 swig 引擎渲染对应算法的 HTML 模板如 src/utils/charts/kNN/tpl.html图表基于 ECharts 绘制用 Express 在4000 端口启动一个只服务该页面的临时服务器根据操作系统自动选择命令打开浏览器——Windows 用start、Linux 用xdg-open、macOS 用open。全程无需手动访问网址脚本跑完就能看到图非常适合本地学习与演示。附加功能Logistic 回归散点图与决策边界如果你训练的是 Logistic 回归drawLogistic还能把训练样本和模型学出的分类直线一起画出来源码见 src/utils/charts/index.tslet weights logi.getWeights(); charts.drawLogistic(dataSet, labels, weights);数据来自鸢尾花数据集见 src/algorithm/logistic/test.ts两类样本被一条直线清晰分开模型效果一目了然。常用配置选项速查三个绘图函数共享一套简单的尺寸配置选项默认值说明width600pxdrawDT 为 600画布宽度height400pxdrawDT 为 400画布高度size20散点大小drawDT 不适用相关文件一览图表模块源码src/utils/charts/index.ts自动开浏览器服务src/utils/charts/server.ts图表模板src/utils/charts/DT/tpl.html、src/utils/charts/kNN/tpl.html、src/utils/charts/logistic/tpl.html算法文档docs/algorithm.md可视化文档docs/graph.md示例数据assets/testSet.txt、assets/train.csv 小贴士kNN 绘图前建议先用autoNormal/autoNormalVector做归一化这样测试点才不会跑出画布范围决策树节点较多时可调大width和height保证图形完整。总结mlhelper 的 charts 模块把模型可视化这件事做到了最低门槛训练完 kNN 或决策树后一行drawkNN/drawDT即可自动打开浏览器看到散点图与树形结构无需任何 Web 开发经验。配合 Logistic 回归的边界绘制这套免费、轻量的图表工具非常适合新手在 Node.js 环境下学习机器学习。【免费下载链接】mlhelperAlgorithms and utils for Machine Learning in JavaScript.项目地址: https://gitcode.com/gh_mirrors/ml/mlhelper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考