Sains Harus Belajar dari Marketing

Sepintas sungguh aneh, bahkan bagi orang murni sains marketing dianggap bukanlah ilmu, setidaknya disebut “an oxymoron” alias retorika yang ambigu yang sering dipakai politisi kita (pro maupun kontra). Benarkah marketing itu bukan ilmu? Postingan kali ini terinspirasi dari buku web mining (lihat post yang lalu) yang akan segera saya kembalikan ke perpustakaan. Di buku tersebut di bab “Using Marketing Tests to Understand Customers” disinggung masalah ilmu unik marketing.

Power of Marketing

Sebelum lanjut, sepertinya kita sadari terlebih dulu kondisi aneh perusahaan-perusahaan saat ini dalam kaitannya dengan masalah disruption. Banyak perusahaan yang terkenal mapan langsung terpuruk karena fenomena tersebut. Salah satunya adalah ditinggalkan oleh konsumennya yang memilih produk lain yang dianggap memenuhi harapannya. Salah satu aspek terpenting suatu perusahaan adalah marketing karena merupakan sarana untuk menarik konsumen yang kemudian berdampak terhadap keuntungan. Tanpa keuntungan tentu saja tidak dapat membiayai ongkos-ongkos suatu perusahaan. Bolehlah teknik, riset, dan sejenisnya terhadap suatu produk atau manufaktur, tetapi tanpa melakukan riset dalam marketing, siap-siap mengambil resiko besar terhadap kerugian. Ipad waktu itu siap dipasarkan apple, tetapi bagian riset marketing ternyata melihat animo masyarakat terhadap Iphone lebih tinggi, padahal Iphone waktu itu belum siap publish. Dan benar, dengan menahan Ipad dan melapas Iphone terlebih dahulu, apple mendulang untung besar. Para pekerja aktif seperti perawat, dokter, dan sejenisnya lebih membutuhkan piranti cerdas mungil dibanding yang lebih besar.

Marketing & Sains

Apa itu sains? Sains intinya melakukan riset runtun yang berdasarkan tahapan-tahapan yang disebut metode ilmiah: hipotesa, disain eksperimen, eksperimen, analisa hasil, dan merevisi hipotesa. Tahapan-tahapan itu haris bisa ditiru oleh periset lain sehingga terbukti keandalan dan akurasi temuannya (confidence). Bagaimana dengan marketing? Tunggu dulu, dengan data yang ada sebelumnya ternyata hasil hipotesa tidak berlaku dengan kondisi yang ada sekarang. Jangankan data beberapa tahun yang lalu, data beberapa bulan yang lalu saja belum tentu akurat untuk diterapkan saat ini. Lalu bagaimana ini?

Buku rujukan web mining menjelaskan bahwa titik penting bagian riset di marketing adalah hipotesa. Hipotesa yang tidak tepat tentu saja tidak bermanfaat walaupun benar. Walaupun mengikuti metode ilmiah tetapi jika tidak menjawab persoalan utama, tentu saja tidak bermanfaat. Untuk itu saintis harus belajar bagaimana marketing menentukan hipotesa risetnya yang terkadang bagi ilmuwan kurang greget, kurang wah, kurang berbobot, tapi ternyata dampaknya besar. Berikut hal-hal yang bisa dipelajari dari marketing dalam penentuan hipotesa:

  • Kreativitas: dibutuhkan untuk menemukan hipotesa yang menarik
  • Skeptisme/keraguan: bukan hanya solve problem, ternyata meyakinkan suatu itu penting, terutama dengan pencarian dan perbandingan alternatif-alternatif.
  • Kepercayaan diri untuk maju berdasarkan hasil riset. Terkadang di kampus kita selalu menekankan hasil riset harus OK, model harus fit, dan sejenisnya. Parahnya siswa suka mengutak-atik data agar “cakep”. Ternyata bagi orang marketing, sejelek apapun data maupun hasil riset, bisa digunakan untuk move on (termasuk diterapkan bagi yg calonnya kalah pemilu).

Marketing untuk Dana Penelitian

