Auto-Clustering dengan Evolutionary Algorithms

Jika pada postingan yang lalu dibahas clustering dengan jumlah kluster yang sudah ditetapkan dari awal, kali ini kita akan membahas clustering dengan jumlah kluster yang optimal. Optimal di sini masih menjadi perdebatan, terutama dalam menentukan kedekatan (similarity) antar anggota kluster. Makin tinggi nilai similarity antar elemen dalam kluster yang sama dan makin rendah dengan kluster yang berbeda, makin optimal proses clustering yang dilakukan. Banyak metode yang dapat digunakan untuk proses klusterisasi antara lain: k-means, FCM, DBSCAN, OPTICS, CLARANS, dan lain-lain. Tetapi untuk auto-clustering diperlukan iterasi untuk mencari titik pusat dan jumlah kluster terbaik. Salah satu situs yang cukup baik untuk menjadi rujukan klusterisasi adalah dari yarzip.com dengan metode evolutionarinya (genetic algorithms, particle swarm optimisation, dan differential evolution).

Dengan menggunakan data dari landuse optimisation, algoritma dari situs di atas dapat diterapkan. Misalnya saya akan mengkluster penggunaan lahan pemukiman. Dengan menggunakan Matlab 2013 hasil runningnya dapat dilihat berikut ini.

Iklan

Konversi Mat-File ke Shapefile

Kalau di postingan sebelumnya shapefile yang berisi data spasial dari GIS tools (ArcGIS, ArcView, dll) sudah berhasil diolah clustering-nya, kemudian kita akan membuat pusat cluster di GIS, mau tidak mau kita membutuhkan sarana konversi dari Matlab ke GIS tool, di sini akan dicontohkan menggunakan ArcGIS. Buka lagi Matlab yang lalu. Fungsi Matlab yang diperlukan untuk menyimpan mat menjadi shapefile adalah “shapewrite”. Di sini agak sulit dibanding “shaperead” karena kita diminta menyiapkan wadah sebagai format untuk data spasialnya, termasuk proyeksi-proyeksi yang diperlukan agar bisa terbuka dengan baik di ArcGIS. Cara termudah membuat wadah adalah lewat ArcGIS.

Di sini kita siapkan shapefile untuk tempat mat yang akan diekspor. Jangan lupa gunakan proyeksi koordinat, lihat postingan sebelumnya tentang problematikan projection. Jika sudah kita kembali ke Command Window Matlab dan bersiap melakukan konversi dari Matlab ke ArcGIS. Sebelumnya panggil dulu center yang akan dipindahkan ke ArcGIS.

Perhatikan dua koordinat center yang berasal dari file “comm_center.dat” hasil clustering. Kemudian kita siapkan variabel wadah dari ArcGIS yang baru saja kita buat shapefilenya. Saya memberinya nama “center_commercial.shp”.

revisi_blog

Di sini shaperead memanggil wadah tempat menyimpan yang bernama “center_commercial.shp”. Dilanjutkan dengan men-transpose agar berformat baris. Jumlah titik bermaksud untuk persiapan looping memasukan data dari mat ke tiap-tiap koordinat.

revisi_blog2

Pastikan tidak ada pesan kesalahan yang terjadi. Fungsi shapewrite membutuhkan wadah, dalam hal ini variabel bernama “data” yang sudah terisi data baru, serta nama shapefile yang sama dengan wadahnya. Kembali kita ke ArcGIS untuk melihat center yang sudah dalam format shapefile bernama “center_commercial.shp” itu.

Perhatikan dua titik center itu sudah muncul di peta bekasi, dan karena proyeksi mengikuti wadahnya, maka tepat berada di lokasi yang di tuju di dalam wilayah bekasi. Kalo pengen membuat jangakauannya, bisa dengan teknik euclidean distance seperti postingan sebelumnya. Keren ya, Matlab bisa ke mana aja penggunaannya.

 Update: 25 Desember 2017

Jika ingin menampilkan koordinat dengan Google Map API bisa lihat post berikutnya.

Kluster Data Spasial dari ArcGIS/ArcView dengan Fuzzy C-Means (FCM)

Data spasial adalah data yang berupa koordinat geografis suatu elemen dalam peta. Data itu bisa berupa titik maupun polygon. Di sini kita akan mencoba data spasial berupa titik-titik lokasi berasal dari ArcGIS atau GIS tool lainnya sesuai dengan proyeksi yang digunakan. Apa itu proyeksi? Panjang ceritanya, sebaiknya baca buku tentang geographic information system (GIS). Untuk praktek dapat kita buat spasial data yang sudah ada dalam format shapefile (berekstensi *.shp). Untuk memudahkan proses operasi, siapkan direktori kerja di lokasi dimana shapefile itu berada.

Anda harus memiliki fungsi “shaperead” di Matlab, biasanya sudah include di dalamnya untuk versi-versi terbaru. Cara mengeceknya dengan mengetik “help shaperead” di command window, kalau tidak ada, Matlab akan memberi pesan bahwa fungsi shaperead tidak ada. Berikutnya kita akan mengkonversi data ini ke dalam data berekstensi “dat”.

Ok, pastikan file “commercial.dat” yang merupakan konversi workspace ke file “dat” berhasil tersimpan. Mengapa langkah ini diperlukan? Karena toolbox FCM yang kita gunakan berikut ini menggunakan data berekstensi dat ini. Sebenarnya jika menggunakan fungsi fcm dari command window tidak perlu mengkonversi ke dat file, bisa langsung dari workspace, tapi untuk pemula, lebih mudah menggunakan toolbox. Ketik “findcluster” di command window sehingga muncul jendela berikut ini.

Kebetulan toolbox tersedia dalam dua dimensi, sehingga cocok dengan data spasial. Untuk yang tiga dimensi sepertinya agak ribet dan harus mengatur sumbu x,y, z. Atau untuk dimensi >2 sebaiknya menggunakan fungsi dari command window. Ketik “load data” untuk memanggil data, pilih “commercial.dat” yang telah dibuat sebelumnya.

Perhatikan tiga titik hitam yang merupakan titik pusat tiga kluster yang akan kita bentuk. Anda bisa mengganti jumlah kluster, misalnya hanya dua saja dan tekan “start” kembali untuk mencari pusat kluster yang baru. Untuk menyimpan pusat kluster, dapat Anda lakukan dengan menekan “Save Center” lalu simpan dalam bentuk “dat”. Berikutnya tiga center ini akan coba kita buka dengan di ArcGIS di postingan yang akan datang, selamat mencoba. Lanjut baca : Konversi Mat-File ke Shapefile

Google Street View masuk ke dalam Kampus

Selama ini kita mengenal google street view sebagai GIS tool yang merekam gambar di sekitar jalan yang biasanya jalan raya. Ternyata google tidak hanya jalan raya yang direkam,  lorong-lorong jalan di kampusku, yg motor tidak boleh lewat, pun direkam pula. Google meng-capture dengan kamera yang dibawa oleh seseorang dengan alat foto berupa rangsel yang dilengkapi dengan kamera “mata ikan” yang berupa bola. Ingin lihat lebih jauh bisa masuk ke link ini.

Hehe .. tampak sepeda merah kesayangan saya yang diparkir sembarangan (link google street AIT). Kalau tahu ada google lewat saya pasti keluar, selfie, walau pasti nanti wajahnya di “blur”. Tinggal naik tangga pas di depannya kamar kesayanganku, tempat berkutat dengan coding Matlab dan analisa ArcGIS. Lumayan, bisa jadi kenangan abadi, ha ha.