5 Replies Latest reply on Feb 8, 2012 2:19 PM by Mark Kelly-Oracle

    Attribute Importance - Difference in values

      I've run the Attribute importance using ODM in SQL Dev and got results as listed on my blog post http://brendantierneydatamining.blogspot.com/2012/02/odm-11gr2attribute-importance.html

      I wanted to create a new blog post on running Attribute Importance using the PL/SQL API, but I get a different set of results with different Importance Value and ranking. The results from using the PL/SQL API are
      -------------------- -------------------- ---------------- ----------
      HOUSEHOLD_SIZE .151685183 1
      CUST_MARITAL_STATUS .145294546 2
      YRS_RESIDENCE .07838928 3
      Y_BOX_GAMES .063039952 4
      EDUCATION .059605314 5
      HOME_THEATER_PACKAGE .056458722 6
      OCCUPATION .042840307 7
      CUST_GENDER .035264741 8
      OS_DOC_SET_KANJI -.00050013 11
      FLAT_PANEL_MONITOR -.00509564 12
      BULK_PACK_DISKETTES -.00540822 13
      COUNTRY_NAME -.01201116 14
      AGE -.02921108 15
      CUST_INCOME_LEVEL -.03951311 16

      Can you explain why I'm getting different values, ranking etc Yes I've used the same data etc
        • 1. Re: Attribute Importance - Difference in values
          Mark Kelly-Oracle
          Hi Brendan,
          The Column Filter implementation does not actually create a AI Model to generate the ranking.
          So there is basically a different implementation being used.
          We are working on a ODMr enhancement that will generate a sqlplus script that will expose all the pl/sql used during the model building process.
          At that point, it should be much easier to analyze the details.
          • 2. Re: Attribute Importance - Difference in values
            So there are two different MDL algorithms being available. One in the ODM tool and a different one in the DB ? Why ?
            • 3. Re: Attribute Importance - Difference in values
              Mark Kelly-Oracle
              Not really.
              They both use the same implementation.
              ODMr does not need to create a model, so instead, a function is used that returns a result set.
              Either approach will produce the same result, as long as you build the model properly.
              See script below, that produces an AI model using he same data you noted.
              You need to create a settings table and turn ADP on.
              Thanks, Mark

              set serveroutput on
              DROP TABLE ai_mk_model_settings;
              -- Create the settings table
              CREATE TABLE ai_mk_model_settings (
              setting_name VARCHAR2(30),
              setting_value VARCHAR2(30));

              INSERT INTO ai_mk_model_settings (setting_name, setting_value) VALUES

              -- Create the model using the specified settings

              model_name => 'AI_SH_SAMPLE_3',
              mining_function => DBMS_DATA_MINING.ATTRIBUTE_IMPORTANCE,
              data_table_name => 'mining_data_build_v',
              case_id_column_name => 'cust_id',
              target_column_name => 'affinity_card',
              settings_table_name => 'ai_mk_model_settings');

              SELECT *
              ORDER BY RANK;
              • 4. Re: Attribute Importance - Difference in values
                Thanks Mark.

                Is ADP automatically used (Turned On) in the ODM tool and not in the DB when using PL/SQL ?

                Is there a way we can look at what the ADP function does to the data (what methods, rules, etc have been applied to each attribute) ?
                • 5. Re: Attribute Importance - Difference in values
                  Mark Kelly-Oracle
                  ADP Processing:

                  ADP is off by default in ODM proper.
                  ODMr uses ADP extensively. Users can turn it off per column via the build node settings if they wish.

                  Viewing ADP Transformations:

                  ODMr will display these in model viewer Settings tab under the sub tab Inputs.
                  THe Inputs panel is a split panel viewer so you sometimes need to grab the splitter to move it up, to make the transformations more visible.
                  From the API you can use the following to query the transformations:
                  select * from

                  The ODM Doc provides details on how to use ADP and specify your own embedded transformations.

                  Thanks, Mark