Sering sekali teknik marketing saya gunakan untuk memperoleh hibah penelitian. Sebagian hibah penelitian sebenarnya berdasarkan proses marketing kita, baik ketika membuat proposal maupun saat presentasi. Tidak semua judul yang lolos di jurnal lolos pula di hibah (sepertinya sebaliknya juga berlaku). Kreativitas, keraguan, dan kepercayaan untuk maju yang telah dibahas di atas, sangat diperlukan. Keahlian dalam mengemas sesuatu yang biasa-biasa saja jadi berharga dan sesuatu yang sudah berharga dikemas agar terlihat bermanfaat sangat diperlukan untuk mendapatkan dana hibah. Ketika mengajukan proposal hibah terkadang saya sengaja membuat bimbang reviewer. Bolehlah dia marah-marah ketika presentasi, setidaknya saya telah membuat mereka bimbang untuk menolaknya disaat memutuskan lolos atau tidak. Sepertinya perlu postingan tersendiri untuk masalah hibah. Sekian semoga bermanfaat.

Reference

Linoff, G. S., & Berry, M. J. A. (2001). Mining the Web. United States of America: Wiley.

Iklan

Aplikasi anti plagiarisme, free dan yang Berbayar.

Dalam dunia akademik, plagiasi merupakan suatu pelanggaran serius. Belakangan karena maraknya kasus plagiasi di suatu kampus memaksa pemerintah mengganti rektornya. Agar kejadian ini tidak terulang lagi, alangkah baiknya suatu institusi memiliki fasilitas untuk mengecek suatu tulisan apakah mencontek karya orang lain. Dengan demikian tiap karya yang dipublikasikan benar-benar murni tulisan si penulis. Sepertinya teknologi web-mining diterapkan dalam aplikasi-aplikasi anti plagiarisme ini (lihat pembahasan mengenai web mining)

Selain untuk mencegah, ternyata alat bantu cek plagiasi bisa membantu mahasiswa untuk mengetahui apakah tulisannya pernah ditulis orang lain. Terkadang si mahasiswa memang benar-benar menulis sendiri tulisannya, tetapi ternyata kebetulan sama dengan tulisan yang telah dipublikasikan orang lain. Di sinilah fungsi lain dari plagiarism checking tool tersebut, yaitu membuat suatu tulisan berbeda dengan karya orang lain.

1. Aplikasi anti plagiarisme yang terkenal adalah Turnitin. Hanya saja aplikasi ini tidak gratis dan harus berlangganan. Tetapi bagi suatu institusi sepertinya tidak masalah, mengingat manfaat yang diberikan tool ini. Salah satu aspek penting dari alat bantu ini adalah adanya bukti otentik bahwa suatu tulisan orisinal. Biasanya suatu kampus mensyaratkan prosentasi tertentu, misalnya di tempat saya tingkat kemiripannya kurang dari 15%. Selain itu jika ada sumber lain yang mirip, maksimal 5% kemiripannya dengan satu sumber itu. Berikut tampilan setelah Log-in.

Seperti biasa, jika ada yang berbayar maka ada juga yang menyediakan fasilitas yang gratis. Namun demikian belum tentu benar-benar akurat dan harus diuji. Tetapi tidak ada salahnya menggunakannya. Berikut ini adalah beberapa yang bisa dicoba.

2. PlagScan. Tool ini mirip seperti turnitin, login terlebih dahulu. Namun ada kolom khusus bisa mengecek tulisan tanpa login. Misal saya ambil contoh dari paper terdahulu saya.

Ternyata hasilnya benar-benar akurat, yakni 99% menyontek. Dengan kata lain memang benar bahwa itu tulisan saya yang dulu. Jika ada orang lain yang copy paste bisa terdeteksi. Lumayan untuk mengoreksi tugas-tugas mahasiswa apakah menyontek atau tidak. Tetapi di sini menyontek dengan tulisan yang sudah dipublikasi, kalau menyontek temannya belum tentu ketahuan (tapi tentu saja dosennya tahu, tinggal tuduh saja yang mengumpulkan belakangan berarti nyontek).

