Rumah  >  Artikel  >  Peranti teknologi  >  Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

王林
王林ke hadapan
2023-04-12 19:28:041080semak imbas

Algoritma penyebaran label ialah algoritma pembelajaran mesin separa diselia yang memberikan label kepada titik data yang tidak dilabel sebelum ini. Untuk menggunakan algoritma ini dalam pembelajaran mesin, hanya sebahagian kecil daripada contoh yang mempunyai label atau klasifikasi. Label ini disebarkan kepada titik data tidak berlabel semasa proses pemodelan, pemasangan dan ramalan algoritma.

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading


LabelPropagation

LabelPropagation ialah algoritma pantas untuk mencari komuniti dalam graf. Ia hanya menggunakan struktur rangkaian sebagai panduan untuk mengesan sambungan ini dan tidak memerlukan fungsi objektif yang telah ditetapkan atau maklumat priori tentang populasi. Penyebaran teg dicapai dengan menyebarkan teg dalam rangkaian dan membentuk sambungan berdasarkan proses penyebaran teg.

Teg tertutup biasanya diberikan teg yang sama. Satu label boleh mendominasi dalam kumpulan nod yang bersambung padat, tetapi akan menghadapi masalah di kawasan yang jarang bersambung. Label akan dihadkan kepada kumpulan nod yang bersambung rapat, dan apabila algoritma selesai, nod yang berakhir dengan label yang sama boleh dianggap sebagai sebahagian daripada sambungan yang sama. Algoritma menggunakan teori graf seperti berikut:-

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Algoritma LabelPropagation berfungsi dengan cara berikut:-

  • Setiap nod menggunakan Tag unik dimulakan .
  • Teg ini tersebar di seluruh internet.
  • Dalam setiap lelaran penyebaran, setiap nod mengemas kini labelnya kepada label yang mempunyai bilangan maksimum jiran.
  • Algoritma penyebaran label mencapai penumpuan apabila setiap nod mempunyai majoriti label jirannya.
  • Algoritma penyebaran label berhenti jika penumpuan atau bilangan lelaran maksimum yang ditentukan pengguna dicapai.

Untuk menunjukkan cara algoritma LabelPropagation berfungsi, kami menggunakan set data Pima Indians Semasa mencipta program, saya mengimport perpustakaan yang diperlukan untuk menjalankannya

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

<.>Salin salinan data dan gunakan lajur label sebagai sasaran latihan

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Gunakan visualisasi matplotlib:

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Gunakan rawak Penjana nombor merawak 70% daripada label dalam set data. Kemudian label rawak diberikan -1:-

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Selepas pramemproses data, tentukan pembolehubah bersandar dan bebas, iaitu y dan X masing-masing. Pembolehubah y ialah lajur terakhir dan 🎜>

Kadar ketepatan mencarinya ialah 76.9%. Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Mari kita lihat algoritma lain, LabelSpreading. Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

LabelSpreading

LabelSpreading juga merupakan kaedah pembelajaran separa penyeliaan yang popular. Buat graf yang menghubungkan contoh dalam set data latihan dan sebarkan label yang diketahui melalui tepi graf untuk melabelkan contoh yang tidak berlabel.

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreadingLabelSpreading telah dicadangkan oleh Dengyong Zhou et al dalam kertas kerja 2003 mereka bertajuk "Belajar dengan Konsistensi Tempatan dan Global". Kunci kepada pembelajaran separa penyeliaan ialah andaian a priori ketekalan, yang bermaksud: titik berdekatan berkemungkinan mempunyai label yang sama, dan titik pada struktur yang sama (sering dipanggil manifold kelompok) berkemungkinan besar mempunyai label yang sama.

LabelSpreading boleh dianggap sebagai bentuk biasa LabelPropagation. Dalam teori graf, matriks Laplacian ialah perwakilan matriks graf Formula matriks Laplacian ialah:

L ialah matriks Laplacian, D ialah matriks darjah, dan A ialah matriks bersebelahan.

Berikut ialah contoh mudah pelabelan graf tidak terarah dan hasil matriks Laplaciannya

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Artikel ini akan menggunakan set data sonar untuk menunjukkan cara untuk gunakan fungsi LabelSpreading sklearn.

Terdapat lebih banyak perpustakaan di sini daripada di atas, jadi penerangan ringkas:

  • Numpy melakukan pengiraan berangka dan mencipta tatasusunan Numpy
  • Panda memproses data
  • Sklearn melaksanakan operasi pembelajaran mesin
  • Matplotlib dan seaborn untuk menggambarkan data dan menyediakan maklumat statistik untuk data visual
  • Amaran, digunakan untuk mengabaikan amaran yang muncul semasa pelaksanaan program

Selepas import selesai, gunakan panda untuk membaca set data:

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Saya mencipta peta haba menggunakan seaborn:-

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Mula-mula lakukan prapemprosesan yang mudah, padamkan lajur yang sangat berkorelasi, sekali gus mengurangkan bilangan lajur daripada 61 kepada 58:

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Kemudian kocok data dan baris semula, supaya ramalan secara amnya lebih tepat dalam set data yang dikocok, buat salinan set data dan tentukan y_orig sebagai sasaran latihan:

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Gunakan matplotlib untuk memplot titik data 2D Scatter Plot :-

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Rawak 60% daripada label dalam set data menggunakan penjana nombor rawak. Kemudian label rawak diberikan -1:-

Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Selepas pramemproses data, tentukan pembolehubah bersandar dan bebas, iaitu y dan X masing-masing. Pembolehubah y ialah lajur terakhir dan

Menggunakan kaedah ini, kita boleh mencapai ketepatan 87.98%:-Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

Perbandingan mudah

1 , alpha dipanggil pekali pengapit, yang merujuk kepada jumlah relatif penggunaan maklumat jirannya dan bukannya label awalnya Jika 0, ia bermakna mengekalkan maklumat label awal maklumat awal; set alpha=0.2 , bermakna 80% daripada maklumat label asal sentiasa dikekalkan Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading

2. Penyebaran label menggunakan matriks kesamaan asal yang dibina daripada penyebaran label meminimumkan fungsi keteraturan dan lebih teguh kepada hingar , berulang pada versi graf asal yang diubah suai dan menormalkan pemberat tepi dengan mengira matriks Laplacian yang dinormalkan.

3 Pada masa yang sama, LabelSpreading menduduki banyak CPU, dan penghunian memori fizikal bukanlah buruk; masalah dengan data latitud tinggi.

Atas ialah kandungan terperinci Dua algoritma penyebaran label separa diselia dalam sklearn: LabelPropagation dan LabelSpreading. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam