K-Nearest Neighborhood Classification with Matlab

Data Mining/25.03.2013/Sistem Informasi – S1

K-nearest Neighborhood (K-NN) adalah salah satu teknik klasifikasi yang sudah ada sejak dulu. Teknik ini memiliki prinsip kerja menemukan tetangga terdekat terhadap sampel daya yang akan diuji. Jika tetangga terdekatnya masuk dalam kategori kelas “A”, maka sample tersebut dapat dikatakan kelas “A”.

K-NN menggunakan teknik perhitungan jarak antara sampel dengan data yang telah ada (dikenal dengan istilah data training). K-NN masuk dalam kategori “Supervised Learning” karena data yang menjadi acuan (data training) memiliki Label (kelas tertentu). Berikut ini contoh pembuatan aplikasi dengan GUI untuk klasifikasi suatu sampel dengan K-NN. Berikut contoh perhitungan jarak antara titik sampel, misalnya (20,12) dengan salah satu data training, misalnya (30,8) dan diperoleh hasil 10.77.

Create New GUI and choose “Blank GUI”

Rename every component.

String and Tag on Property Editor must be renamed (Matlab is case sensitive)

Save your work in order to get m-file that appear immediately after saving.

Look at the m-file above, you will see the functions according to your pushbutton and edit text. The green text will not be executed and sometimes you see “do not edit” warning. Chose the training_Callback function (see: https://rahmadya.com/2013/03/18/pengenalan-data-mining/ ):

Use your Excel to create training data

The last column is group, so you have to separate training and group in m-file.

Back to m-file, we have to create script for capturing ipa and ips values. At function ipa_Calback and ips_Callback, use this script. Copy-paste this script for ips and replace “a” with “s” for easiness.

Last script is the core script because it contain k-nearest neighborhood classification using function “knnclassify“. See how to create plot for our GUI. The hold function means we do not erase the previous chart. We use “msgbox” (message box) to show the result of classification.

If the run icon is pressed, the result come after push “klasifikasi” button.

Next week we’ll discuss Kmeans.

Tugas: Hitung jarak sampel (kel 1: (5,7) dan kel2 : (6,5)) terhadap data training, tentukan kelasnya berdasarkan data training tersebut (IPA atau IPS). Berikut hasil dengan Ms Excel

Membuat diagram blok dengan Simulink matlab

 

Simulink adalah salah satu alat bantu dalam matlab khusus untuk perancangan diagram blok. Untuk membuatnya, klik icon di Matlab. Tunggu beberapa saat hingga matlab memunculkan jendela simulink. Untuk menggambar diagram blok baru klik icon (new) pada jendela Simulink Library browser. Gambar bentuk contoh di bawah ini.

Perhatikan cara membuatnya sebagai berikut: Step didrag dari Source, begitu juga Constant. Display dan Scope diambil dari Sink. Sementara Add diambil dari Math Operation. Transfer Fcn diambil dari Continuous. Dobel klik tiap komponen untuk mengganti harga parameter. Misalnya kita ingin mengganti harga parameter Step sebagai set point yaitu 80. Isi final value dengan harga 80.

Begitu juga dengan constant, beri harga -10. Di sini kita ambil contoh pemanas yang akan memanaskah suhu hingga 80 derajat tetapi menerima gangguan dari lingkungan sekitar misalnya 10 derajat di bawah harga set pointnya. Untuk mensimulasikan, klik icon (run) dan ganti angka di sebelah kanannya sesuai keinginan. Defaulnya adalah 10 detik, Anda bisa mengganti menjadi 100 detik atau lebih sesuai dengan kebutuhan. Hasilnya tampak pada gambar di bawah ini.

Perhatikan sistem tidak mampu menjaga suhu tetap 80 derajat karena ada gangguan sekitar -10 derajat, jadi ada error sebesar 10 derajat. Pertemuan yang akan datang akan dibahas cara menjaga suhu tetap 80 derajat walaupun ada gangguan dari lingkungan dengan batas-batas tertentu.

Introduction: Data Mining with Matlab

Data Mining berasal dari dua kata yaitu Data yang berarti sekumpulan fakta yang masih kasar dan Mining yang berarti menggali/menambang. Jadi dengan Data Mining diharapkan ada informasi tersembunyi yang bisa digali dari sekumpulan data tersebut. Metode-metode yang digunakan cukup banyak yang mudah-mudahan dapat diulas semua hingga UAS nanti.

Pertemuan kali ini hanya akan membahas sedikit bahasa pemrograman yang cukup mudah yaitu Matlab. Dibandingkan dengan c++, java, dan sejenisnya, Matlab jauh lebih mudah dan cocok jika kita hanya ingin mempelajari metode saja. Sebenarnya banyak alat lainnya seperti Rapidminer atau SQL Server Business Intelligent. Akan tetapi tools tersebut sangat sulit dianalisa struktur kodenya dan tidak cocok untuk pendidikan. Berbeda dengan matlab yang strukture toolbox yang dapat dilihat kode programnya yang dapat kita edit jika hasil algoritmanya kurang memuaskan. Selain itu Matlab dapat digunakan untuk membuat aplikasi yang dapat dijalankan oleh komputer lain yang tidak terinstal Matlab di dalamnya lewat mekanisme kompilasi menjadi executable program.

Here is an example of using GUI Matlab for getting data from excel and plotting it into graph. First open the GUI design, File – New – GUI. Choose the blank GUI and then with two push buttons and a single chart, make the simple GUI here:

After finishing GUI, save your GUI, so Matlab can generate the code with one m-file. You also can open the m-file editor by type: edit LATIHAN. I save my GUI’s name LATIHAN. We have two files for our application, LATIHAN.m and LATIHAN.fig that represent code and GUI respectively.

Beside edit the “String” on property editor, I suggest you to edit push button 1 and 2 with other name on “Tag” at property editor in order not to have difficult in searching function at m-file editor. Fill the script of function ambil_data and lihat_grafik with this sample code:

Of course you may your function left default option pushbutton1 and 2 . The function uigetfile was typed for calling the GUI for inserting the file. After catching the file (here denote with x), we continue to read that excel file with function xlsread. We have to use two other scripts handles.data and guidata(hObject,handles) because this variable (data) must send to other function (lihat_grafik function). Use your excel to create sample data (two field/column and some lines).

The second function was made for creating graph purpose. We use function plot with x-axis and y-ordinate. x=data(:,1) means creating the x variable contain data from colom 1 of data. If you run the program, you have to get the plot of the data.

This is the end of the introduction to Matlab for data mining session. Next week we’ll learn data mining algorithm : K-nearest Neighbourhood.