1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

phân cụm và thuật toán k MEAN

19 322 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 74,14 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

dữ 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 3

PHẦ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 6

Trong đó: 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 7

Bả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 8

Giữ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 9

Họ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 10

Tổ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 13

f=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 14

for 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 15

t1=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 16

for 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 17

er=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 18

1 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 19

TÀ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

Ngày đăng: 06/05/2014, 09:44

HÌNH ẢNH LIÊN QUAN

Bảng số liệu quan sát với hai dấu hiệu - phân cụm và thuật toán k MEAN
Bảng s ố liệu quan sát với hai dấu hiệu (Trang 7)

TỪ KHÓA LIÊN QUAN

w