Saya memiliki satu set data dan saya ingin membandingkan baris mana yang paling menggambarkannya (polinomial dengan urutan berbeda, eksponensial, atau logaritmik). Saya menggunakan Python dan Numpy dan untuk pemasangan polinom ada fungsi Apakah ada? Atau bagaimana cara menyelesaikannya? Jawaban: Untuk pemasangan y = A + B log x , cukup pas y terhadap (log x ).
Untuk pemasangan y = Ae Bx , ambil logaritma dari kedua sisi beri log y = log A + Bx . Jadi pas (log y ) terhadap x . Perhatikan bahwa pemasangan (log y ) seolah-olah linier akan menekankan nilai-nilai kecil y , menyebabkan penyimpangan besar untuk y besar . Ini karena Ini dapat dikurangi dengan memberikan setiap entri "bobot" sebanding dengan
y .
Perhatikan bahwa Excel, LibreOffice, dan sebagian besar kalkulator ilmiah biasanya menggunakan rumus tanpa bobot (bias) untuk garis regresi / tren eksponensial. Jika Anda ingin hasil Anda kompatibel dengan platform ini, jangan masukkan bobot meskipun itu memberikan hasil yang lebih baik. Sekarang, jika Anda bisa menggunakan Scipy, Anda bisa menggunakan
Untuk y = log A + B x hasilnya sama dengan metode transformasi:
Namun untuk y = Ae Bx , kita bisa mendapatkan kecocokan yang lebih baik karena ia menghitung Δ (log y ) secara langsung.
Tetapi kita perlu memberikan perkiraan inisialisasi sehingga
Anda juga dapat muat satu set data
untuk apa pun yang berfungsi Anda suka menggunakan
Dan jika Anda ingin merencanakan, Anda bisa melakukan:
(Catatan: Saya mengalami beberapa masalah dengan ini jadi biarkan saya menjadi sangat eksplisit sehingga noobs seperti saya bisa mengerti. Katakanlah kita memiliki file data atau sesuatu seperti itu
hasilnya adalah: a = 0.849195983017, b = -1.18101681765, c = 2.24061176543, d = 0.816643894816 Yah saya kira Anda selalu dapat menggunakan:
Sedikit memodifikasi jawaban IanVS :
Ini menghasilkan grafik berikut: Berikut adalah opsi linierisasi pada data sederhana yang menggunakan alat dari scikit belajar . Diberikan
Kode Sesuai dengan data eksponensial
Sesuaikan data log
Detail Langkah Umum
Dengan asumsi data kami mengikuti tren eksponensial, persamaan umum + mungkin: Kita dapat meratakan persamaan kedua (misalnya y = intersep + kemiringan * x) dengan mengambil log : Diberikan persamaan linear + dan parameter regresi, kita dapat menghitung:
Ringkasan Teknik Linearisasi
+ Catatan: fungsi eksponensial linier bekerja paling baik saat noise kecil dan C = 0. Gunakan dengan hati-hati. ++ Catatan: sementara mengubah data x membantu linierisasi data eksponensial , mengubah data y membantu linierisasi data log . Kami menunjukkan fitur Diberikan
Kode Pendekatan 1 - Sesuai dengan data eksponensial
Pendekatan 2 - Model Kustom Sesuaikan data log
Detail
Anda dapat menentukan parameter yang disimpulkan dari objek regressor. Contoh:
Catatan:
Lihat
juga Instal perpustakaan melalui Wolfram memiliki solusi bentuk tertutup untuk memasang eksponensial . Mereka juga memiliki solusi serupa untuk menyesuaikan hukum logaritmik dan kekuasaan . Saya menemukan ini bekerja lebih baik daripada curve_fit scipy's. Berikut ini sebuah contoh:
|