MỤC LỤC LỜI NÓI ĐẦU Trong cuộc sống hằng ngày vấn đề phân tích, phân biệt được diễn ra trên rất nhiều các lĩnh vực từ đơn giản đến phức tạp.Vấn đề này hiện nay được rất nhiều người
Trang 1
MỤC LỤC
LỜI NÓI ĐẦU
Trong cuộc sống hằng ngày vấn đề phân tích, phân biệt được diễn ra trên rất nhiều các lĩnh vực từ đơn giản đến phức tạp.Vấn đề này hiện nay được rất nhiều người quan tâm và nghiên cứu vì những ứng dụng của nó vô cùng hữu hiệu với con người.Để làm rõ vấn đề về phân tích, phân biệt và những khả năng ứng dụng vào thực tiễn của nó chúng tôi chủ yếu tập chung giải quyết hai vấn đề cơ bản gồm: Vấn đề 1 là đầu tiên ta có một tập tổng thể ta cần phân chia các phần
tử mẫu hoặc tổng thể thành các nhóm rời nhau và khác nhau tới mức có thể Vấn đề 2 là giả sử ta có k tập con rời nhau Ta có một phần tử mới hỏi xếp phần
tử mới này vào nhóm nào trong k nhóm trên thì phù hợp Hai vấn đề trên tuy hình thức có phần nào trái ngược nhau nhưng lại có mối quan hệ mật thiết với nhau, bổ trợ lẫn nhau tạo nên vấn đề chung phân tích, phân biệt
Dưới sự hướng dẫn tận tình của thầy Ngô Quang Quỳnh về thuật toán k-mean, lập trình matlap, cơ sở lý thuyết về vấn đề trên và quá trình đi thu thập thông tin
dữ liệu của chúng tôi từ ngày 23 tháng 3 đến ngày 1 tháng 4 năm 2013 từ các bạn sinh viên trường Đại học Giao Thông Vận Tải, trường Đại Học Công Nghiệp với sự giúp đỡ của một số thầy cô đã tạo điều kiện thuận lợi để chúng
Trang 2dữ liệu với số lượng trung bình nhằm đáp ứng phần nào quá trình nghiên cứu Nếu có cơ hội tiếp tục triển khai đề tài chúng tôi sẽ lấy số lượng dữ liệu thực tế cao hơn để tăng độ chính xác tăng tính khách quan của đề tài
Chúng tôi xin chân thành cảm ơn các thầy cô, các bạn sinh viên đã tận tình giúp đỡ để chúng tôi có thể hoàn thiện đề tài này Trong quá trình nghiên cứu cố gắng hoàn chỉnh đề tài song chắc chắn không tránh khỏi thiếu sót Vì vậy, rất mong nhận được sự đóng góp của các thầy cô và các bạn
Hà Nội, ngày 22 tháng 4 năm 2013
Trang 3PHẦN I GIỚI THIỆU BÀI TOÁN
1.1 BÀI TOÁN 1: PHÂN CỤM
a. Khái niệm: Phân cụm là quá trình phân chia một tập dữ liệu ban đầu thành các cụm dữ liệu thỏa mãn:
- Các đối tượng trong một cụm tương tự nhau
- Các đối tượng khác cụm thì không tương tự nhau
b Nhiệm vụ của phân cụm: Giải quyết vấn đề tìm kiếm, phát hiện các cụm,các mẫu dữ liệu trong một tập hợp ban đầu các dữ liệu không có nhãn
1.1.2 Một số độ đo phân cụm.
Để phân cụm người ta phải tìm cách thích hợp để xác định khoảng cách giữa các đối tượng Đây là các hàm để đo sự giống nhau giữa các cặp đối tượng
dữ liệu
Các độ đo dưới đây được xác định trong không gian matran Một không gian ma trận là một tập trong đó có xác định các khoảng cách giữa từng cặp phần tử
Cho tập dữ liệu X với mỗi cặp x, y thuộc X đều có xác định theo một quy tắc nào đó, một số thực, được gọi là khoảng cách giữa x và y
Trang 4- nếu x.
- nếu x = y
- với mọi x, y
Hàm được gọi là một ma trận của không gian Các phần tử của X được gọi là các điểm của không gian này
Thuộc tính khoảng:
Độ đo của hai đối tượng dữ liệu x, y được xác định bằng các matran khoảng cách như sau:
- Khoảng cách Minkowski: d(x, y) = trong đó p là số tự nhiên
dương
- Khoảng cách Euclidean là trường hợp đặc biệt của khoảng cách Minkowski khi p = 2: d(x,y) =
- Khoảng cách Mahattan là trường hợp đặc biệt của khoảng cách Minkowski khi p = 1: d(x, y) = )
- Khoảng cách cực đại là trường hợp đặc biệt của khoảng cách Minkowski khi p : d(x, y) =
- Xác định được bản chất của việc nhóm các đối tượng trong một tập
dữ liệu không có nhãn
- Phân cụm không dựa trên một tiêu chuẩn chung nào, mà phải dựa trên tiêu chí mà người dùng cung cấp trong từng trường hợp
- Phân cụm phân cấp là sắp sếp một tập dữ liệu đã cho thành một cấu trúc có hình dạng cây
- Phân cụm dựa trên mật độ là nhóm các đối tượng theo hàm mật độ
- Phân cụm dựa trên lưới là dựa trên cấu trúc dữ liệu lưới để phân cụm dữ liệu
- Phân cụm phân hoạch, phân cụm trên mô hình, phân cụm có ràng buộc
- Bài toán: Phân một cụm dữ liệu có n phần tử cho trước thành k tập con dữ liệu ( k ≤ n) mỗi tập con biểu diễn một cụm
Trang 5- Các cụm hình thành trên cơ sở làm tối ưu giá trị đo độ tương tự sao cho:
• Các đối tượng trong một cụm tương tự nhau
• Các đối tượng trong các cụm khác nhau là không tương tự nhau
- Đặc điểm: • Mỗi đối tượng chỉ thuộc về một cụm
• Mỗi cụm có tối thiểu một đối tượng
• Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn;
• Biology: Phận nhóm động vật và thực vật dựa vào các thuộc tính của chúng;
• Libraries: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…;
• Insurance, Finance: Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds);
• WWW: Phân loại tài liệu (document classification); phân loại người dùng web (clustering weblog);…
• Phương pháp phân loại số liệu theo hai dấu hiệu
Giả sử mẫu ngẫu nhiên gồm n quan trắc được chia dưới dạng bảng chữ nhật r hàng, s cột với số quan trắc trong ô thứ (i,j) là Loại mô hình như vậy được gọi là mô hình các ô ngẫu nhiên
Giả sử là trắc quan thứ k trong ô (i, j) Ta muốn xét xem sự biến đổi và sự phụ thuộc của hai dấu hiệu vào giá trị trung bình Giả sử
Trang 6Trong đó: chỉ phụ thuộc vào dấu hiệu thứ nhất chỉ phụ thuộc vào dấu hiệu thứ hai
Với giả thiết này thì nó có nghĩa là tác động của dấu hiệu thứ nhất và dấu hiệu thứ hai vào giá trị trung bình
có tính cộng tính, tức là hai dấu hiệu không có sự tác động lẫn nhau
thường quan tâm tới vấn đề sau:
Kỳ vọng các hàng có bằng nhau không ?
Các cột có kỳ vọng toán học như nhau không ?
Có tồn tại hệ thức nào đó giữa kỳ vọng toán học của các hàng và các cột không ? nói cách khác, giữa các hàng và các cột có sự tác động lẫn nhau không?
Trang 7Bảng số liệu quan sát với hai dấu hiệu
.
.
Kí hiệu
= , =
y ==
là tổng của ms giá trị quan sát trong hàng lớn thứ i,hay la tông của mỗi cấp theo dấu hiệu A
là tổng của mr giá trị quan sát trong cột lớn thứ j,hay là tổng mỗi cấp theo dấu hiệu
Bảng phân tích phương sai
do
bình
Tỷ số F
Trang 8Giữa các hàng
(dấu hiệu A)
Giữa các cột
(dấu hiệu B)
Tương tác giữa
hai dấu hiệu.
Sai số.
Tổng chung
r -1
s -1
(r -1)x x(s -1) rs(m-1) rsm-1
TBPTT=TBPCH-TBPH-TBPC-TBPSS
TBBSS=
-)2
=TBPCH
(3)=
(4)
=
=
=
Ví dụ: Hãy sử dụng phương pháp phân loại số liệu theo hai dấu hiệu để đánh giá ảnh hưởng của Internet đối với quá trình học tập của sinh viên.Dấu hiệu 1 là học lực của các sinh viên (r = 4: học tập tốt,học tập khá,học tập trung
bình,học tập yếu); dấu hiệu 2 là số giờ sử dụng Internet của với 3 tiêu chí (s = 3: số giờ giải trí,tìm kiếm tài liệu,trao đổi thông tin).Gọi là số giờ của sinh viên sử dụng Internet của các tiêu chí nêu lên và của các sinh viên với học lực tương ứng.Số liệu cho dưới bảng sau:
Học lực
Số giờ sử dụng Internet Giải trí Tìm kiếm tài
liệu
Trao đổi thông tin
Học tập tốt
3 1 2
1 4 3
3 2 2
21
Học tập khá
3 4 4
3 1 2
3 4 4
28
Trang 9Học tập trung
bình
5
6
1
1
2
3
6
1
2
27
Học tập kém 8
2
3
3
3
1
1
2
1
24
42 27 31 100
Với =0,01 hãy xét xem số giờ trung bình nhận được có như nhau đối với học lực của mỗi sinh viên không?
Số giờ trung bình nhận được có như nhau đối với 3 tiêu chí không?
Liệu có sự tương tác nào giữa học lực và các tiêu chí trên không?
Lời giải
Lập bảng phân tích phương sai:
Sự phân tán Bậc tự do Tổng bình
phương
Bình phương trung bình
Tỷ số F
Trang 10Tổng chung 35 90,89
Tra bảng phân phối F ta được F3;24;0,01= ;F2;24;0,01= ; F6;24;0,01= FA=0,41
FB=1,25
FAB=0,999
1.2 BÀI TOÁN 2: XÁC ĐỊNH PHẦN TỬ BẤT KỲ THUỘC CỤM.
- Từ bài toán 1 ta có các nhóm đã phân chia
- Coi các đặc tính đã phân nhóm có phân bố chuẩn với ma trận covarian đối với K nhóm đã chia
- Tính ma trận covarian với cách tính:
Trong đó là giá trị trung bình các đặc tính
Tính ma trận nghịch đảo
Kí hiệu:
= (= (
:
- Khi đó hàm phân biệt tuyến tính Si ; i=1,2, K
Si= li1A+ li2B+ li3C+ + linQ - (li1 + li2 + +lin ) + ln
- Với cá thể có các đặc tính trên.Ta tính với từng trường hợp của Si
Trang 11- Si > max => cá thể được xếp vào nhóm có hàm phân biệt tuyến lớn nhất
Xếp được nhóm cho cá thể đó
PHẦN II PHƯƠNG PHÁP
2.1 BÀI TOÁN 1: SỬ DỤNG THUẬT TOÁN K-MEAN
2.1.1 Khái niệm thuật toán k-mean
Phát biểu bài toán:
Đầu vào
Tập các đối tượng X = ,
Số cụm k
Đầu ra
Các cụm ( i = 1 k ) tách rời và hàm tiêu chuẩn E đạt giá trị tối thiểu
Thuật toán hoạt động trên một tập vector d chiều, tập dữ liệu
X gồm N phần tử:
X =
K- MEAN lặp lại nhiều lần quá trình:
o Gán dữ liệu
o Cập nhật lại vị trí trọng tâm
Quá trình dừng lại khi trọng tâm hội tụ và mỗi đối tượng là một bộ phận của một cụm
Hàm đo độ tương tự sử dụng khoảng cách Euclidean E=
Trong đó là trong tâm của cụm
2.1.2 Các bước của thuật toán k-mean.
Bước 1 – khởi tạo
Chọn k trọng tâm {}
Bước 2 – tính toán khoảng cách
:
Bước 3 – cập nhật lại trọng tâm
Trang 12 Bước 4 – điều kiện dừng
Lặp lại các bước 2 và 3 cho tới khi không có sự thay đổi trong trọng tâm của cụm
2.1.3 Ưu điểm nhược điểm của thuật toán k-mean.
Ưu điểm thuật toán
• Độ phức tạp với một số lần lặp
• Có khả năng mở rộng, có thể dễ dàng sửa đổi với những dữ liệu mới
• Bảo đảm hội sau một số bước lặp hữu hạn
• Luôn có K cụm dữ liệu
• Luôn có ít nhất một điểm dữ liệu trong một cũm dữ liệu
• Các cụm dữ liệu không phân cấp và không bị chồng chéo dữ liệu lên nhau
• Mọi thành viên của một cụm là gần chính cụm đó hơn các cụm khác Nhược điểm của thuật toán
• Không có khả năng tìm ra cac cụm không lồi hoặc các cụm có hình dạng phức tạp
• Khó khăn trong việc xác định trọng tâm cụm ban đầu
• Khó để chọn ra được số lượng cụm tối ưu ngay từ đầu, mà phải qua nhiều lần thử để tìm ra số lượng cụm tối ưu
• Nhạy cảm với nhiễu và phần tử ngoại lai trong dữ liệu
• Không phải lúc nào mỗi đối tượng chỉ thuộc về một cụm, chỉ phù hợp với đường biên giữa các cụm
2.1.4 Code thuật toán k-mean.
Compare( HÀM SO SÁNH)
function y = compare(x,t)
u=x-t;
v=size(u);
f=0;
for i=1:1:v(2)
Trang 13f=f+(u(1,i))^2;
end
if ~(f==0)
y=0;
elseif (f==0)
y=1;
end
end
+ initial.m( KHỞI TẠO)
function u = Initial(X,n)
u(1,:) = X(1,:);
s=size(X);
for j=2:1:n
for k = j:1:s(1)
if (compare(u(j-1,:),X(k,:)) ==0) u(j,:)=X(k,:);
break
end
end
end
+khoảng cách.m
function y=kc(a,b)
u=(a-b);
Trang 14for i=1:1:v(2)
f=f+(u(1,i))^2;
end
y=sqrt(f);
mymin.m( KHOẢNG CÁCH NHỎ NHẤT)
function [m,n] = mymin(d)
s=size(d);
q=s(2);
m=d(1);
for i=2:1:q
if (m>d(i))
m=d(i);
end
end
for i=1:1:q
if (d(i) == m)
n = i;
break
end
end
+ nhom.m( PHÂN NHÓM)
function y = nhom(x,f)
s=size(f);
s1=s(1);
Trang 15t1=t(1);
for k=1:1:t1
for i=1:1:s1
d(1,i)= kc(x(k,:),f(i,:)); [m,n] = mymin(d);
y(k) =n;
end
end
+ ss.m ( SO SÁNH LẦN THỨ 2)
function d=ss(X,f)
r=X(1,:)-f(i,:);
for i=2:1:n
if(kc(r>0)
X(1,:)=f(i,:);
end
end
+ tammoi.m(XÁC ĐỊNH LẠI TÂM)
function y= tammoi(x,d,k)
h= size(d);
h1=h(2);
h2=size(x);
Trang 16for j=1:1:k
s=zeros(1,q);
n=0;
for i=1:1:h1
if(d(1,i)==j)
s=s+x(i,:);
n=n+1;
end
end
y(j,:)=s./n;
end
myclafy.m( HÀM CHÍNH)
function y = myclafy(X,k)
f0 = Initial(X,k);
d=nhom(X,f0);
f1=tammoi(X,d,k);
er=0;
for i =1:1:k
er = er +kc(f0(i,:),f1(i,:));
end
while ~(er ==0)
f0 = f1;
d=nhom(X,f0);
f1=tammoi(X,d,k);
Trang 17er=0;
for i =1:1:k
er = er +kc(f0(i,:),f1(i,:));
end
end
y = d;
2.1.5 Giải thích hoạt động của code.
Trình tự các bước chạy thuật toán :
Hàm compare: kiểm tra phần tử đầu có khác 0 hay bằng 0.Nếu khác không ta gán tâm của nhóm 1 cho nó.Nếu bằng 0 ta duyệt tiếp các phần tử tiếp theo và gán tâm cho nhóm 1
Hàm Initial: ta đặt số tâm (hay số nhóm cần chia) cho dữ liệu vừa nhập vào
Hàm nhóm: tính khoảng cách các phần tử đến tâm và xem khoảng cách nào nhỏ nhất thì nhóm phần tử vào nhóm chứa tâm đó.Hay đây là bước chia nhóm dữ liệu vừa nhập vào
Hàm này sử dụng hai hàm là : Hàm kc (dùng để tính khoảng cách hai phần tử) và Hàm mymin (là hàm so sánh các khoảng cách để tìm ra khoảng cách ngắn nhất )
Hàm tammoi: tính lại tâm nhóm
Hàm myclafy: cho ra kết quả các phần tử thuộc nhóm nào
2.5.6 ví dụ minh họa thuật toán.
Ví dụ minh họa thuật toán
Ví dụ minh họa:
Nhập từ file exel và chạy code trên matlab ta chia được nhóm cho các phần tử như sau:
x =
1 2 3 1 2 3
Trang 181 2 3 2 2 1
1 2 2 2 3 1
2 1 1 3 2 1
2 1 1 2 2 3
2 2 2 2 3 2
1 1 1 2 2 2
2 2 2 3 3 2
>> myclafy(x,5)
ans =
1 2 3 4 5 2 2 5 3 5
Từ kết quả trên ta có :
Phần tử thứ 1: thuộc nhóm 1
Phần tử thứ 2,6,7: thuộc nhóm 2
Phần tử thứ 3,9 thuộc nhóm 3
Phần tử thứ 4 thuộc nhóm 4
Phần tử thứ 5 ,10 thuộc nhóm 5
Trang 19TÀI LIỆU THAM KHẢO
http://en.wikipedia.org/wiki/K-means_clustering
http:// vi.wikipedia.org /wiki/ Học_không_có_giám_sát
http://doc.edu.vn
http://vnlp.net
http://tailieu.vn
http://bis.net.vn/forums/t/374.aspx