Mô tả các thử nghiệm

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số thử nghiệm khai phá dữ liệu trong cơ sở dữ liệu ORACLE (Trang 77)

Chức

năng Mô hình /Dữ liệu Form Bảng dữ liệu vào Số bản ghi Kết quả Thờ i gian Rời rạc dữ liệu Xây dựng

DIS_build census_2d_test_unbinned 2940 census_2d_num

census_2d_cat 2” áp dụng DIS_Apply census_2d_apply_unbinne d 1226 census_2d_appl y_binned_v 2” Phân lớp, Naive Bayee s Xây dựng NB_Build census_2d_build_unbinne d 2940 Sample_NB_Mo del 8” Kiểm thử NB_Test census_2d_Test_unbinne d 834 4” áp dụng NB_Apply census_2d_Apply_unbinn ed 1226 38’’ Cây quyết định Xây dựng ABN_build census_2d_build_binned 2940 1’6’’ Kiểm thử ABN_Test census_2d_Test_binned 834 1’5’’ áp dụng ABN_Appl y census_2d_Apply_binned 1226 35’’ Luật kết hợp Quan hệ Ass_Rule_ 2d market_basket_2d_binned 1000 42’’ Giao dịch Ass_Rule_ Tx market_basket_tx_binned 3799 39’’ Gộp nhóm Xây dựng Clust_build eight_clouds_buid_unbinn ed 4000 36’’

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle áp dụng Clust_Appl y eight_clouds_apply_unbin ned 4000 35’’ Dữ liệu BHNT Luật kết hợp Ass_Rule_ 2d Mua_sf 7995 2 1’

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle IV.3.2. Phân lớp

1. Xây dựng mô hình ABN

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

3. Áp dụng mô hình ABN

4. Áp dụng mô hình NB

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle IV.3.3. Luật kết hợp

1. Dữ liệu dạng giao dịch

2. Dữ liệu quan hệ

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle IV.3.4. Gộp nhóm

1. Xây dựng mô hình

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle IV.3.5. Khai phá luật kết hợp trong CSDL Bảo Việt

1. Chuẩn bị dữ liệu từ dữ liệu Khách hàng, hợp đồng và Sản phẩm.

Số lượng bản ghi hợp đồng BHNT là 84922

drop table mua_sf;

create table mua_sf as (select id,

TO_NUMBER(decode ( NT_5,null,null,1)) as NHAN_THO_5,

...

TO_NUMBER(decode ( DKR_4,null,NULL,1)) as DKR_4 ,,,,

from nt_dkr c, nt_hopdong b ,nt_khach a where a.kh_id=b.tgia_id and c.hd_id=b.hd_id AND SUBSTR(KH_ID,1,4)='1002') group by id ) )

Đƣa dữ liệu vào bảng giao dịch mua_sf_tx

create table mua_sf_tx as (select * from odm_mtr.market_basket_Tx_binned where 1=2); insert all

into mua_sf_tx (sequence_ID, Attribute_name,value)

values (ID,'NHAN_THO_5 ',decode(NHAN_THO_5 ,null,null,1) ) ...

into mua_sf_tx (sequence_ID, Attribute_name,value) values (ID,'DKR_4',decode(DKR_4,null,null,1) ) (SELECT * FROM mua_sf ) ;

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

Số lượng bản ghi mua_sf_Tx là 79952 2. Kết quả khai phá luật kết hợp

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

KẾT LUẬN

Trong khuôn khổ của luận văn chƣa có điều kiện để thử nghiệm đƣợc đầy đủ các định hƣớng khai phá trên các dữ liệu thật và đƣa ra kết quả cụ thể. Một phần do những yêu cầu bảo mật số liệu kinh doanh của các ngành, mặt khác do hạn chế: các nguồn số liệu còn thiếu các thông tin quan trọng cho khai phá nhƣ các thông tin thu nhập cá nhân, các tình trạng bệnh tật, sức khoẻ… và sự phối hợp với các chuyên gia chuyên ngành còn chƣa đủ chặt chẽ để có thể tận dụng hết các hiểu biết về nhu cầu phân tích định hƣớng ra quyết định.

Luận văn mới chỉ sử dụng đƣợc một phần các lý thuyết, các cách tiếp cận và thử nghiệm một số mô hình thuật toán khai phá tri thức trong các CSDL Oracle nhƣ khai phá luật kết hợp trong các giao dịch bán lẻ, các sản phẩm BHNT, phân loại, gộp nhóm khách hàng. Các kết quả này chƣa mang nhiều ý nghĩa thực tế, nhƣng có thể đánh giá đƣợc về mặt thời gian, và sự ổn định của các mô hình và thuật toán. Dữ liệu BHNT đƣợc thử nghiệm trên 3 bộ số liệu của 3 Công ty khác nhau đều có kết quả tƣơng tự. Thời gian khai phá luật kết hợp trên tập dữ liệu khoảng 80 000 bản ghi với 12 sản phẩm (mặt hàng) khoảng 1 phút.