3. Smallseotools. Mirip dengan plagscan, kita diminta register terlebih dahulu. Tetapi bisa juga tanpa register dengan limit 1000 kata. Saya ambil contoh mirip dengan kasus sebelumnya. Hasilnya tingkat kemiripan 92%, sepertinya lebih akurat Plagscan. Terlihat juga proses smallseotools ini lebih lama dibandingkan plagscan.

Salah satu yang perlu dipertimbangkan adalah smallseotools menjamin tulisan yang ingin dicek tidak diambil mereka. Tiap selesai proses data langsung dihapus. Tetapi tetap saja saya masih ragu-ragu.

4. Duplichecker. Mirip dengan plagscan dan smallseotools (jadi mikir jangan-jangan mereka pakai engine yang sama). Tetapi antara plagscan dengan smallseotools terbukti berbeda hasilnya, jadi disimpulkan sementara memakai mesin yang berbeda. Oke, kita coba dengan tulisan yang sama dengan sebelumnya. Sama dengan smallseotools, maksimal 1000 kata. Upps.. ternyata salah, harusnya 100% plagirized.

Ketika saya mau tes lagi ternyata harus signup dulu karena melebihi limit (sekali cek). Menurut saya aplikasi ini tidak recomended. Walaupun harus diuji lagi setelah Sign-up masih salah apa tidak (silahkan coba).

Sepertinya plagscan lebih bagus di antara ketiga plagiarism checker gratisan tersebut. Namun demikian perlu diuji lagi untuk tulisan yang banyak dengan naskah “gado-gado”, apakah bisa mendeteksi atau seperti yang terakhir, “no plagiarism detected”, padahal pakai tools yang lain “plagiarized”.

Satu hal yang ditakutkan adalah ketika kita memasukan suatu naskah ke plagiarism checker yang mencuri naskah tersebut. Tetapi kalau memang sudah pasti segera dipublikasikan ya tidak masalah, toh kalau dipublikasi sudah tentu dibaca semua orang. Bagi pengelola jurnal yang penting pastikan Google scholar minimal mendeteksi suatu tulisan resmi yang dipublish sehingga jika ada yang menyontek pasti terlambat karena Google sudah mendeteksi terlebih dahulu naskah aslinya. Sedikit banyak semoga postingan ini bermanfaat.

Riset Tentang Web Mining

Lanjutan dari postingan yang lalu. Semua orang pasti memiliki jawaban yang sama tentang pentingnya aplikasi web, yaitu sangat penting. Mulai dari facebook, google, baca berita, dan mencari informasi lainnya selalu menggunakan aplikasi berbasis web. Walaupun saat ini aplikasi android sudah menjamur, tetapi tetap saja web menjadi hub yang menghubungkan client dengan server aplikasi dan server data. Perkembangannya yang sangat cepat membuat riset di bidang ini harus secepat mungkin karena satu teknologi akan segera usang seiring berjalannya waktu.

Banyak Anak Muda yang Tertarik

Web mining merupakan ilmu yang baru. Anak-anak muda karena sudah mengenal web sejak sekolah menengah tidak akan merasa kesulitan untuk mempelajarinya. Terkadang mereka lebih mahir dari pada guru-guru bahkan dosennya. Ketika saya mengikuti wawancara untuk mendapatkan beasiswa S3, saya iseng meminjam proposal milik peserta yang kebanyakan masih muda. Kebanyakan mereka ingin riset yang ada hubungannya dengan web, misalnya semantik web.

Bukan hanya untuk riset, banyak orang menggunakan web untuk mencari uang (affiliate marketing) dengan teknologi-teknologi yang dikembangkan seperti web crawler ataupun robot-robot yang diistilahkan dengan nama bot.

Bidang-bidang Riset Web Mining

Sesuai dengan unsur katanya, web mining berarti menggali informasi yang ada di web. Berbeda dengan data mining yang menggali informasi dari data terstruktur, web mining menggali informasi dari data semi-structure bahkan unstructured. Web mining lebih sulit karena jenis datanya yang tidak terstruktur dan terkadang banyak data “sampah” yang mengganggu proses penggalian data.

