Pertama, izinkan saya mengatakan bahwa saya sedikit keluar dari kedalaman saya di sini, jadi jika pertanyaan ini perlu diutarakan kembali atau ditutup sebagai duplikat, harap beri tahu saya. Mungkin saja saya tidak memiliki kosakata yang tepat untuk mengungkapkan pertanyaan saya.
Saya mengerjakan tugas pemrosesan gambar di mana saya mengidentifikasi fitur-fitur dalam gambar, dan kemudian mengklasifikasikannya berdasarkan sifat-sifatnya, termasuk bentuk, ukuran, kegelapan, dll. Saya cukup berpengalaman dengan bagian pemrosesan gambar ini, tetapi pikirkan Saya dapat meningkatkan metode yang saya gunakan untuk klasifikasi fitur.
Saat ini, saya menetapkan ambang batas untuk setiap parameter yang diukur, dan kemudian mengklasifikasikan fitur berdasarkan beberapa logika sederhana berdasarkan pada ambang mana fitur tersebut telah dilewati. Misalnya (properti dan pengelompokan sebenarnya lebih kompleks, tapi saya mencoba menyederhanakan bagian yang tidak relevan dari proyek saya untuk pertanyaan ini), katakanlah saya mengelompokkan fitur ke dalam grup "Besar dan Gelap," "Besar dan Terang" dan "Kecil". Lalu sebuah fitur akan berada di "Big and Dark" iff (ukuran ()> sizeThreshold) & (darkness ()> darknessThreshold).
Tujuannya adalah agar klasifikasi tersebut sesuai dengan klasifikasi yang dilakukan oleh manusia tingkat ahli, sehingga saya dapat menetapkan ambang batas untuk menghasilkan kecocokan terbaik antara pengelompokan yang dibuat oleh manusia dan komputer pada beberapa set pengujian, dan kemudian berharap bahwa klasifikasi tersebut berfungsi baik dengan data baru.
Ini sudah bekerja dengan cukup baik, tetapi saya melihat satu mode kegagalan tertentu yang saya pikir dapat diperbaiki. Katakanlah fiturdiketahui milik "Besar dan Gelap." Manusia mengklasifikasikannya dengan cara ini karena, meski hanya cukup besar, itu sangat sangat gelap, yang agak membuat kurangnya "kebesaran". Algoritme saya akan gagal mengklasifikasikan fitur ini dengan benar, karena klasifikasi didasarkan pada logika biner yang kaku, dan mengharuskan semua ambang batas dilintasi.
Saya ingin memperbaiki kegagalan ini dengan membuat algoritme saya lebih baik meniru proses yang dipandu manusia, di mana kekurangan dalam satu parameter dapat dikompensasi dengan banyak parameter lainnya. Untuk melakukan ini, saya ingin mengambil masing-masing properti dasar dari fitur saya, dan mengubahnya menjadi semacam skor yang akan menjadi prediktor grup tempat fitur tersebut berada. Saya telah memikirkan banyak cara untuk melakukan ini, tetapi kebanyakan dari mereka adalah ide-ide sementara, berdasarkan latar belakang saya dalam kalkulus vektor dan fisika. Sebagai contoh, saya telah mempertimbangkan memperlakukan setiap fitur sebagai vektor di ruang ND properti fitur, dan menghitung proyeksi setiap fitur di sepanjang vektor tertentu, yang masing-masing akan mengukur sejauh mana fitur berada dalam grup.
Saya yakin ada teknik yang lebih ketat dan lebih mapan untuk melakukan hal semacam ini, tetapi latar belakang saya relatif lemah dalam analisis statistik, jadi saya mencari dorongan ke arah yang benar. Bahkan nama teknik, atau tautan ke buku teks akan sangat membantu.
TL; DR: Teknik apa yang berguna dalam mengklasifikasikan objek berdasarkan sejumlah besar parameter deskriptif?
sumber
Jawaban:
Kedengarannya seperti setiap classifier linear akan melakukan apa yang Anda butuhkan. Misalkan Anda punyaN fitur dan nilai fitur i adalah fi . Kemudian classifier linier akan menghitung skor
Ada banyak pengklasifikasi linear off-the-shelf yang dapat melakukan itu, termasuk SVM, LDA (analisis diskriminan linier), jaringan saraf linier, dan banyak lainnya. Saya akan mulai dengan menjalankan SVM linier karena bekerja dengan baik dalam banyak kasus dan dapat mentolerir data pelatihan yang terbatas. Ada juga banyak paket di banyak lingkungan (seperti Matlab dan R), sehingga Anda dapat dengan mudah mencobanya. Kelemahan dari SVM adalah ia bisa menjadi sangat berat secara komputasional, jadi jika Anda perlu belajar banyak kelas, itu mungkin kurang tepat.
Jika Anda ingin mempertahankan beberapa perilaku ambang yang saat ini Anda miliki, Anda bisa meneruskan nilai fitur melalui sigmoid dengan ambang di lokasi yang tepat. Misalnya untuk suatu fituri saat ini Anda menggunakan ambang batas ti , hitung dulu
Hal lain yang bisa Anda coba adalah menggunakan pengklasifikasi probabilistik seperti Naive Bayes atau TAN. Naif Bayes hampir seperti classifier linier, kecuali itu menghitung
Mengenai terminologi: apa yang Anda sebut 'set tes' biasanya disebut 'set pelatihan' dalam konteks ini, dan apa yang Anda sebut 'data baru' disebut 'set uji'.
Untuk sebuah buku, saya akan membaca "Pengenalan pola" oleh Duda, Hart, dan Bangau. Bab pertama adalah pengantar yang sangat bagus untuk pemula.
sumber