Showing posts with label sugi. Show all posts
Showing posts with label sugi. Show all posts

Monday, November 17, 2008

algoritma Costing dll

[under construction]

level imbalance: ..

minor = rev - c_retensi
mayor = c_retensi

cost retensi

evaluasi: sum rev TP - sum c_retensi TP+FP

voting menggunakan confidence (clementine)

dibandingkan dengan:
base clsssifier: C.50
base clsssifier: C.50 + balancing (ada macam-macam balancing)

revenue max: ...
revenue min: ....
revenue Costing: ....


Penggunaan Bagging apakah membantu dalam Costing?
Tren pengaruh iterasi bagging terhadap evaluasi (Recall, Precison, F, Revenue)

Pengaruh cost retensi terhadap evaluasi (Recall, Precison, F, Revenue)

Seberapa bagus (efektif -> revenue) algoritma Costing untuk
cost sensitive learning,
churn prediction

Mengapa bagus/jelek?
al. rejection sampling menghasilkan sample yang sedikit. Seberapa sedikit. (berapa %) cost-proportionate rejection sampling produces a smaller training set (by a factor of about N/Z).

Paper Roulette: we set the constant Z = maxC(i). Bagaimana cara mendapatkannya?

**sampling-based cost sensitive. Papernya algoritmanya apa saja.
pendekatan lain: ensemble

target:
* roulette (per instance) + rejection sampling

presisi berapa angka dibelakang koma untuk angka random (0-1)

paper terkait cost sensitive learning

Ini paper pendek yang bagus dan komprehensif tentang cost sensitive learning, karena mencakup multi-class, dan bila cost & imbalance secara umum, termasuk jika antara misclassification cost dan imbalance tidak konsisten. (yi. misclssification cost besar, prosentase banyaknya instance kelas tersebut besar)

[papernya apa.... lupa...cari]

Tuesday, November 11, 2008

jenis jenis cost sensitive learning

Ada beberapa pendekatan: black box, transparent box. Kalau untuk imbalance istilahnya “manipulasi data” dan “manipulasi/modifikasi algorithm”. Kalau pada feature selection ini seperti filter-based dan wrapper-based.

Selain black box vs transparent box bisa sudut pandang lain: relabeling, sampling, weighting. Relabeling dan sampling adalah black box, sedangan weighting adalah transparent box.
[sebutkan sumbernya]

Relabeling artinya melabel ulang kelasnya, (misal algoritma …)
Sampling: melakukan sampling sehingga distribusi antar kelas (atau instance) berubah.
Weighting artinya member bobot yang berbeda antar instance saat pembangunan model.

Pendekatan sampling merupakan yang cukup mudah dilakukan. Dan kelebihan lain bisa menggunakan classifier yang ada. Karena sampling dilakukan pada preprosesing.

Contoh yang menggunakan Sampling adalah algoritma Costing, dan cost-proportionate roulette sampling (CPRS). Pada algoritma Costing menggunakan rejection sampling, dan pada algoritma CPRS menggunakan roulette sampling.

Apa itu rejection sampling? Ini slide singkat yang dibuat Sugi. ppt
Apa itu roulette sampling? Ini banyak digunakan di algoritma genetika (GA) saat mutasi.

[buat slide roulette sampling, menyusul]

Penggunaan sampling biasanya diikuti dengan bagging (pada Costing dan CPRS)
Sampling pada cost sensitive learning ini pada prinsipnya sama dengan sampling pada imbalance problem.

Cost sensitive learning

Setiap Senin saya ketemu dengan Sugi, mhs yang sedang melakukan penelitian dengan saya sejak semester lalu. Topiknya “cost sensitive learning”. Yaitu klasifikasi dengan memperhatikan misclassification cost. Atau kalau dilihat dari sudut pandang lain: “true-classifiation” benefit (yi lawan dari cost).

OOT: apa ya istilah yang digunakan untuk misclassification? Miskomunikasi, istilah kebalikannya apa?

Salah satu bentuk misclassification yang banyak dipakai adalah menggunakan misclassification matrix, disingkat dengan “cost matrix”. Misclassification cost disingkat “cost”.
Dan biasanya topik cost-sensitive learning ini dikaitkan dengan topic “permasalahan klasifikasi jumlah instance antar kelas yang tidak imbang” (imbalance class problem).

[buat posting: imbalance problem vs cost sensitive learning]

OOT: bahasa Inggis yg lebih bagus/baku apa? Imbalance atau unbalance? Di data mining biasanya “imbalance”, namun ada yang mengatakan bahwa sebenarnya dari sisi bahasa yang lebih tepat adalah “unbalance”. Coba cari dengan Google “imbalance” dan “unbalance”, maka yang terakhir yang lebih banyak digunakan.

Untuk klasifikasi biner (dua kelas):
[buatlah gambar cost matrix di sini]