Untuk melakukan riset, langkah pertama yang harus ditempuh adalah mempelajari prinsip-prinsip dasar yang sudah baku di buku teks. Jangan sampai kita melakukan riset terhadap sesuatu yang sudah “established”. Teori-teori di buku biasanya sudah fix dan diakui kebenarannya oleh hampir peneliti-peneliti di dunia. Biasanya mahasiswa S3 terkadang mengambil mata kuliah bidang yang akan diriset sebelum masuk ke kandidasi (syarat untuk diperbolehkan meneliti). Langkah berikutnya adalah men-searching jurnal-jurnal terkini tentang web mining.

Untuk buku silahkan baca buku-buku yang beredar, terutama yang bahasa Inggris, misalnya “Mining the web” dan buku-buku semantic web lainnya (Linoff & Berry, 2001; Yu, 2011). Di sini disebutkan ada tiga aktivitas Web mining yang penting:

  • Mining structure
  • Mining usage
  • Mining content

Structure Mining

Silahkan masuk ke salah satu bidang web mining di atas. Yang pertama adalah Mining structure. Penggalian ini bermaksud mencari struktur dari web, biasanya link-link yang ada dalam suatu halaman. Halaman mana saja yang kerap menjadi target dari halaman yang lain? Halaman mana yang menunjuk ke halaman-halaman lain? dan seterusnya. Grafik yang sering dibuat adalah graf berarah yang menunjukan hubungan satu halaman dengan halaman lainnya. Penerapan yang sering dibuat adalah menghitung sitasi terhadap suatu halaman. Istilah yang sering muncul adalah hub, authorities, dan populer site. Tidak hanya melibatkan halaman yang berbeda, struktur lokal pun masuk dalam domain structure mining asalkan melibatkan hubungan-hubungan link.

Mining Usage Pattern

Di sini ada tambahan kata “pattern” karena biasanya yang digali adalah pola penggunaan suatu page. Dua bidang utamanya adalah clickstream analysis dan web logs. Masalah-masalah yang muncul adalah bersih atau tidaknya page yang dikoleksi. Oleh karena itu diperlukan langkah-langkah sebagai berikut:

  • Filtering
  • Despidering (anti spider)
  • User identification
  • Sessionalization, dan
  • Path completian.

Mining Content

Menggali isi web-web yang berserakan di dunia maya membutuhkan keahlian dalam menangani text/string karena sebagian besar web tidak terstruktur. Baca dan pelajari information retrieval dari buku-buku yang tersedia, misalnya buku yang gratis didonlot dari penerbitnya ini. Konsep-konsep stemming, dan sejenisnya (recall, precission, dll) banyak di bahas di buku tersebut. Oiya, sebagian saya tulis di post tentang information retrieval. Silahkan riset jika tertarik, saya sendiri masih meraba-raba, jika tidak sanggup ya back to basic: spatial data optimization.

Ref:

  • Linoff, G. S., & Berry, M. J. A. (2001). Mining the Web. United States of America: Wiley.
  • Yu, L. (2011). A Developer’s Guide to the Semantic Web. New York: Springer.

 

Pareto Front Optimal

Belajar sesuatu terkadang lebih mudah dengan langsung mempraktekannya. Kata pepatah experience is the best teacher. Matlab menyediakan fasilitas help baik yang terselip di programmnya atau di situs resminya, www.mathworks.com.

Buka matlab, buat fungsi objective yang akan diminimisasi. File – New – Function, atau saya lebih suka langsung mengetik di command window nama M-file yang akan saya buat >>edit simple_multi. Tekan enter ketika Matlab mengkonfirmasi bahwa M-file yang dimaksud tidak ada dan apakah kita akan membuatnya.

