当前位置: 首页 > news >正文

利用MLPack插件在DuckDB中机器学习

先安装mlpack插件

D load httpfs;
D INSTALL mlpack FROM community;
100% ▕██████████████████████████████████████▏ (00:00:06.43 elapsed)  

鸢尾花数据集(Iris Dataset)是机器学习中最经典的入门数据集之一。

鸢尾花数据集包含了三种鸢尾花(Setosa、Versicolor、Virginica)每种花的 4 个特征:花萼长度、花萼宽度、花瓣长度和花瓣宽度。

接下来我们的任务是基于这些特征来预测鸢尾花的种类。
示例脚本中有一处错误,mlpack_adaboost_train函数误写作mlpack_adaboost,已改正。

load httpfs;
load mlpack;
.timer on-- Perform adaBoost (using weak learner 'Perceptron' by default)
-- Read 'features' into 'X', 'labels' into 'Y', use optional parameters
-- from 'Z', and prepare model storage in 'M'
CREATE TABLE X AS SELECT * FROM read_csv("https://eddelbuettel.github.io/duckdb-mlpack/data/iris.csv");
CREATE TABLE Y AS SELECT * FROM read_csv("https://eddelbuettel.github.io/duckdb-mlpack/data/iris_labels.csv");
CREATE TABLE Z (name VARCHAR, value VARCHAR);
INSERT INTO Z VALUES ('iterations', '50'), ('tolerance', '1e-7');
CREATE TABLE M (key VARCHAR, json VARCHAR);-- Train model for 'Y' on 'X' using parameters 'Z', store in 'M'
CREATE TEMP TABLE A AS SELECT * FROM mlpack_adaboost_train("X", "Y", "Z", "M");-- Count by predicted group
SELECT COUNT(*) as n, predicted FROM A GROUP BY predicted;-- Model 'M' can be used to predict
CREATE TABLE N (x1 DOUBLE, x2 DOUBLE, x3 DOUBLE, x4 DOUBLE);
-- inserting approximate column mean values
INSERT INTO N VALUES (5.843, 3.054, 3.759, 1.199);
-- inserting approximate column mean values, min values, max values
INSERT INTO N VALUES (5.843, 3.054, 3.759, 1.199), (4.3, 2.0, 1.0, 0.1), (7.9, 4.4, 6.9, 2.5);
-- and this predict one element each
SELECT * FROM mlpack_adaboost_pred("N", "M");

执行结果如下:

root@66d4e20ec1d7:/par# ./duckdb141 mlpack
DuckDB v1.4.1 (Andium) b390a7c376
Enter ".help" for usage hints.
D .read ml.txt
Run Time (s): real 1.646 user 0.012000 sys 0.004000
Run Time (s): real 2.675 user 0.008000 sys 0.004000
Run Time (s): real 0.042 user 0.000000 sys 0.000000
Run Time (s): real 0.042 user 0.000000 sys 0.000000
Run Time (s): real 0.041 user 0.000000 sys 0.000000
Misclassified: 1
Run Time (s): real 0.118 user 0.192000 sys 0.000000
┌───────┬───────────┐
│   n   │ predicted │
│ int64 │   int32   │
├───────┼───────────┤
│    500 │
│    491 │
│    512 │
└───────┴───────────┘
Run Time (s): real 0.001 user 0.000000 sys 0.000000
Run Time (s): real 0.040 user 0.000000 sys 0.000000
Run Time (s): real 0.042 user 0.004000 sys 0.000000
Run Time (s): real 0.041 user 0.000000 sys 0.000000
┌───────────┐
│ predicted │
│   int32   │
├───────────┤
│         1 │
│         1 │
│         0 │
│         2 │
└───────────┘
Run Time (s): real 0.003 user 0.004000 sys 0.000000

查看表中数据

