4.1. Bộ dữ liệu “Flu”
Cho bảng quyết định DS=(U,C{c3},V,f)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trong đó: C1 – đau đầu, C2 – Thân nhiệt, C3 – Cảm cúm
U C1 C2 C3
U1 Có Bình thƣờng Không
U2 Có Cao Có
U3 Có Rất cao Có
U4 Không Bình thƣờng Không
U5 Không Cao Không
U6 Không Rất cao Có
U7 Không Cao Có
U8 Không Rất cao Không
Bảng 3.1. Triệu chứng cúm của bệnh nhân Dữ liệu đầu vào:
- Bảng quyết định DS=(U,C{C3},V,f),
- Các đối tƣợng U ={u1,u2,u3,u4,u5,u6,u7,u8},
- Các thuộc tính C ={ c1,c2,c3,} .
Kết quả: Tập các thuộc tính rút gọn.
* Thực hiện thuật toán:
a) Kiểm tra xem bảng quyết định có nhất quán không
Xấp xỉ dƣới của BX (Có) = {u2,u3}, Xấp xỉ dƣới của BX (Không) = {u1,u4};
=>POSc(D)=
/
XU D(BX) Không bằng U: Vậy bảng quyết định là không nhất quán.
b) Các bƣớc thực hiện thuật toán
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 3.8. Kết quả của bộ dữ liệu Flu 4.2. Bộ dữ liệu “EXAMPLE1”
Xét bảng quyết định có các thuộc tính và các đối tƣợng nhƣ sau:
U C1 C2 C3 C4 u1 6 6 0 6 U2 0 2 2 0 U 3 0 0 0 0 U4 0 0 3 0 U5 0 4 0 4 U6 5 0 5 5 U7 1 0 0 1 Bảng 3.2. Bảng quyết định Dữ liệu đầu vào:
- Bảng quyết định DS=(U,C{C4},V,f), - Các đối tƣợng U ={u1,u2,u3,u4,u5,u6,u7},
- Các thuộc tính C ={ c1,c2,c3,c4}.
Kết quả: Tập các thuộc tính rút gọn
* Thực hiện thuật toán:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Xấp xỉ dƣới của BX(0) = {U3, U4, U2}, Xấp xỉ dƣới của BX(1)= {U7},
Xấp xỉ dƣới của BX(4) = {U5}, Xấp xỉ dƣới của BX (5) = {U6}, Xấp xỉ dƣới của BX (6) = {U1}. => POSc(C4)=
/
XU D (BXi) = U: Vậy bảng quyết định nhất quán.
Hình 3.9. Kiểm tra xem bảng quyết định Example1 có nhất quán không b) Các bƣớc thực hiện thuật toán
+ Bƣớc 1: Hệ bằng nhau
r = {{c3},{c1,c4},{c1},{c1,c2,c4},{c1,c3},{c2},{c2,c3}}. + Bƣớc 2: Tập Md = {{c1,c3},{c2,c3}}.
+ Bƣớc 3: Tập IK = Giao của K:k thuộc Md = {c3}, Tập V = R -
d
kI K = R - IK = {c1,c2,c4}. + Bƣớc 4: REAT(C) = V - {c4} = {c1,c2},
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 3.10. Kết quả khi thực hiện thuật toán với bộ dữ liệu Example1 4.3. Bộ dữ liệu “EXAMPLE”
- Dữ liệu đầu vào của chƣơng trình là bảng quyết định cho ở trong bảng 2.3 ví dụ 2.6 mục 2.5.
Dữ liệu đầu vào:
- Bảng quyết định DS=(U,C{d},V,f), - Các đối tƣợng U ={u1,u2,u3,u4,u5,u6,u7},
- Các thuộc tính C ={ c1,c2,c3,c4}.
Kết quả: Tập các thuộc tính rút gọn
* Thực hiện thuật toán:
a) Kiểm tra xem bảng quyết định có nhất quán không
Xấp xỉ dƣới của BX (0) = {u3,u4,u2,u7,u5}, Xấp xỉ dƣới của BX (5) = {u6},
Xấp xỉ dƣới của BX (6) = {u1}, => POSc(D) =
/
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 3.11. Kiểm tra xem bảng quyết định Example có nhất quán không b) Các bƣớc thực hiện thuật toán
+ Bƣớc 1: Hệ bằng nhau
r
= {{c3},{c1,c4},{c4},{c1,c2,c4},{c3,c4},{c2},{c2,c3,c4},{c2,c4}}. + Bƣớc 2: Tập Md = {{c3},{c2}}.
+ Bƣớc 3: Tập IK = Giao của K: k thuộc Md = {}. Tập V = R -
d
kI K = R - IK = {c1,c2,c3,c4} + Bƣớc 4: REAT(C) = V - {c4} = {c1,c2,c3}
=> Hoàn thành thuật toán (thuộc tính rút gọn là {c1,c2, c3}).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
5. Kiểm thử
Chƣơng trình thử nghiệm đƣợc chạy trên máy tính có cấu hình chi tiết nhƣ sau: Hệ điều hành: Windows 7, Chip Core i3 - 2,1 Ghz, Ram: 2G.
Dƣới đây là bảng dữ liệu thời gian của kết quả thực hiện trên 3 bộ dữ liệu mẫu: Flu.data, Example.data, Example1.data.
Stt Tên bảng Số dòng Số cột t1 t2 t3 t4 t5 t6 t T/b T/b rút gọn (s) 1 Flu 8 3 0.0407 0.0366 0.0473 0.0349 0.0233 0.0410 0.033 0.03 (s) 2 Example 7 4 0.0350 0.0326 0.0506 0.0351 0.0302 0.0270 0.035 0.04 (s) 3 Example1 7 4 0.0270 0.0255 0.0187 0.0270 0.0460 0.0309 0.027 0.03 (s)
Bảng 3.3. Bảng dữ liệu kết quả thực hiện trên 3 bộ dữ liệu mẫu 6. Tổng kết chƣơng
Trong chƣơng này đã hƣớng dẫn cài đặt chƣơng trình và các kết quả thử nghiệm của chƣơng trình tìm tập thuộc tính rút gọn. Đƣa ra một số giao diện chính và cách sử dụng khi chạy chƣơng trình…
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
KẾT LUẬN VÀ ĐỀ NGHỊ 1. Kết quả đạt đƣợc trong luận văn
Có thể nói khai phá dữ liệu là một trong những kỹ thuật quan trọng, mang tính thời sự không chỉ đối với việt nam mà của cả nền công nghệ thông tin thế giới hiện nay. Sự bùng nổ thông tin dữ liệu toàn cầu, trên mọi mặt của đời sống xã hội cùng với sự phát triển và ứng dụng ngày càng rộng rãi của công nghệ thông tin trong lĩnh vực đã khiến cho nhu cầu xử lý những khối dữ liệu khổng lồ để kết xuất ra những thông tin, tri thức hữu ích cho ngƣời sử dụng một cách tự động, nhanh chóng và chính xác. Một trong những phƣơng pháp quan trọng của kỹ thuật khai phá dữ liệu mà đề tài đi tìm hiểu để làm cơ sở dữ liệu cho một số thuật toán rút gọn trên bảng quyết định nhất quán. Trong khoảng thời gian không dài đề tài đã tổng kết những kiến thức cơ bản nhất để phục vụ cho việc nghiên cứu một số thuật toán liên quan đến tập rút gọn trên bảng quyết định nhất quán. Có thể nói đề tài là một tài liệu tham khảo khá khá đầy đủ, rõ ràng về các kiến thức cơ bản trong khi nghiên cứu một số thuật toán liên quan đến tập rút gọn trên bảng quyết định nhất quán.
Qua đó đã cài đặt thuật toán ”Tìm tập tất cả các thuộc tính rút gọn trên bảng quyết định nhất quán” và chạy thử chƣơng trình trên máy PC nhiều lƣợt với nhiều bộ dữ liệu khác nhau.
2. Hƣớng nghiên cứu tiếp theo
Trên cơ sở những nghiên cứu đã đƣợc trình bày trong luận văn, tiếp tục nghiên cứu sâu hơn một số thuật toán liên quan tới tập rút gọn trên bảng quyết định nhất quán. Nhằm loại bỏ các thuộc tính dƣ thừa không cần thiết mà vẫn không làm ảnh hƣởng tới bài toán. Qua đó các bài toán khai phá dữ liệu trở nên đơn giản hơn, phù hợp với giai đoạn hiên nay... Trong quá trình học tập, tìm hiểu và nghiên cứu cùng với khoảng thời gian làm luận văn, tôi đã cố gắng tập trung tìm hiểu và tham khảo các tài liệu liên quan. Tuy nhiên do thời gian và điều kiện nghiên cứu có hạn nên không tránh khỏi những thiếu sót, rất mong nhận đƣợc sự nhận xét và những đóng góp ý kiến của quý thầy cô giáo và những ai quan tâm để luận văn đƣợc hoàn thiện hơn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Hoàng Thị Lan Giao (2007), “Khía cạnh đại số logic phát hiện luật theo tiếp cận tập thô”, Luận án tiến sĩ toán học, Viện công nghệ thông tin.
[2] Nguyễn Long Giang, Vũ Đức Thi (2011) “Thuật toán tìm tất cả các rút gọn trong bảng quyết định”, tạp chí tin học và điều khiển học, Tr27,S.3,tr.199 – 205.
[3] Nguyễn Long Giang, Vũ Đức Thi (2011) “ Một số phƣơng pháp rút gọn thộc tính trong bảng quyết định dựa trên Entropy cải tiến”, tạp chí tin học và điều khiển học T.27,s.2. tr.166 – 175.
[4] Nguyễn Long Giang, Vũ Đức Thi (2012), “một số thuật toán trên bảng quyết định sử dụng lý thuyết cơ sở dữ liệu quan hệ”, Kỷ yếu hội thảo một số vấn đề chọn lọc về CNTT và TT, cần thơ, 10/2011, TR.303-317.
Tiếng Anh
[5] Andrzej Skowron and Rauszer C (1992), “The Discernibility Matrices and Fuctions in Information Sysems”, Interlligent Decision Support, Handbook of Applications and Advances of the Rough Sets Theory, kluwer, Dordrecht, pp.331 – 362.
[6] Demetrovics J. And Thi V.D. (1987), “key, antieys and prime attributes”
Ann. Univ. Scien. Budapest Sect. Comput. 8,pp. 37 – 54.
[7] Demetrovics J. And Thi V.D. (1995), “Some remarks on generating Armstrong and inferring functional dependencies relation”, Acts Cybernetica 12, pp. 167 – 180.
[8] Demetrovics J. And Thi V.D. (1998), “”Relations and minimal key”, Acts Cybernetica 8,3,pp. 279 – 285.
[9] Lv Y.J. and Li J.h. (2007), “A Quick Algorithmfor Reduction of Attribute in Information Systems”, The First International Symposium on Data, Privacy, and
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
E-Commerce (ISDPE 2007), pp.98-100.
[10] Nguyễn Long Giang, Vũ Đức Thi (2011), “Some Problems Concering Condition Attributes and Reducts in Decision Tables”, Proceeding of the Fifsh National Symposium “Fundamental and Applied Information Technology Research” (FAIR), Bien Hoa, Dong Nai, pp.142 – 152.
[11] Pawlak Z. (1991), Rough sets: Theoretical Aspects of Reasoning About Data, Kluwer Aca-demic Publishers.
[12] Pawlak Z. (1998), “Rough set theory and its applications to data analysis”, Cysbernetics and systems 29, pp. 661-688.
[13] Thi V.D. (1986), “Minimal key and Antikey”, Acta Cybernetica 7,4, pp.361-371”.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Phụ lục using System; using System.Collections; using System.Data; using System.Text; namespace ReducedSetDecisionTable {
public class EqualSystem
{
public string tableName { get; set; } public int numOfColumn { get; set; } public int numOfRow { get; set; }
public string nameOfDesision { get; set; } public string equalSystem { get; set; } public string md { get; set; }
public string v { get; set; } public string reat { get; set; } public EqualSystem(string tableName) {
this.tableName = tableName;
DataTable metaData = Ultilities.getMetaData(tableName);
this.numOfColumn = Int32.Parse(metaData.Rows[0]["NumOfColumn"].ToString()); this.numOfRow = Int32.Parse(metaData.Rows[0]["NumOfRow"].ToString()); this.nameOfDesision = metaData.Rows[0]["NameOfDesision"].ToString(); }
public ArrayList calcEqualSystem() {
ArrayList system = new ArrayList();
DataTable dataTable = Ultilities.getDataTable(this.tableName); StringBuilder partition;
for (int i = 0; i < this.numOfRow-1; i++) {
for (int j = i + 1; j <= this.numOfRow-1; j++) {
partition = new StringBuilder(); for (int k = 1; k <= numOfColumn; k++) { if (dataTable.Rows[i]["c" + k].ToString().Equals(dataTable.Rows[j]["c" + k].ToString())) { partition.Append("c" + k+","); } } if (partition.Length > 0) { partition.Remove(partition.Length - 1, 1); // Kiem tra da ton tai trong day ket qua
if (!system.Contains(partition.ToString())) { system.Add(partition.ToString()); } } }
StringBuilder builder = new StringBuilder();
builder.Append("###### Cac buoc thuc hien thuat toan ######" +
Environment.NewLine + "+ Buoc 1:" + Environment.NewLine + " He bang nhau Er = {"); foreach (string item in system)
{ builder.Append("{" + item + "},"); } if (builder.Length > 1) { builder.Remove(builder.Length - 1, 1); }
builder.Append("}" + Environment.NewLine + Environment.NewLine); this.equalSystem = builder.ToString();
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
return system;
}
public string printEqualSystem() {
return this.equalSystem; }
public ArrayList calcMD() {
ArrayList system = new ArrayList(); ArrayList equalSystem = calcEqualSystem(); bool checkStatus = true; foreach (string item in equalSystem) {
if (!item.Contains(this.nameOfDesision)) {
foreach (string itemChild in equalSystem) {
if (!itemChild.Contains(this.nameOfDesision)) {
if (!item.Equals(itemChild)) {
if (Ultilities.isSubSet(item, itemChild)) { checkStatus = false; break; } else { checkStatus = true; } } } } if (checkStatus) { system.Add(item); } } }
StringBuilder builder = new StringBuilder(); builder.Append("+ Buoc 2: "+Environment.NewLine+" Tap Md = {"); foreach (string item in system) { builder.Append("{" + item + "},"); } if (builder.Length > 1) { builder.Remove(builder.Length - 1, 1); }
builder.Append("}" + Environment.NewLine + Environment.NewLine); this.md = builder.ToString(); return system; }
public string printMD() {
return this.md; }
public string findIK() {
string result = String.Empty; ArrayList md = calcMD(); result = Ultilities.intersection(md[0].ToString(), md[1].ToString()); for (int i = 2; i < md.Count; i++) {
result = Ultilities.intersection(result, md[i].ToString()); }
return result; }
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
{ ArrayList result = new ArrayList(); string ikString = findIK();
string[] ik = ikString.Split(','); bool checkStatus;
for (int i = 1; i <= this.numOfColumn; i++) {
string colName = "c" + i; checkStatus = true;
foreach (string item in ik) { if (colName.Equals(item)) { checkStatus = false; break; } else { checkStatus = true; } } if (checkStatus) { result.Add(colName); } }
StringBuilder builder = new StringBuilder(); builder.Append("+ Buoc 3: "+Environment.NewLine);
builder.Append(" Tap IK = Giao cua K:k thuoc MD = {" + ikString + "}" +
Environment.NewLine);
builder.Append(" Tap V = R - IK = {"); foreach (string item in result)
{ builder.Append(item + ","); } if (builder.Length > 1) { builder.Remove(builder.Length - 1, 1); }
builder.Append("}" + Environment.NewLine+ Environment.NewLine); this.v = builder.ToString();
return result; }
public string printV() {
return this.v; }
public string findReat() {
StringBuilder result = new StringBuilder(); ArrayList temp = findV();
foreach (string item in temp) {
if (!item.Equals(this.nameOfDesision)) { result.Append(item + ","); } } if (result.Length > 0) { result.Remove(result.Length - 1, 1); }
this.reat = "+ Buoc 4: " + Environment.NewLine + " REAT(C) = V - {" +
this.nameOfDesision + "} = {" + result.ToString() + "}" + Environment.NewLine + Environment.NewLine + "==> Hoan thanh thuat toan.";
return result.ToString(); }
public string printReat() {
return this.reat; } } }