Ada dua fungsi di dalam satu fungsi pada M-file di atas. Tugasnya adalah mencari nilai X yang membuat dua fungsi itu minimum. Tidak ditentukan di awal bobot antara fungsi 1 dan fungsi 2 karena kalau bobotnya sudah ditentukan tentu saja langsung bisa ketemu jawabannya. Bobot yang kita gunakan bobot standar yang jika dijumlahkan = 1, misalnya w1=0.3 dan w2=0.7. Ikuti saja instruksi dari www.mathworks.com untuk memperoleh nilai x beserta bobotnya.

  • F = simple_multi(t);
  • t = linspace(-0.5,1.5);
  • plot(t,F, ‘LineWidth’ ,2)
  • hold on
  • plot([0,0],[0,8], ‘g–‘ );
  • plot([1,1],[0,8], ‘g–‘ );
  • plot([0,1],[1,6], ‘k.’ , ‘MarkerSize’ ,15);
  • text(-0.25,1.5, ‘Minimum(f_1(x))’ )
  • text(.75,5.5, ‘Minimum(f_2(x))’ )
  • hold off
  • legend( ‘f_1(x)’ , ‘f_2(x)’ )
  • xlabel({‘x’ ; ‘Tradeoff region between the green lines’ })
  • edit pickindex
  • k = 1;
  • [min1,minfn1] = fminbnd(@(x)pickindex(x,k),-1,2);
  • k = 2;
  • [min2,minfn2] = fminbnd(@(x)pickindex(x,k),-1,2);
  • goal = [minfn1,minfn2];
  • nf = 2;
  • N = 50;
  • onen = 1/N;
  • x = zeros(N+1,1);
  • f = zeros(N+1,nf);
  • fun = @simple_multi;
  • x0 = 0.5;
  • for r = 0:N
  • t = onen*r; % 0 through 1
  • weight = [t,1-t];
  • [x(r+1,:),f(r+1,:)] = fgoalattain(fun,x0,goal,weight, …
  • [],[],[],[],[],[],[]);
  • End

Grafik pertama berisi grafik dua fungsi objective yang akan dioptimasi:

Kita harus mengkompromikan antara f1 dan f2 karena ketika f1 ke arah minimum, fungsi f2 naik nilainya. Pareto menggunakan prinsip nondominant dimana tidak boleh ada yg dominan antara f1 dan f2. Perhatikan grafik kedua dari instruksi di atas:

Grafik di atas adalah sebaran beberapa komposisi bobot w1 dan w2 terhadap kedua fungsi objective. Titik2 itu membentuk garis lengkungan yang menggambarkan nondominant. Titik terbaiknya dapat dilihat dari panduan di link ini, perhatikan gambarnya.

Term Frequency dan Invers Document Frequency (Tf-Idf)

Karena kelemahan scoring dengan Jaccard adalah tidak disertakannya frekuensi suatu term dalam suatu dokumen, maka diperlukan skoring dengan kombinasi dari Term Frequency dan Invers Document Frequency atau disingkat tf-idf.

Term Frequency (tf)

Tf menyatakan jumlah berapa banyak keberadaan suatu term dalam satu dokumen dan kemudian dilogaritmikan agar mengurangi besarnya bilangan, dimana logaritmik suatu bilangan akan mengurangi digit jumlah, misalnya 1000 dengan log (1000) hanya menghasilkan angka tiga. Rumus Tf adalah sebagai berikut:

Jadi jika suatu term terdapat dalam suatu dokumen sebanyak 5 kali maka diperoleh bobot = 1 + log (5) =1.699. Tetapi jika term tidak terdapat dalam dokumen tersebut, bobotnya adalah nol.

Inverse Document Frequency (Idf)

Terkadang suatu term muncul di hampir sebagian besar dokumen mengakibatkan proses pencarian term unik terganggu. Idf berfungsi mengurangi bobot suatu term jika kemunculannya banyak tersebar di seluruh koleksi dokumen kita. Rumusnya adalah dengan inverse document frequency. Document frequency adalah seberapa banyak suatu term muncul di seluruh document yang diselidiki.

Sehingga bobot akhir suatu term adalah dengan mengalikan keduanya yaitu tf x idf. Berikut ini kita mengambil contoh suatu kasus. Misalnya kita memiliki vocabulary sebagai berikut:

girl, cat, assignment, exam, peace

Dan kita diminta merangking suatu query: “girl exam” terhadap dua dokumen di bawah ini:

Document 1 : exam peace cat peace peace girl

Document 2 : assignment exam

Langkah pertama adalah kita membuat tabel dengan term urut abjad (lexicography) dan mengisi nilai bobotnya untuk document 1 dan document 2. Setelah itu menghitung score(q,d1) dan score(q,d2) yang menyatakan berturut-turut skor rangking query terhadap dokumen 1 dan dokumen 2.

