Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.82 KB | None | 0 0
  1. DROP TABLE BANKFULLADDITIONAL
  2. DROP TABLE DECISiON_TREE_MODEL_SETTINGS
  3.  
  4. ALTER TABLE BANKFULL add (ROW_ID VARCHAR2(30));
  5. UPDATE BANKFULL SET row_id = ROWNUM;
  6.  
  7. CREATE TABLE bankfull_test
  8. AS SELECT * FROM BANKFULLADDITIONAL
  9. WHERE ROWNUM < 1;
  10.  
  11.  
  12. DROP TABLE bankfull_data_valid1
  13. CREATE TABLE bankfull_data_valid1
  14. AS SELECT * FROM BANKFULLADDITIONAL
  15.  
  16.  
  17.  
  18. SELECT * FROM bankfull_data_valid1
  19.  
  20.  
  21.  
  22. DROP TABLE decision_tree_model_settings;
  23.  
  24. CREATE TABLE decision_tree_model_settings (
  25. setting_name VARCHAR2(300),
  26. setting_value VARCHAR2(300));
  27.  
  28. BEGIN
  29.    INSERT INTO decision_tree_model_settings (setting_name, setting_value)
  30.    VALUES (dbms_data_mining.algo_name,dbms_data_mining.algo_decision_tree);
  31.  
  32.    INSERT INTO decision_tree_model_settings (setting_name, setting_value)
  33.    VALUES (dbms_data_mining.prep_auto,dbms_data_mining.prep_auto_on);
  34.    COMMIT;
  35. END;
  36.  
  37.  
  38.  
  39.  
  40. BEGIN
  41. DBMS_DATA_MINING.CREATE_MODEL(
  42.    model_name => 'Decision_Tree',
  43.    mining_function => dbms_data_mining.classification,
  44.    data_table_name => 'bankfull',
  45.    case_id_column_name => 'row_id',
  46.    target_column_name => 'y',
  47.    settings_table_name => 'decision_tree_model_settings');
  48. END;
  49.  
  50. describe user_mining_model_settings
  51.  
  52.  
  53. SELECT model_name,
  54.    mining_function,
  55.    algorithm,
  56.    build_duration,
  57.    model_size
  58. FROM user_MINING_MODELS;
  59.  
  60.  
  61. SELECT setting_name,
  62.    setting_value,
  63.    setting_type
  64. FROM user_mining_model_settings;
  65.  
  66.  
  67. SELECT attribute_name,
  68.    attribute_type,
  69.    usage_type,
  70.    target
  71. FROM all_mining_model_attributes
  72. WHERE model_name = 'DECISION_TREE';
  73.  
  74.  
  75.  
  76. CREATE OR REPLACE VIEW demo_class_dt_test_results
  77. AS
  78. SELECT row_id,
  79.    prediction(DECISION_TREE USING *) predicted_value,
  80.    prediction_probability(DECISION_TREE USING *) probability
  81. FROM BANKFULL;
  82.  
  83. SELECT *
  84. FROM demo_class_dt_test_results;
  85.  
  86. DROP TABLE NEW_DATA_SCORED
  87.  
  88. BEGIN
  89.    dbms_data_mining.apply(
  90.    model_name => 'Decision_Tree',
  91.    data_table_name => 'BANKFULL',
  92.    case_id_column_name => 'row_id',
  93.    result_table_name => 'NEW_DATA_SCORED');
  94. END;
  95.  
  96.  
  97.  
  98. SELECT *
  99. FROM BANKFULLADDITIONAL
  100.  
  101. DECLARE
  102.    v_accuracy NUMBER;
  103. BEGIN
  104. DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
  105.    accuracy => v_accuracy,
  106.    apply_result_table_name => 'demo_class_dt_test_results',
  107.    target_table_name => 'BANKFULL',
  108.    case_id_column_name => 'row_id',
  109.    target_column_name => 'y',
  110.    confusion_matrix_table_name => 'demo_class_dt_confusion_matrix_final',
  111.    score_column_name => 'PREDICTED_VALUE',
  112.    score_criterion_column_name => 'PROBABILITY',
  113.    cost_matrix_table_name => NULL,
  114.    apply_result_schema_name => NULL,
  115.    target_schema_name => NULL,
  116.    cost_matrix_schema_name => NULL,
  117.    score_criterion_type => 'PROBABILITY');
  118.    DBMS_OUTPUT.PUT_LINE('**** MODEL ACCURACY ****: ' || ROUND(v_accuracy,4));
  119. END;
  120.  
  121.  
  122. SELECT *
  123. FROM demo_class_dt_confusion_matrix;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement