您现在的位置是:亿华云 > 系统运维
如果不能用Python执行机器学习,那该用什么呢?
亿华云2025-10-03 02:16:56【系统运维】6人已围观
简介本文转载自公众号“读芯术”(ID:AI_Discovery)长期学习数据科学的人一定知道如何用Python、R和Julia这些语言执行机器学习任务。然而,如果速度很关键,但硬件很有限,或者所在公司仅使
本文转载自公众号“读芯术”(ID:AI_Discovery)
长期学习数据科学的用那该人一定知道如何用Python、R和Julia这些语言执行机器学习任务。执行然而,机器如果速度很关键,学习但硬件很有限,用那该或者所在公司仅使用SQL进行预测分析,执行又该怎么办呢?机器答案就是——数据库内的机器学习。
本文使用的学习是Oracle Cloud。它是用那该免费的,你可以注册并创建一个OLTP数据库 (19c版本,执行有0.2TB的机器存储空间)。完成之后,学习下载云钱包并通过SQL Developer或任何其他工具建立连接。用那该这个过程至少要花费10分钟,执行但操作很简单,机器所以这里不多做赘述。
下面将使用Oracle机器学习(OML)在著名的Iris数据集中训练一个分类模型。选择它是因为无须任何准备,只需要创建表格并插入数据。
数据准备
如前所述,要创建一个表格来保存Iris数据集,然后将数据加载到其中。OML要求使用一个列作为行ID(序列),因此要记住:
CREATE SEQUENCE seq_iris; CREATE TABLE iris_data( iris_id NUMBER DEFAULT seq_iris.NEXTVAL, sepal_length NUMBER, sepal_width NUMBER, petal_length NUMBER, petal_width NUMBER, species VARCHAR2(16) );现在可以下载数据并进行加载了:

当一个模态窗口弹出时,源码下载只需提供下载CSV的路径并多次点击Next。SQL开发员无需帮助也能正确完成工作。

模型训练
现在可以动手做一些有趣的事情了。训练分类模型可以分解为多个步骤,例如训练/测试分割、模型训练和模型评估,我们从最简单的开始。
训练/测试分割
Oracle常用两个视图完成该步骤:一个用于训练数据,一个用于测试数据。可以轻松创建这些神奇PL/SQL:
BEGIN EXECUTE IMMEDIATE ‘CREATE OR REPLACE VIEW iris_train_data AS SELECT * FROM iris_data SAMPLE (75) SEED (42)’; EXECUTE IMMEDIATE ‘CREATE OR REPLACE VIEW iris_test_data AS SELECT * FROM iris_data MINUS SELECT * FROM iris_train_data’; END; /该脚本完成下列两件事:
创建一个训练视图-75%的数据 (SAMPLE (75)) 在随机种子42中分割( SEED (42))。 创建一个测试视图-区分整个数据集和训练视图数据储存在叫做iris_train_data和iris_test_data的视图中,猜猜看它们分别存什么。
SELECT COUNT(*) FROM iris_train_data; >>> 111 SELECT COUNT(*) FROM iris_test_data; >>> 39模型训练
模型训练最简单的方法是无须创建额外的设置表格,只执行单一过程的DBMS_DATA_MINING包。使用决策树算法来训练模型。方法如下:
DECLARE v_setlstDBMS_DATA_MINING.SETTING_LIST; BEGIN v_setlst(‘PREP_AUTO’) := ‘ON’; v_setlst(‘ALGO_NAME’) :=‘ALGO_DECISION_TREE’; DBMS_DATA_MINING.CREATE_MODEL2( ‘iris_clf_model’, ‘CLASSIFICATION’, ‘SELECT * FROM iris_train_data’, v_setlst, ‘iris_id’, ‘species’ ); END; /CREATE_MODEL2过程接受多种参数。接着我们对进入的参数进行解释:
iris_clf_model — 只是模型名称,它可以是任何东西。 CLASSIFICATION — 正在进行的机器学习任务,因某种原因必须大写。服务器托管 SELECT * FROM iris_train_data — 指定训练数据存储位置。 v_setlst — 模型的上述设置列表。 iris_id — 序列类型列的名称(每个值都是唯一的)。 species — 目标变量的名称(试图预测的东西)执行这一模块需要一到两秒钟,执行完毕就可以开始计算了!
模型评价
使用该脚本评估此模型:
BEGIN DBMS_DATA_MINING.APPLY( ‘iris_clf_model’, ‘iris_test_data’, ‘iris_id’, ‘iris_apply_result’ ); END; /它将iris_clf_model应用于不可见测试数据iris_test_data,并将评估结果存储到iris_apply_result表中。