Kết quả đạt đựợc

Tổng kết, đánh giá một số chức năng, nhiệm vụ và các kỹ thuật cơ bản trong khai phá dữ liệu.

Xây dựng các công cụ, giao diện dễ dùng trợ giúp chuyên gia tiến hành khai phá dữ liệu trên nền CSDL Oracle 9i và sử dụng môi trƣờng phát triển ứng dụng của Oracle.

Phân tích một số định hƣớng khai phá dữ liệu cho các lĩnh vực thuế và bảo hiểm.

Tiến hành khai phá trên một số dữ liệu thử nghiệm.

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

Định hƣớng phát triển.

Tìm hiểu, nghiên cứu khai thác rộng và sâu hơn nữa các tri thức về lý thuyết cơ bản của khai phá dữ liệu để có thể vận dụng vào thực tiễn chính xác hơn.

Hoàn thiện các công cụ và giao diện hỗ trợ chuyên gia khai phá dữ liệu. Thử nghiệm và đánh giá kỹ hơn các thuật toán trên số liệu thật.

Khai phá dữ liệu trên kho dữ liệu với các luật kết hợp đa chiều, nhiều mức. Có các hƣớng hiệu chỉnh số liệu cho có nghĩa.

Định hƣớng cải thiện thêm các thuật toán, sử dụng các thuật toán song song hoặc phân hoạch dữ liệu song song.

Tìm kiếm và xây dựng các công cụ thể hiện kết quả ở các dạng dễ hiểu và đẹp mắt hơn nhƣ các đồ thị, cây, biểu đồ…

Có sự hợp tác với các nhà chuyên môn. Cung cấp và trợ giúp các cán bộ nghiệp vụ, vì bản thân số liệu là nguồn tài sản quý giá của từng ngành. Chỉ có các chuyên gia trong ngành mới có đủ tri thức và kiến thức cần thiết để có thể tận dụng và khai phá dữ liệu với các phân tích có ý nghĩa, phục vụ hiệu quả nhất nhu cầu quản lý.

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

TÀI LIỆU THAM KHẢO TIẾNG VIỆT

[1] Nhóm Actuary Trung tâm OLICD (1997) Nhập môn sở toán học Bảo hiểm Nhân thọ.Trung tâm phát triển BHNT Đông phƣơng Tokyo Nhật bản

[2] Đỗ Việt Nga (2001) Phân tích khai phá dữ liệu trên kho dữ liệu có sẵn Data Mining. Viện CNTT.

[3] Tổng cục thuế (2003): Dự án xây dựng hệ thống dịch vụ Đối tượng nộp thuế qua mạng máy tính.

TIẾNG ANH:

[4] HoTuBAo (2000). Introdution knowledge discovery and data mining.

Institute of Information Technology National Center for NCST.

[5] HoTuBAo (2003). Lectures of Methodology for Knowledge Discovery

Institute of Information Technology National Center for NCST. [6] D.B. Skillicorn(1999): Strategies for Parallizing Data Mining.

[7] Dorian, P. Morgan Kaufmann. (1999) Data Preparation for Data Mining . [8] David Hand, Heikki Mannila and Padhraic Smyth (2001) Principles of

Data Mining. The MIT Press

[9] Martin T.Hagan Oklahoma State University, Howard B.Demuth University of Idaho (1996).Neural Network Design. PWS Publishing Company.

[10] IBM Research Report (1998) Parallel Mining of Association Rules: Design, Implementation and Experience.

[11] Jiawei Han, Micheline Kamber (2001), Data Mining Concept and

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

techniques. Simon Froser University.

[12] Karuna Pande Joshi (1997) Analysis of Data Mining Algorithms.

[13] Liu, H. and Motoda (1998). Feature Selection for Knowledge Discovery and Data Mining, Kluwer International

[14] Oracle 9i (2002) Oracle Data Mining Concept and techniques.

[15] Tom Michael Mitchell (1997), Machine Learning. McGraw Hill. [16] Oracle Coporation (2002): Oracle9i Data Warehousing Guide (9.2).

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

PHỤ LỤC

1. Cấu trúc một số bảng dữ liệu khai phá thử nghiệm

- Dữ liệu phân lớp

- Dữ liệu phân tích luật kết hợp

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

2. Các file tham số và chƣơng trình xây dựng mô hình NB

- File chứa các tham số dữ liệu vào

AssociationRules_Transactional.property miningServer.url=jdbc:oracle:thin:@cun:1521:tps miningServer.userName=ODM miningServer.password=ODM inputDataSchemaName=sh outputSchemaName=sh timeout=120

