kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 DavideChicco.it
DavideChicco.it
Question

Matlab, bagaimana cara menghitung AUC (Area Under Curve)?

Saya memiliki file data.txt dengan dua kolom dan N baris, seperti ini:

0.009943796 0.4667975
0.009795735 0.46777886
0.009623984 0.46897832
0.009564759 0.46941447
0.009546991 0.4703958
0.009428543 0.47224948
0.009375241 0.47475737
0.009298249 0.4767201
[...]

Setiap pasangan nilai dalam file tersebut berhubungan dengan satu koordinat titik (x,y). Jika diplot, titik-titik ini akan menghasilkan sebuah kurva. Saya ingin menghitung area di bawah kurva (AUC) dari kurva ini.

Jadi saya memuat datanya:

data = load("data.txt");
X = data(:,1);
Y = data(:,2);

Jadi, X berisi semua koordinat x dari titik-titik, dan Y semua koordinat y.

Bagaimana cara menghitung luas area di bawah kurva (AUC)?

7 2011-12-28T19:43:59+00:00 3
 Matt
Matt
Pertanyaan edit 6 April 2016 в 1:22
Pemrograman
matlab
curve
octave
area
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
Jason S
Jason S
28 Desember 2011 в 7:49
2011-12-28T19:49:59+00:00
Lebih
Sumber
Sunting
#15067003

Cara termudah adalah dengan menggunakan fungsi aturan trapesium trapz.

Jika data Anda diketahui mulus, Anda dapat mencoba menggunakan aturan Simpson, tetapi tidak ada yang built-in pada MATLAB untuk mengintegrasikan data numerik melalui aturan Simpson. (Saya tidak yakin bagaimana cara menggunakannya untuk data x/y di mana x tidak bertambah secara konstan)

4
0
 Simon
Simon
1 Maret 2012 в 6:46
2012-03-01T18:46:55+00:00
Lebih
Sumber
Sunting
#15067017

tambahkan saja AUC = trapz(X,Y) ke program Anda dan Anda akan mendapatkan area di bawah kurva

4
0
 Oli
Oli
2 Januari 2012 в 1:27
2012-01-02T13:27:15+00:00
Lebih
Sumber
Sunting
#15067010

Anda bisa melakukan hal seperti itu:

AUC = sum((Y(1:end-1)+Y(2:end))/2.*...
  (X(2:end)-X(1:end-1)));
1
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Daniel Gogov
Terdaftar 6 hari yang lalu
2
工藤 芳則
Terdaftar 1 minggu yang lalu
3
Ирина Беляева
Terdaftar 2 minggu yang lalu
4
Darya Arsenyeva
Terdaftar 2 minggu yang lalu
5
anyta nuam-nuam (LapuSiK)
Terdaftar 2 minggu yang lalu
ID
JA
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi