100% found this document useful (1 vote)
1K views9 pages

KNN Min Max Normalization Contohoerhitungan

This document describes a KNN classification method using min-max normalization on height data from an Indonesian model dataset. It includes the original height data, code to perform min-max normalization, calculate distances between data points, sort distances, and classify new data based on the K nearest neighbors. The code is in Java and includes classes for the KNN algorithm, data normalization, and distance calculation methods.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
1K views9 pages

KNN Min Max Normalization Contohoerhitungan

This document describes a KNN classification method using min-max normalization on height data from an Indonesian model dataset. It includes the original height data, code to perform min-max normalization, calculate distances between data points, sort distances, and classify new data based on the K nearest neighbors. The code is in Java and includes classes for the KNN algorithm, data normalization, and distance calculation methods.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

TUGAS 3

DATA MINING

METODE KNN MIN-MAX-NORMALIZATION

Oleh:

RAHMANITA M. KARIMA

(0810963023)

MUTYA FANI ATSOMYA

(0810963019)

RIA KURNIANTI

(0810963065)

RIZKHY AYUNING TYAS

(0810963067)

PROGRAM STUDI ILMU KOMPUTER


JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
MALANG
2011

TUGAS DATA MINING

CONTOH DATA TINGGI BADAN MODEL INDONESIA


NO
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

NAMA
yuna
so-young
jesica
tifani
taeyon
yuri
ria
dinda
sunny
mumy
adit
wicaksono
akbar
pono
rahmanita
maulidia
karima
mutya
rizkhy ayuning
atsomya
budi

TINGGI (cm)
162
160
173
168
150
166
155
161
162,5
152
165
166
156
178
169
167
162
159
151,5
152
153

JENIS
KELAMIN
Tinggi
Tinggi
Tinggi
Tinggi
Pendek
Tinggi
Pendek
Tinggi
Tinggi
Pendek
Tinggi
Tinggi
Pendek
Tinggi
Tinggi
Tinggi
Tinggi
Pendek
Pendek
Pendek
Pendek

PERHITUNGAN
1. NORMALISASI MIN-MAX

Min (X) =150


Max (X) = 178
Range (X) = Min (X) Min (X)
= 178 150
= 28

NO
0
1
2
3
4
5

HASIL
NORMALISASI
0,428571429
0,357142857
0,821428571
0,642857143
0
0,571428571

TUGAS DATA MINING

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

0,178571429
0,392857143
0,446428571
0,071428571
0,535714286
0,571428571
0,214285714
1
0,678571429
0,607142857
0,428571429
0,321428571
0,053571429
0,071428571
0,107142857

2. JARAK ANTAR VARIABEL


Rumus jarak: D(new,object)=SQRT(POWER(normalisasi_new - normalisasi_object))
Misalnya data yang akan di bandingkan adalah 165.
Di normalisasinya:
= 0,535714285
NO
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Object
d(new,yuna)
d(new,so-young)
d(new,jesica)
d(new,tifani)
d(new,taeyon)
d(new,yuri)
d(new,ria)
d(new,dinda)
d(new,sunny)
d(new,mumy)
d(new,adit)
d(new,wicaksono)
d(new,akbar)
d(new,pono)
d(new, rahmanita)
d(new,maulidia)

Jarak
0,107142857
0,178571429
0,285714286
0,107142857
0,535714286
0,035714286
0,357142857
0,142857143
0,089285714
0,464285714
0
0,035714286
0,321428571
0,464285714
0,142857143
0,071428571

TUGAS DATA MINING

16 d(new,karima)
17 d(new,mutya)
d(new,rizkhy
18 ayuning)
19 d(new,atsomya)
20 d(new,budi)

0,107142857
0,214285714
0,482142857
0,464285714
0,428571429

3. SIMPLE UNWEIGHT VOTING


Misalkan K=2
Langkah-Langkah:
a. Sorting
NO
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

DISTANCE
0,107142857
0,178571429
0,285714286
0,107142857
0,535714286
0,035714286
0,357142857
0,142857143
0,089285714
0,464285714
0
0,035714286
0,321428571
0,464285714
0,142857143
0,071428571
0,107142857
0,214285714
0,482142857
0,464285714
0,428571429

SORTING
0
0,035714286
0,035714286
0,071428571
0,089285714
0,107142857
0,107142857
0,107142857
0,142857143
0,142857143
0,178571429
0,214285714
0,285714286
0,321428571
0,357142857
0,428571429
0,464285714
0,464285714
0,464285714
0,482142857
0,535714286

karena k=2 , maka diambil 2 terendah dari hasil sorting maka hasilnya adalah 0 dan
0,035714286.

TUGAS DATA MINING