## Input data for Association Rules Build buildData.type=transactional

# Input table details

buildData.tableName=MARKET_BASKET_TX_BINNED transactionalData.sequenceId=SEQUENCE_ID transactionalData.attributeName=ATTRIBUTE_NAME transactionalData.valueName=VALUE associationRulesOutput.miningSettingsName=Sample_AR_MFS_tx associationRules.dataPrepStatus=discretized associationRules.minimumSupport=0.01 associationRules.minimumConfidence=0 associationRules.maximumRuleLength=2 associationRulesOutput.miningTaskName=Sample_AR_Build_Task_tx associationRulesOutput.modelName=Sample_AR_Model_tx enableCleanup=cleanupBeforeExecution

- Source chƣơng trình AssociationRules.java

* This sample program illustrates the use of ODM API to build a NB // Generic Java Imports

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle import java.sql.*; import java.util.*; import java.sql.SQLException; // ODM Imports import oracle.dmt.odm.*; import oracle.dmt.odm.data.*; import oracle.dmt.odm.settings.function.*; import oracle.dmt.odm.settings.algorithm.*; import oracle.dmt.odm.model.*; import oracle.dmt.odm.task.*;

public class Sample_NaiveBayesBuild_short extends Object { public static void main ( String[] args ) {

System.out.println("Start: " + new java.util.Date()); DataMiningServer dms = null;

oracle.dmt.odm.Connection dmsConnection = null;

try { dms = new DataMiningServer("jdbc:oracle:thin:@cun:1521:tps", "ODM", "ODM");

dmsConnection = dms.login(); Statement stmt2 =

dmsConnection.getDBConnection().createStatement(); String sCmd2 = "delete from odm_mtr.dung_ghi "; stmt2.execute(sCmd2);

Statement stmt3 =

dmsConnection.getDBConnection().createStatement();

String sCmd3 = "insert into odm_mtr.dung_ghi values (' "+" Start: " + new java.util.Date()+ "')";

stmt3.execute(sCmd3);

// Create PhysicalDataSpecification object LocationAccessData lad = new

LocationAccessData("CENSUS_2D_BUILD_UNBINNED", "odm_mtr"); PhysicalDataSpecification m_PhysicalDataSpecification = new NonTransactionalDataSpecification(lad);

// Create the Naive Bayes algorithm settings by setting the thresholds to 0.01

NaiveBayesSettings algorithmSetting = new NaiveBayesSettings(0.01f, 0.01f);

ClassificationFunctionSettings m_ClassificationFunctionSettings = ClassificationFunctionSettings.create(

dmsConnection, algorithmSetting, m_PhysicalDataSpecification, "class", AttributeType.categorical,

DataPreparationStatus.getInstance("unprepared"));

// store the ClassificationFunctionSettings object with name "Sample_NB_MFS"

m_ClassificationFunctionSettings.validate();

m_ClassificationFunctionSettings.store(dmsConnection, "Sample_NB_MFS");

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

// MiningFunctionsSettings name and the ModelName need to be specified

MiningBuildTask task = new

MiningBuildTask(m_PhysicalDataSpecification, "Sample_NB_MFS", "Sample_NB_Model");

// Store the task under the name "Sample_NB_Build_Task" task.store(dmsConnection, "Sample_NB_Build_Task"); task.execute(dmsConnection);

MiningTaskStatus status = task.waitForCompletion(dmsConnection); // Print the status and the time taken for the build

Statement stmt4 =

dmsConnection.getDBConnection().createStatement();

String sCmd4 = "insert into odm_mtr.dung_ghi values ('"+ " Status: " + status.getTaskState().getEnum() + "')";

stmt4.execute(sCmd4);

long buildDuration = task.getExecutionDuration(dmsConnection, "Sample_NB_Build_Task")/1000;

System.out.println(" Duration: " + buildDuration + " seconds"); Statement stmt5 =

dmsConnection.getDBConnection().createStatement();

String sCmd5 = "insert into odm_mtr.dung_ghi values ('"+ " Duration: " + buildDuration + " seconds" + "')";

stmt5.execute(sCmd5); } catch ( Exception e) {

System.out.println(" Received an exception in main: " + e.getMessage());

} finally {

System.out.println("\nLogout Phase:"); try { dms.logout(dmsConnection);

System.out.println(" Logging out from the MiningServer"); } catch (Exception e) {

System.out.println(" Failed to logout. Ingnoring the exception. Continuing ...");

} } }

3.. Cấu trúc một số bảng dữ liệu BHNT

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle - Dữ liệu chỉ tiêu sức khoẻ và khai báo sức khoẻ khách hàng BHNT

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

4. Một số câu lệnh xử lý đƣa dữ liệu BHNT về dạng giao dịch

create table mua_sf as (select id,

TO_NUMBER(decode ( NT_5,null,null,1)) as NHAN_THO_5, TO_NUMBER(decode ( NT_10,null,null,1)) as NHAN_THO_10, TO_NUMBER(decode ( TE_3,null,null,1)) as TRE_EM,

TO_NUMBER(decode ( TK_5,null,NULL,1))as TIET_KIEM_5, TO_NUMBER(decode ( TK_10,null,NULL,1)) as TIET_KIEM_10, TO_NUMBER( decode ( AS_6,null,NULL,1)) as AN_SINH, TO_NUMBER(decode ( TRON_DOI,null,NULL,1)) as TRON_DOI, TO_NUMBER(decode ( NIEN_KIM,null,NULL,1)) as NIEN_KIM, TO_NUMBER(decode ( DKR_1,null,NULL,1)) as DKR_1, TO_NUMBER(decode (DKR_2,null,NULL,1)) as DKR_2, TO_NUMBER(decode ( DKR_3,null,NULL,1)) as DKR_3, TO_NUMBER(decode ( DKR_4,null,NULL,1)) as DKR_4 from (

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

select id, sum( NT_5) as NT_5, sum( NT_10) as NT_10, sum( TE_3) as TE_3, sum( TK_5) as TK_5,

sum( TK_10) as TK_10, sum( AS_6) as AS_6,

sum( TRON_DOI) as TRON_DOI,sum( NIEN_KIM) as NIEN_KIM, sum( DKR_1) as DKR_1, sum(DKR_2) as DKR_2,

sum( DKR_3) as DKR_3,sum( DKR_4) as DKR_4 from

(select KH_ID, to_number( substr(kh_id,5,8)) as id, decode(c.sf_id,'1010013',1,null) NT_5,

decode(c.sf_id,'1010022',1, null) as NT_10,decode(c.sf_id,'1020117',1,null) as NIEN_KIM,

decode(c.sf_id,'1010031',1, null) as TE_3, decode(c.sf_id,'1010040',1, null) as TK_5,

decode(c.sf_id,'1010059',1, null) as TK_10, decode(c.sf_id,'1010068',1, null) as AS_6,

decode(c.sf_id,'1010101',1, null) as TRON_DOI,

decode(c.sf_id,'1030123',1, null) as DKR_1, decode(c.sf_id,'1030132',1, null) as DKR_2,

decode(c.sf_id,'1030141',1, null) as DKR_3, decode(c.sf_id,'1030150',1, null) as DKR_4

from nt_dkr c, nt_hopdong b ,nt_khach a where a.kh_id=b.tgia_id and c.hd_id=b.hd_id AND SUBSTR(KH_ID,1,4)='1002')

group by id ) )

create table mua_sf_tx as (select * from odm_mtr.market_basket_Tx_binned where 1=2);

insert all

into mua_sf_tx (sequence_ID, Attribute_name,value)

values (ID,'NHAN_THO_5 ',decode(NHAN_THO_5 ,null,null,1) ) into mua_sf_tx (sequence_ID, Attribute_name,value)

values(ID,'NHAN_THO_10',decode(NHAN_THO_10 ,null,null,1) )

Một số thử nghiệm khai phá dữ liệu trong CSDL Oracle

into mua_sf_tx (sequence_ID, Attribute_name,value) values (ID,'TRE_EM',decode(TRE_EM,null,null,1) ) into mua_sf_tx (sequence_ID, Attribute_name,value)

values (ID,'TIET_KIEM_5 ',decode(TIET_KIEM_5 ,null,null,1) ) into mua_sf_tx (sequence_ID, Attribute_name,value)

values (ID,'TIET_KIEM_10',decode(TIET_KIEM_10,null,null,1)) into mua_sf_tx (sequence_ID, Attribute_name,value)

values (ID,'AN_SINH',decode(AN_SINH,null,null,1)) into mua_sf_tx (sequence_ID, Attribute_name,value) values (ID,'TRON_DOI',decode(TRON_DOI,null,null,1) ) into mua_sf_tx (sequence_ID, Attribute_name,value) values (ID,'NIEN_KIM',decode(NIEN_KIM,null,null,1) ) into mua_sf_Tx (sequence_ID, Attribute_name,value) values (ID,'DKR_1',decode(DKR_1,null,null,1) ) into mua_sf_tx (sequence_ID, Attribute_name,value) values (ID,'DKR_2',decode(DKR_2,null,null,1) ) into mua_sf_tx (sequence_ID, Attribute_name,value) values (ID,'DKR_4',decode(DKR_4,null,null,1) ) (SELECT * FROM mua_sf ) ;

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số thử nghiệm khai phá dữ liệu trong cơ sở dữ liệu ORACLE (Trang 77)

Tải bản đầy đủ (PDF)

(97 trang)