Saya ingin memprediksi beberapa nilai dan saya mencoba untuk mendapatkan beberapa prediksi yang mengoptimalkan antara serendah mungkin, tetapi masih lebih besar dari
Saya pikir regresi linier sederhana harus baik-baik saja. Jadi saya agak tahu bagaimana menerapkan ini secara manual, tapi saya kira saya bukan yang pertama dengan masalah seperti ini. Apakah ada paket / pustaka (lebih disukai python) di luar sana melakukan apa yang ingin saya lakukan? Apa kata kunci yang perlu saya cari?
Bagaimana jika saya tahu fungsi mana Y (x)> Y_0 (x) . Apa cara terbaik untuk menerapkan pembatasan ini?
machine-learning
logistic-regression
asPlankBridge
sumber
sumber
Jawaban:
Jika saya mengerti Anda dengan benar, Anda ingin berbuat salah di sisi perkiraan terlalu tinggi. Jika demikian, Anda memerlukan fungsi biaya asimetris yang sesuai. Satu kandidat sederhana adalah untuk mengubah kerugian kuadrat:
di mana adalah parameter yang dapat Anda gunakan untuk menukar penalti perkiraan terlalu rendah terhadap perkiraan terlalu tinggi. Nilai positif dari menghukum penilaian berlebihan, jadi Anda ingin mengatur negative. Dalam python ini terlihat seperti−1<α<1 α α
def loss(x, a): return x**2 * (numpy.sign(x) + a)**2
Selanjutnya mari kita menghasilkan beberapa data:
Akhirnya, kami akan melakukan regresi kami di
tensorflow
, pustaka pembelajaran mesin dari Google yang mendukung diferensiasi otomatis (membuat optimasi berbasis gradien dari masalah seperti itu lebih mudah). Saya akan menggunakan contoh ini sebagai titik awal.cost
adalah kesalahan kuadrat biasa, sedangkanacost
fungsi kerugian asimetris tersebut di atas.Jika Anda menggunakan
cost
Anda dapatkanJika Anda menggunakan
acost
Anda dapatkanacost
jelas berusaha untuk tidak meremehkan. Saya tidak memeriksa konvergensi, tetapi Anda mendapatkan ide.sumber
acost
fungsi. Apakah penting Anda menghitungy_model-Y
dua kali?Pilih fungsi kerugian asimetris. Salah satu opsi adalah regresi kuantil (linier tetapi dengan kemiringan berbeda untuk kesalahan positif dan negatif).
sumber