行数更多(39×3),但突显了要点。这还不够直观,所以下面以一种稍微不同的方式来展示结果:
DECLARE CURSOR iris_ids IS SELECT DISTINCT(iris_id) iris_id FROM iris_apply_result ORDER BY iris_id; curr_y VARCHAR2(16); curr_yhat VARCHAR2(16); num_correct INTEGER := 0; num_total INTEGER := 0; BEGIN FOR r_id IN iris_ids LOOP BEGIN EXECUTE IMMEDIATE ‘SELECT species FROM iris_test_data WHERE iris_id = ‘ ||r_id.iris_id INTO curr_y; EXECUTE IMMEDIATE ‘SELECT prediction FROM iris_apply_result WHERE iris_id = ‘ ||r_id.iris_id || ‘AND probability = ( SELECTMAX(probability) FROMiris_apply_result WHERE iris_id = ‘|| r_id.iris_id || ‘)’ INTO curr_yhat; END; num_total := num_total + 1; IF curr_y = curr_yhat THEN num_correct := num_correct +1; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE(‘Num. testcases: ‘ || num_total); DBMS_OUTPUT.PUT_LINE(‘Num. correct :‘ || num_correct); DBMS_OUTPUT.PUT_LINE(‘Accuracy : ‘ || ROUND((num_correct /num_total), 2)); END; /确实很多,但上述脚本不能再简化了。下面进行分解:
CURSOR—得到所有不同的iris_ids(因为iris_apply_results 表中有重复)。 curr_y, curr_yhat, num_correct, num_total 是存储每次迭代中的实际种类和预测种类、正确分类数量和测试项总数的变量。 对于每个唯一的iris_id 得到实际种类(来自匹配ID的iris_test_data)和预测种类(在 iris_apply_results 表中预测概率最高) 轻松检查实际值和预测值是否相同——这表明分类是正确的。 变量 num_total 和 num_correct 在每次迭代中更新。 最后,云服务器提供商将模型性能打印到控制台。下面为该脚本输出:

以上就是模型评估的基本内容。
并不是所有人在工作中都能使用Python,现在,你又掌握了一种解决机器学习任务的方法。
很赞哦!(44319)
相关文章
- 国际高性能计算和人工智能咨询委员会公布第五届亚太区 HPC-AI竞赛结果
- 2、定期提交和投标域名注册。例如,益华网络点击“立即预订”后,平台会抢先为客户注册域名。当然,一个域名可能会被多个客户预订,所以出价最高的人中标。
- 付款完成后,您只需耐心等待,如果您注册成功,系统会提示您。这里需要注意的是,域名是一个即时产品,只有在最终付款成功时才能预订,注册成功后不能更改。
- 小白注册网站域名该怎么办?有什么步骤?
- 如何为数据中心设计可扩展且灵活的布线系统?
- 当投资者经过第二阶段的认真学习之后又充满了信心,认为自己可以在市场上叱咤风云地大干一场了。但没想到“看花容易绣花难”,由于对理论知识不会灵活运用.从而失去灵活应变的本能,就经常会出现小赢大亏的局面,结果往往仍以失败告终。这使投资者很是困惑和痛苦,不知该如何办,甚至开始怀疑这个市场是不是不适合自己。在这种情况下,有的人选择了放弃,但有的意志坚定者则决定做最后的尝试。
- 评估域名涉及的行业规模与发展状况成正比。
- 域后缀首选.com,.net,然后是.cn。后缀选择不当,导致流量损失。域名是企业与互联网网址之间的链接,关键是企业在网络上存在的标志。因此,选择好域名是开展网上工作的首要重要条件。
- DPU全球混战,国内多家崛起
- 为什么喜欢国外注册域名?国外注册域名注意什么?