Bagaimana angka-angka tf-idf tersebut muncul? Jawabannya adalah dengan menghitung bobotnya lewat rumus tf x idf di atas. Perhatikan exam dan girl yang merupakan query (ditandai kotak hitam). Tampak untuk dokumen 1 score-nya adalah 0 + 0.3 = 0.3, sementara untuk dokumen 2 score-nya 0 + 0 = 0, jadi jika diranking, yang pertama adalah dokumen 1 dan berikutnya dokumen 2. Bagaimana menghitung bobot Wt,d untuk girl pada document 2 di atas yang diperoleh hasil 0.3? berikut ini jalan lengkapnya:

Coba hitung bobot di kolom yang lainnya siapa tahu saya salah hitung.

Koefisien Jaccard

Antara query dengan document perlu dihitung skor untuk mengetahui ranking hasil dari searching kita. Salah satu teknik termudah adalah dengan koefisien Jaccard. Koefisien ini mudah karena kita tinggal mencari item mana saja yang sama dibagi dengan total item keduanya.

Berikut ini adalah contoh sederhana kasus menghitung koefisien Jaccard. Jika diketahui A={1,2,3,4}, B={1,2,4}, dan C={1,2,4,5}, berapakah Jaccard (A,B), Jaccard(B,C), dan Jaccard(A,C). Berikut ini penyelesaiannya.

Berikutnya untuk kasus query dan document. Misalnya kita punya query: ides of march dengan dua buah document yaitu doc1: caesar died in march, doc2: the long march. Cari koefisien jaccard antara query dengan doc1 dan doc2.

Koefisien jaccard memiliki kelemahan dimana koefisien ini tidak memperhatikan term frequency (berapa kali suatu term terdapat di dalam suatu dokumen). Perlu diketahui, bahwa terms yang jarang muncul dalam suatu koleksi sangat bernilai dari sisi informasi, tetapi koefisien Jaccard tidak mempertimbangkan hal ini. Jadi kita butuh cara lain untuk menormalisasikannya.

Entropy

Entropy mengukur ketidakpastian suatu variabel acak. Istilah ini pertama kali saya kenal di mata pelajaran kimia. Misal kita punya uang logam, jika kita lempar kita tidak memiliki kepastian apakah yang diperoleh gambar atau angka. Bagaimana dengan dadu? Tentu saja memiliki ketidak pastian, bahkan melebihi ketidakpastian dari uang logam yang dilempar. Masalahnya jika dadu yang dilempar memiliki ketidakpastian yang lebih tinggi dari uang logam yang dilempar, berapa besar? Nah kita akan coba bahas dengan konsep entropy. Manfaatnya adalah, konsep ini diterapkan untuk pembuatan pohon keputusan (decision tree).

Rumus Entropy

Entropy menggunakan konsep probabilitas dalam menentukan besar entropy suatu kejadian. Misal probabilitas uang yang normal adalah ½ untuk gambar dan ½ untuk angka, sementara untuk dadu tiap angka memiliki peluang yang sama yaitu 1/6 dengan anggapan dadunya normal (fair). Rumus entropy adalah sebagai berikut:

Berapakah entropy fair coin?

Masukan saja rumus di atas, maka diperoleh

H(x)=-( 0.5 * log(0.5) + 0.5 * log(0.5)) = 1.

Oiya, logaritmic yang digunakan adalah basis 2 (bukan sepuluh). Nah bagaimana jika coinnya tidak normal, misal peluang muncul gambar = 0.75 dan angka =0.25? Jawabannya adalah dengan rumusan di atas juga,

H(x) = – (0.75*log(0.75)+0.25*log(0.25)) = -(-0.3112-0.5)=0.8112.

Berapakah entropy fair dice (dadu normal)?

Entropy ini akan digunakan untuk menentukan percabangan pohon keputusan. Misalnya ada data dengan atribut usia, pelajar/tidak, income, dan credit rating yang menentukan seseorang membeli barang. Pertama-tama dihitung entropy atribut-atribut itu untuk mencari information gained berdasarkan entropy itu, jadi logikanya makin rendah entropy-nya maka makin kuat atribut itu menjadi akar.