如何解决不能用Python执行机器学习问题

发布时间:2021-10-25 13:45:57 作者:iii
来源:亿速云 阅读:81

这篇文章主要介绍“如何解决不能用Python执行机器学习问题”,在日常操作中,相信很多人在如何解决不能用Python执行机器学习问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决不能用Python执行机器学习问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

数据准备

如前所述,要创建一个表格来保存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) );

现在可以下载数据并进行加载了:

如何解决不能用Python执行机器学习问题

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

如何解决不能用Python执行机器学习问题

模型训练

现在可以动手做一些有趣的事情了。训练分类模型可以分解为多个步骤,例如训练/测试分割、模型训练和模型评估,我们从最简单的开始。

训练/测试分割

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; /

该脚本完成下列两件事:

数据储存在叫做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过程接受多种参数。接着我们对进入的参数进行解释:

执行这一模块需要一到两秒钟,执行完毕就可以开始计算了!

模型评价

使用该脚本评估此模型:

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表中。

如何解决不能用Python执行机器学习问题

行数更多(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; /

确实很多,但上述脚本不能再简化了。下面进行分解:

下面为该脚本输出:

如何解决不能用Python执行机器学习问题 

到此,关于“如何解决不能用Python执行机器学习问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. python执行nohup不生效怎么办
  2. 怎么解决执行Python程序时模块报错问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:操作Bash历史记录的快捷方式有哪些

下一篇:Python爬虫经常会被封的原因是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》