Di sini, ada empat jenis benar salahnya tebakan: TP, TN, FP, FN. Biasanya TP dan TN tidak ada costnya.

Sehingga hanya ada dua yang ada nilai costnya FP dan FN. Nilai FP dan FN bisa berbeda. Kedua nilai itu didapatkan memang dari permasalahan (atau dari user), kita tinggal ambil/pakai. Nilai2 itu bukan dari data, lalu kita proses sehingga menghasilkan nilai FP, FN.
Bagaimana kalau multiple-class (ada lebih dari dua nilai kelas)?

Contoh kasus yang sangat menarik adalah di kompetisi Data Mining Cup 2008. Di sini multi-class (kaau ngga salah ada lima kelas), ada imbalance, ada cost. Sayangnya kasusnya yang nggak enak: tentang lotere. Coba saja download data, keterangan permasalahannya. Beberapa mhs ITTelkom ikut kompetisi ini. Hasil mereka bisa dilihat di web site komptesisi. Cara mereka menyelesaikan permasalahan bisa didownload di sini. […………….]

O ya, bagaimana kalau multiple-class (ada lebih dari dua nilai kelas)?
Ini contoh table cost matrix dari kompetisi Data Mining Cup 2008.

[cost matrix DMCup 08]

Tampak jelas bahwa kolom dan baris matrixnya sekarang sebanyak/sebesar jumlah nilai kelasnya. Tidak ada kelas positif, kelas negative sehingga tidak ada FP dan FN. Ya bisa kita beri nama misclassification costnya misalkan kita beri nama AB, artinya kalau true class nya: A predicted: B.

Mengapa cost-sensitive penting? Lebih mendekati kebutuhan riil?
Karena evaluasi performansi klasifikasi akan lebih riil (lebih berguna bagi user) bila nilainya adalah cost (atau benefit), bukan error (atau akurasi).

Yang lebih generik lagi dibandingkan cost-matrix seperti yang di Data Mining Cup 08 adalah bila kolom dan baris matrixnya sebesar jumlah instance. Jadi ada mapping antara semua instance ke semua instance yang lain (termasuk juga ke diri sendiri). Matriksnya N x N, dimana N adalah jumlah instance. Seperti matriks-matriks sebelumnya yang dipakai adalah separo saja (matriksnya simetri).

[gambar marix NxN)

Bagaimana kalau permasalahannya seperti pada churn prediction?
Dimana nilai yang ada adalah nilai atribut (satu dimensi) bukan berupa matrix?
Mana nilai cost/benefitnya? Bagaimana kita mengubah menjadi cost matrix?

[to be continue in other posting]

Friday, September 26, 2008

Cost sensitve learning

Barusan diskusi dengan mhs ITTelkom, Sugi, yang sedang mengerjakan penelitian untuk TA ttg cost sensitve learning.

Dengan merujuk pada metoda COSTING pada Cost-Sensitive Learning by Cost-Proportionate Example Weighting. Dimana pada metoda ini diperhitungkan cost atau benefit per instance, bukan dengan cost atau benefit matrix.

Beberapa poin dari diskusi:

NILAI BENEFIT

Untuk kasus churn prediction sebagai benefit dari setiap instance (di sini adalah customer) bisa besarnya jumlah pulsa, atau lebih umumnya lagi "customer value". Namun sebaiknya ada nilai kuantitatifnya. Pada data training, dibuat sebuah atribut baru yang berisi nilai "benefit", dimana untuk customer yang mempunyai class "churn" nilai benefitnya adalah dari nilai tersebut, sedangkan untuk customer yang "loyal" nilai benefitnya diset nol. Mengapa? Karena untuk customer yang churn pada training set jika ditebak benar sebagai churn, dianggap dapat dicegah agar tidak churn. Sedangkan customer yang loyal, jika ditebak menjadi churn tidak memberi benefit namun kalau ditebak benar sebagi loyal juga tidak memberi benefit.

Jika dianalogikan dengan data donasi pada KDD Cup 98. Nilai benefitnya dalah besarnya donasi. Yang menyumbang: analog dengan churn, sedang yang tidak menyumbang dianalogikan dengan loyal.

NILAI COST

Untuk yang nilai costnya belum diketahui (kalau untuk kasus KDD Cup 98 ttg donasi, costnya adalah biaya untuk mengirim brosur), kita bisa menjadikan cost sebagai satu variabel. Kita buat grafik dimana sumbu X adalah cost, dan sumbu Y adalah total benefit hasil prediksi.

EVALUASI


Evaluasi utama yang bisa dilakukan adalah besarnya total benefit dari hasil prediksi.
Beberapa evaluasi lain perlu dilakukan: top decile lift n%, gini index. Ada baiknya juga total benefit untuk misalkan top n%.

Sedangkan F-measure untuk kelas minor bisa digunakan sebagi informasi tambahan.

LAIN-LAIN

Metoda COSTING ini dapat digolongkan sebagai upper sampling?