SOURCE CODE
KNN_normalisasi_unweight.java
package tugasdatminknn_norm_unweight;
import javax.swing.JTextArea;
public class KNN_nomalisasi_unweight extends javax.swing.JFrame {
public KNN_nomalisasi_unweight() {
initComponents();
b1.setEnabled(false);
b2.setEnabled(false);
b3.setEnabled(false);
kedekatan.setEnabled(false);
reset.setEnabled(false);
}
public String nama[]={"yuna","so-young","jesica","tifani","taeyon",
"yuri","ria","dinda","sunny","mumy","adit","wicaksono","akbar",
"pono","rahmanita","maulida","karima","Mutya","Rizkhy
Ayuning","Atsomya","Budi"
};
public double tinggi[]={162,160,173
,168,150,166,155,161,162.5,152,
165,166,156,178,169,
167,162,159,151.5,152,153
};
public String ket[]={"Tinggi","Tinggi","Tinggi","Tinggi","Pendek",
"Tinggi","Pendek","Tinggi","Tinggi","Pendek",
"Tinggi","Tinggi","Pendek","Tinggi","Tinggi",
"Tinggi","Tinggi","Pendek","Pendek","Pendek","Pendek"
};
public double msk1;
public int k;
public static TugasDatmin h=new TugasDatmin();
public
public
public
public
public
public
public
public
public

double mx=h.maksimum(tinggi);
double mn=h.minimum(tinggi);
String klasifikasi;
String rst="";
int countT = 0;
int countP = 0;
double r=mx-mn;
int ah=tinggi.length;
double jarak_dengan_new []=new double [ah];

public double normalisasi(double a){


double norm;
norm=(a-mn)/r;
return norm;
}
public static void sss_urut(double j[],String k[]) {
int n = j.length;
for (int pass=1; pass < n; pass++) {
for (int i=0; i < n-pass; i++) {
if (j[i] > j[i+1]) {
double temp = j[i];
j[i] = j[i+1];
j[i+1] = temp;
// sorting kategori berdasarkan jarak

TUGAS DATA MINING


String aduh=k[i];
k[i]=k[i+1];
k[i+1]=aduh;
}
}
}
//return x;
}
public void classification(JTextArea jj)
{
sss_urut(jarak_dengan_new,ket);
k=Integer.parseInt(masukan_k.getText());
//sss_urut(jarak_dengan_new,ket);
jj.append("Dengan k = "+k+", maka\n");
for (int b = 0; b<k; b++){
jj.append"kategori yang sudah di urutkan : \nDengan keterangan
"+ket[b]+" dan jarak \t"+jarak_dengan_new[b]+"\n");
}
for (int b = 0; b<k; b++){
if (ket[b].equalsIgnoreCase("Tinggi"))
{
countT++;
}
if (ket[b].equalsIgnoreCase("Pendek"))
{
countP++;
}
jj.append(""+ket[b]+"\n");
}
if (countT>countP){
klasifikasi = "Tinggi";
}
else if(countT<countP){
klasifikasi = "Pendek";
}
else {
klasifikasi = "Tinggi";
}
jj.append("\nKlasifikasi nilai baru

: " + klasifikasi);

}
private void b3ActionPerformed(java.awt.event.ActionEvent evt) {
kedekatan.setEnabled(true);
msk1=Double.parseDouble(newbaru.getText());
int p=tinggi.length;
int aa;
for (aa=0;aa<p;aa++){
jarak_dengan_new[aa]=h.hitung_jarak(this.normalisasi(msk1),this.normalisasi
(tinggi[aa]));
//this.sorting(jarak_dengan_new);
out_cari_jarak.append("(new,"+nama[aa]+")
="+jarak_dengan_new[aa]+"\n");
}

TUGAS DATA MINING


private void b2ActionPerformed(java.awt.event.ActionEvent evt) {
b3.setEnabled(true);
double jrk=0;
double jrk_nya=0;
int c,m,d;
for(d=0;d<ah;d++){
for(c=0;c<ah;c++){
jrk=h.hitung_jarak(this.normalisasi(tinggi[d]),
this.normalisasi(tinggi[c]));
jarak_all.append("d ("+d+","+c+") ="+jrk+"\n");
}
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new KNN_nomalisasi_unweight().setVisible(true);
}
}
}
}
TugasDatmin
import javax.swing.JTextArea;
public class TugasDatmin{
public TugasDatmin(){
}
public static TugasDatmin kk=new TugasDatmin();
public static void perhitungan_normalisasi_Min_Max(double
data[],JTextArea ja){
int x=data.length;
double kecil=kk.minimum(data);
double besar=kk.maksimum(data);
double range=besar-kecil;
for(int a=0;a<x;a++){
double NormalisasiMinMax=(data[a]-kecil)/range;
ja.append("data ke-"+a+"="+NormalisasiMinMax+"\n");
}
}
public double maksimum(double data[]){
int N=data.length;
double maks;
maks = data[0];
for (int k=1; k < N; k++){
if (data[k] > maks){
maks = data[k];
}
}
return(maks);
}
public double minimum(double data[]){
int N=data.length;
double min;
min = data[0];
for (int k=1; k < N; k++){
if (data[k] < min){
min = data[k];

TUGAS DATA MINING


}
}
return(min);
}
public double kategori(char kategori1,char kategori2){
double variabel;
if(kategori1!=kategori2){
variabel=1.0;
}
else
variabel=0.0;
return variabel;
}
public double hitung_jarak(double xi,double yi){
//double kateg=kk.kategori(a,b);
double distance=xi-yi;
double temp1=Math.pow(distance,2);
//double temp2=Math.pow(kateg,2);
double Jarak_Ku=Math.sqrt(temp1);
return Jarak_Ku;
}
public static void urut_data(double x[],JTextArea d) {
int n = x.length;
for (int pass=1; pass < n; pass++) {
for (int i=0; i < n-pass; i++) {
if (x[i] > x[i+1]) {
double temp = x[i];
x[i] = x[i+1];
x[i+1] = temp;
}
}
}
for(int k=1;k<x.length;k++){
d.append(""+x[k]+"\n");
}
}
}
Main.java
package tugasdatminknn_norm_unweight;
public class Main {
public static void main(String[] args) {
KNN_nomalisasi_unweight kk=new KNN_nomalisasi_unweight();
kk.setVisible(true);
}
}

OUTPUT

TUGAS DATA MINING

You might also like