Supervised Learning

Download Report

Transcript Supervised Learning

สั ปดาหที
์ ่5
Clustering Algorithms
อ.เทพฤทธิ ์ สิ นธารงรักษ์ เรียบเรียง





Supervised Learning
Unsupervised Learning
What’s Clustering?
Clustering for game.
Matlab



Clustering หรือ การจัดกลุมข
่ อมู
้ ล เป็ น
ปัญญาประดิษฐฟั
่ หนึ่งทีป
่ จ
ั จุบน
ั นิยมนามาใช้เพือ
่
์ งกชั
์ น
วิเคราะหข
้ ล
์ อมู
เป็ น Learning Machines ประเภท Unsupervised
Learning
มีหลายตัวทีน
่ ิยมมาใช้ในปัจจุบน
ั เช่น K-mean,
Fuzzy C-mean, Self Organizing Mapping Neural
Network (SOM) และอืน
่ ๆ




Supervised Learning คือ การเขียนโปรแกรมทีใ่ ช้
อัลกอริทม
ึ ทางปัญญาประดิษฐเพื
่ เรียนรูข
่ ค
ี าตอบ
้ อมู
้ ลทีม
์ อ
อยูแล
่ ว
้
กาหนดให้ x1,x2,…,xN เป็ น Input ของโปรแกรม
y หรือ Target คือ Output ของโปรแกรม
เราตองการเขี
ยนโปรแกรมเรียนรูผลลั
พธจาก
ปัญหานี้
้
้
์
เราจะทาอยางไร
่
X1 X2 Y
0
0
1
1
0
1
0
1
0
1
1
0



ให้เรามอง 1 คือ การเปิ ดไฟ
0 คือ การปิ ดไฟ
จะไดภาพดั
งนี้
้
Machine
X1
X2
Machine
Y
X1
X2
Y
0
0
1
1
0
1
0
1
0
1
1
0
การ Learn ของเราจะส่งตัวแปร X1 และ X2 เขาไป
้
ในแบบจาลองเพือ
่ หาคา่ Y
ทีล
่ ะแถว โดยตอง
Random แถวเขาไปเพื
อ
่ เรียนรูด
้
้
้ วย
้
เพือ
่ หาคาแบบจ
าลองทีส
่ ามารถดาคาได
่
่
้ ซึง่ เราจะเรียน



จากปัญหาทีน
่ ก
ั ศึ กษาในรูปขางบน
นศ.บางคนจะคิดวา่
้
มันก็ไมอยากที
จ
่ ะเขียนโปรแกรมนี่ค๊ะ
่
ใช่ มันเขียนโปรแกรมได้ แตถ
่ ากกวานี
้ ละ
่ าปั
้ ญหาทีย
่ ห
ทาไง ตัวอยาง
่
ให้ดาวนโหลดไฟล
่ อ
ื่ วา่
์
์ excel ทีช
DatasetForWeek8.xlsx มาดู







เป็ นการเรียนรูแบบไม
มี
้
่ คา่ Target
อาวแล
วเราจะเรี
ยนรูเพื
่ อะไร
้
้
้ อ
คาตอบคือ เราตองการเรี
ยนรูว
้
้ า่ Input ของเรามี
ลักษณะอยางไรบ
าง
่
้
ยกตัวอยาง
บริษท
ั ผลิตรถแหงหนึ
่งตองการวิ
เคราะหว์ า่
่
่
้
กลุมของลู
กค้ามีอะไรเภทไหนบาง
่
้
มีตวั แปร x1 คือ อายุ แบงเป็
่ น 1.อายุน้อย 2.อายุ
ปานกลาง 3.อายุมาก
ตัวแปร x2 คือ ภูมล
ิ าเนา แบงเป็
2.
่ น 1.อยูในกทม.
่
อยูต
งหวัด
่ างจั
่
คาถามคือเราจะแบงกลุ
มของลู
กค้าเป็ นอยางไร
่
่
่
X1
X2
Machine
Y
ผลลัพธ์ของ Input
X1
X2
Machine
X
ค่ากลางของ Input
รูปเริ่มต้น
จุดศูนย์กลางของสองกลุ่ม









เป็ นภาษาคอมพิวเตอรภาษาหนึ
่ง
์
ขอดี
้
Syntax งาย
ไวสร
Prototype Code สาหรับอัลกอริทม
ึ
่
้ าง
้
แลวเอาไปแปลงเป็
นภาษาอืน
่ เพราะการทางานจะเป็ น
้
Matrix
มี function สาหรับการสุ่มครบถวนที
ส
่ ุด
้
มีความสามรถในการเชือ
่ มตอกั
่ ๆ เช่น
่ บ code ภาษาอืน
JAVA, C#, C++ ,HTML , Google map
ตอฐานข
อมู
่
้ ลได้
ทา server ได้
สามารถหาคา่ Difference และ Integrate ไดด
้ วย
้
และทีส
่ าคัญสามารถเป็ นใช้งาน Parallel Computing ได*้

ประกาศตัวแปร
A1=1;
A2=3.5;
A3=‘Love’;

สราง
Matrix
้
s1=zeros(2,2)
ขนาด 2*2
s2=[1 2 3 4];
s3=[1 2;3 4];
%แสดงวาต
าง
Matrix
่ องการสร
้
้

For Loop
for i=1:4
disp(i);
end
While
i=3;
while (i>0)
disp(i);
i=i-1;
end
• randperm(10)
คาสั งสุ่มลาดับตัง้ แต่
1-10 แลวสร
างเป็
น
้
้
array เก็บคาไว
่
้

• [m n]=size(A);
คือการหาขนาดของ
Matrix โดยจะรี
เทิรน
์
 คาแถวเป็
น m
่
 คาหลั
กเป็ น n
่
1.
function [ Distance ] = Distance( x1,y1,x2,y2 )
Distance = sqrt(((abs(x1-x2)^2))+((abs(y1-y2)^2)));
2.
end
1.
2.
function plotScatter(X1, Y1,
X2,Y2,X3, Y3)
figure1 = figure;
3.
4.
5.
6.
% Create axes
axes1 = axes('Parent',figure1);
hold(axes1,'all');
7.
8.
9.
% Create scatterDataset
scatter(X1,Y1,'o');
10.
11.
12.
13.
% Create scatterCentroid1
scatter(X2,Y2,100,'x');
scatter(X2,Y2,10000,'o');
14.
15.
16.
% Create scatterCentroid2
scatter(X3,Y3,100,'o','filled');
จบการนาเสนอ