D from x;
┌─────────┬─────────┬─────────┬─────────┐
│ column0 │ column1 │ column2 │ column3 │
│ doubledoubledoubledouble  │
├─────────┼─────────┼─────────┼─────────┤
│     5.13.51.40.2 │
│      ·  │      ·  │      ·  │      ·  │
│     5.93.05.11.8 │
├─────────┴─────────┴─────────┴─────────┤
│ 150 rows (40 shown)         4 columns │
└───────────────────────────────────────┘
Run Time (s): real 0.146 user 0.016000 sys 0.000000
D from y;
┌────────────┐
│  column0   │
│   int64    │
├────────────┤
│          0 │
│          · │
│          2 │
├────────────┤
│  150 rows  │
│ (40 shown) │
└────────────┘
Run Time (s): real 0.001 user 0.000000 sys 0.000000
D from z;
┌────────────┬─────────┐
│    name    │  value  │
│  varcharvarchar │
├────────────┼─────────┤
│ iterations │ 50      │
│ tolerance  │ 1e-7    │
└────────────┴─────────┘
Run Time (s): real 0.001 user 0.000000 sys 0.000000
D from m;
┌─────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│   key   │                                                                                       json                                                                                       │
│ varcharvarchar                                                                                      │
├─────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ model   │ {\n    "x": {\n        "cereal_class_version": 1,\n        "numClasses": 3,\n        "tolerance": 1e-7,\n        "maxIterations": 50,\n        "alpha": [\n            1.68364…  │
└─────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Run Time (s): real 0.001 user 0.000000 sys 0.000000
D from n;
┌────────┬────────┬────────┬────────┐
│   x1   │   x2   │   x3   │   x4   │
│ doubledoubledoubledouble │
├────────┼────────┼────────┼────────┤
│  5.8433.0543.7591.199 │
│  5.8433.0543.7591.199 │
│    4.32.01.00.1 │
│    7.94.46.92.5 │
└────────┴────────┴────────┴────────┘
Run Time (s): real 0.001 user 0.004000 sys 0.000000
D from a;
┌────────────┐
│ predicted  │
│   int32    │
├────────────┤
│          0 │
│          · │
│          2 │
├────────────┤
│  150 rows  │
│ (40 shown) │
└────────────┘
Run Time (s): real 0.001 user 0.000000 sys 0.000000

因为数据集很小,才150行,虽然迭代50次,训练模型和预测都非常快,模型的精度也还可以,只有1个分类错误。

http://www.dtcms.com/a/572636.html

相关文章:

  • 做电子书的网站很有名后来被关闭了东营市建设局官网
  • 企业微信可信IP配置的Python完美解决方案
  • 卫朋:IPD如何实现战略解码?三步翻译术
  • 德州市市长朱开国率队到访深兰科技,加速推进机器人产业落地与合作深化
  • Redis中的分布式锁
  • JVM核心知识整理《1》
  • 可以上传数据的网站开发图书页面设计模板
  • 09.MCP协议介绍
  • 彻底讲清楚 Kotlin 的 when 表达式
  • 济宁网站建设 果壳科技腾讯云主机
  • 百度收录不到我的网站聊大 网站设计
  • Jackson SerializerModifier 拦截器(高性能)实现时间戳自动添加
  • 虚拟机server2012 安装oracle11g遇到的坑
  • Webpack中各种devtool配置的含义与SourceMap生成逻辑
  • 深入理解 PostgreSQL Tuple 与 Dead Tuple:检测方法与 VACUUM 自动化实践
  • 系统分析师-案例分析-数据库系统数据仓库反规范化技术NoSQL内存数据库
  • 用Python来学微积分32-定积分的可积性条件详解
  • 游戏远程操控性能横评:ToDesk、Parsec、UU远程深度对比
  • 【C/C++刷题集】二叉树算法题(二)
  • Django登录注册完整代码(图片、邮箱验证、加密)
  • 基于Optuna 贝叶斯优化的自动化XGBoost 超参数调优器
  • Qt开发初识
  • ReactNative 快速入门手册
  • 【C++:map和set的使用】C++ map/multimap完全指南:从红黑树原理入门到高频算法实战
  • GPT-OSS大模型Attention架构设计
  • 基于Mask R-CNN和TensorRT的高效草莓实例分割
  • RV1126 NO.38:OPENCV查找图形轮廓重要API讲解
  • 腾讯WAIC发布“1+3+N”AI全景图:混元3D世界模型开源,具身智能平台Tairos亮相
  • 各种开源闭源大模型,包括自己本地部署的一些8b 14b模型,支持函数调用(功能调用)function call吗?
  • Spring Boot 深度剖析:从虚拟线程到声明式 HTTP 客户端,再到云原生最优解