この付録では、データ・マイニングの基本機能がデータベースに存在するかどうかをテストする一連のSQLおよびPL/SQLコマンドについて説明します。これらのコマンドは、追加のソフトウェアをダウンロードまたはインストールせずにデータベースで直接実行できます。
|
注意: これらのコマンドでは、いくつかのデータ・マイニング・モデルの作成およびスコアリングを行います。これらのモデルで、意味のあるデータ・マイニングは実行しません。モデルの作成およびスコアリング操作が適切に機能しているかどうかを示すだけです。 |
内容は次のとおりです。
SQL*PlusまたはSQL Developerで、システム・ユーザーとしてデータベースに接続します。これらのツールの起動方法がわからない場合には、「アプリケーション開発ツールの接続」を参照してください。
CONNECT sys / as sysdba
Enter password: <sys_password>
USERS表領域およびTEMP表領域がデータベースに存在することを確認します。これらの表領域は通常、デフォルトで含まれており、インストール時に作成される初期データベースに常に含まれます(「Oracle Databaseのインストール」を参照)。単純な問合せで確認ができます。
select tablespace_name from dba_tablespaces;
例A-1のコマンドをテキスト・ファイルにコピーし、.SQLという拡張子で保存するとスクリプトを作成でき、スクリプトはSQLコマンドラインから実行します。
SQL> @ script_name.SQL
あるいは、例A-1からSQLコマンドラインに各コマンドをコピーし、個々に実行することもできます。
例A-1 Data Miningのインストールを確認するコマンド
--------------------------------------------------------
-- create a data mining user
--------------------------------------------------------
CREATE USER dm IDENTIFIED BY <dm_password>
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 20M ON users;
-- grant minimum privileges
GRANT create mining model TO dm;
GRANT create table TO dm;
GRANT create view TO dm;
GRANT create session TO dm;
--------------------------------------------------------
-- create a simple table for mining
--------------------------------------------------------
CONNECT dm/dm;
CREATE TABLE mt (p NUMBER, t NUMBER);
INSERT INTO mt VALUES (1,1);
INSERT INTO mt VALUES (2,2);
COMMIT;
--------------------------------------------------------
-- create models
--------------------------------------------------------
EXEC dbms_data_mining.create_model('MAI','ATTRIBUTE_IMPORTANCE','MT',null,'T');
EXEC dbms_data_mining.create_model('MAR','ASSOCIATION','MT','T');
EXEC dbms_data_mining.create_model('MNB','CLASSIFICATION','MT',null,'T');
EXEC dbms_data_mining.create_model('MSVM','REGRESSION','MT',null,'T');
EXEC dbms_data_mining.create_model('MKM','CLUSTERING','MT',null);
EXEC dbms_data_mining.create_model('MNMF','FEATURE_EXTRACTION','MT',null);
-- check the models
SELECT model_name, algorithm FROM user_mining_models;
--------------------------------------------------------
-- score models
--------------------------------------------------------
SELECT p,t,PREDICTION(MNB USING *) pred_nb,
p,t,prediction(MSVM USING *) pred_svm,
p,t,cluster_id(MKM USING *) clus,
p,t,feature_id(MNMF USING *) feat
FROM mt;
--------------------------------------------------------
-- drop the models and data
--------------------------------------------------------
EXEC dbms_data_mining.drop_model('MAI');
EXEC dbms_data_mining.drop_model('MAR');
EXEC dbms_data_mining.drop_model('MNB');
EXEC dbms_data_mining.drop_model('MSVM');
EXEC dbms_data_mining.drop_model('MKM');
EXEC dbms_data_mining.drop_model('MNMF');
DROP TABLE mt PURGE;
例A-1のコマンドの出力は、次のとおりです。
User created.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Connected.
Table created.
1 row created.
1 row created.
Commit complete.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
MODEL_NAME ALGORITHM
------------------------------ ------------------------------
MAI MINIMUM_DESCRIPTION_LENGTH
MAR APRIORI_ASSOCIATION_RULES
MKM KMEANS
MNB NAIVE_BAYES
MNMF NONNEGATIVE_MATRIX_FACTOR
MSVM SUPPORT_VECTOR_MACHINES
6 rows selected.
P T PRED_NB P T PRED_SVM P
---------- ---------- ---------- ---------- ---------- ---------- ----------
T CLUS P T FEAT
---------- ---------- ---------- ---------- ----------
1 1 1 1 1 1.48008198 1
1 3 1 1 1
2 2 2 2 2 1.51991802 2
2 2 2 2 1
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
Table dropped.