Bagikan melalui


Himpunan Data Pelatihan dan Pengujian

Berlaku untuk: SQL Server 2019 dan Analysis Services Azure Analysis Services Fabric/Power BI Premium sebelumnya

Penting

Penambangan data tidak digunakan lagi di SQL Server 2017 Analysis Services dan sekarang dihentikan di SQL Server 2022 Analysis Services. Dokumentasi tidak diperbarui untuk fitur yang tidak digunakan lagi dan dihentikan. Untuk mempelajari selengkapnya, lihat Kompatibilitas mundur Analysis Services.

Memisahkan data ke dalam set pelatihan dan pengujian adalah bagian penting dari mengevaluasi model penggalian data. Biasanya, saat Anda memisahkan himpunan data ke dalam set pelatihan dan set pengujian, sebagian besar data digunakan untuk pelatihan, dan bagian data yang lebih kecil digunakan untuk pengujian. SQL Server Analysis Services sampel data secara acak untuk membantu memastikan bahwa set pengujian dan pelatihan serupa. Dengan menggunakan data serupa untuk pelatihan dan pengujian, Anda dapat meminimalkan efek perbedaan data dan lebih memahami karakteristik model.

Setelah model diproses dengan menggunakan set pelatihan, Anda menguji model dengan membuat prediksi terhadap set pengujian. Karena data dalam set pengujian sudah berisi nilai yang diketahui untuk atribut yang ingin Anda prediksi, mudah untuk menentukan apakah tebakan model sudah benar.

Membuat Set Pengujian dan Pelatihan untuk Struktur Penggalian Data

Pada SQL Server 2017, Anda memisahkan himpunan data asli pada tingkat struktur penambangan. Informasi tentang ukuran himpunan data pelatihan dan pengujian, dan baris mana yang termasuk dalam set mana, disimpan dengan struktur, dan semua model yang didasarkan pada struktur tersebut dapat menggunakan set untuk pelatihan dan pengujian.

Anda dapat menentukan himpunan data pengujian pada struktur penambangan dengan cara berikut:

  • Menggunakan Wizard Penggalian Data untuk membagi struktur penambangan saat Anda membuatnya.

  • Memodifikasi properti struktur di tab Struktur Penambangan dari Designer Penggalian Data.

  • Membuat dan memodifikasi struktur secara terprogram dengan menggunakan Analysis Management Objects (AMO) atau XML Data Definition Language (DDL).

Menggunakan Wizard Penggalian Data untuk Membagi Struktur Penambangan

Secara default, setelah Anda menentukan sumber data untuk struktur penambangan, Data Mining Wizard akan membagi data menjadi dua set: satu dengan 70 persen data sumber, untuk melatih model, dan satu dengan 30 persen data sumber, untuk menguji model. Default ini dipilih karena rasio 70-30 sering digunakan dalam penggalian data, tetapi dengan SQL Server Analysis Services Anda dapat mengubah rasio ini agar sesuai dengan kebutuhan Anda.

Anda juga dapat mengonfigurasi wizard untuk mengatur jumlah maksimum kasus pelatihan, atau Anda dapat menggabungkan batas untuk memungkinkan persentase maksimum kasus hingga jumlah maksimum kasus yang ditentukan. Saat Anda menentukan persentase maksimum kasus dan jumlah maksimum kasus, SQL Server Analysis Services menggunakan yang lebih kecil dari dua batas sebagai ukuran set pengujian. Misalnya, jika Anda menentukan 30 persen holdout untuk kasus pengujian, dan jumlah maksimum kasus pengujian sebagai 1000, ukuran set pengujian tidak akan pernah melebihi 1000 kasus. Ini dapat berguna jika Anda ingin memastikan bahwa ukuran set pengujian Anda tetap konsisten bahkan jika lebih banyak data pelatihan ditambahkan ke model.

Jika Anda menggunakan tampilan sumber data yang sama untuk struktur penambangan yang berbeda, dan ingin memastikan bahwa data dibagi kira-kira dengan cara yang sama untuk semua struktur penambangan dan modelnya, Anda harus menentukan benih yang digunakan untuk menginisialisasi pengambilan sampel acak. Saat Anda menentukan nilai untuk HoldoutSeed, SQL Server Analysis Services akan menggunakan nilai tersebut untuk mulai mengambil sampel. Jika tidak, pengambilan sampel menggunakan algoritma hashing pada nama struktur penambangan untuk membuat nilai benih.

Catatan

Jika Anda membuat salinan struktur penambangan dengan menggunakan pernyataan EKSPOR dan IMPOR , struktur penambangan baru akan memiliki himpunan data pelatihan dan pengujian yang sama, karena proses ekspor membuat ID baru tetapi menggunakan nama yang sama. Namun, jika dua struktur penambangan menggunakan sumber data yang mendasar yang sama tetapi memiliki nama yang berbeda, set yang dibuat untuk setiap struktur penambangan akan berbeda.

Memodifikasi Properti Struktur untuk Membuat Himpunan Data Pengujian

Jika Anda membuat dan memproses struktur penambangan, dan kemudian memutuskan bahwa Anda ingin menyisihkan himpunan data pengujian, Anda dapat memodifikasi properti struktur penambangan. Untuk mengubah cara data dipartisi, edit properti berikut:

Properti Deskripsi
HoldoutMaxCases Menentukan jumlah maksimum kasus yang akan disertakan dalam set pengujian.
HoldoutMaxPercent Menentukan jumlah kasus yang akan disertakan dalam kumpulan pengujian sebagai persentase himpunan data lengkap. Untuk tidak memiliki himpunan data, Anda akan menentukan 0.
HoldoutSeed Menentukan nilai bilangan bulat yang akan digunakan sebagai benih saat memilih data secara acak untuk partisi. Nilai ini tidak memengaruhi jumlah kasus dalam set pelatihan; sebaliknya, ia memastikan bahwa partisi dapat diulang.

Jika Anda menambahkan atau mengubah himpunan data pengujian ke struktur yang ada, Anda harus memproses ulang struktur dan semua model terkait. Selain itu, karena membalah data sumber menyebabkan model dilatih pada subset data yang berbeda, Anda mungkin melihat hasil yang berbeda dari model Anda.

Menentukan Holdout Secara Terprogram

Anda dapat menentukan himpunan data pengujian dan pelatihan pada struktur penambangan dengan menggunakan pernyataan DMX, AMO, atau XML DDL. Pernyataan ALTER MINING STRUCTURE tidak mendukung penggunaan parameter holdout.

  • DMX Dalam bahasa Ekstensi Penggalian Data (DMX), pernyataan CREATE MINING STRUCTURE telah diperluas untuk menyertakan klausul WITH HOLDOUT..

  • ASSL Anda dapat membuat struktur penambangan baru, atau menambahkan himpunan data pengujian ke struktur penambangan yang ada, dengan menggunakan SQL Server Analysis Services Scripting Language (ASSL)..

  • AMO Anda juga dapat melihat dan memodifikasi himpunan data holdout dengan menggunakan AMO..

Anda dapat melihat informasi tentang himpunan data holdout dalam struktur penambangan yang ada dengan mengkueri kumpulan baris skema penggalian data. Anda dapat melakukan ini dengan melakukan panggilan DISCOVER ROWSET, atau Anda bisa menggunakan kueri DMX.

Mengambil Informasi tentang Data Holdout

Secara default, semua informasi tentang pelatihan dan himpunan data pengujian di-cache, sehingga Anda dapat menggunakan data yang ada untuk melatih lalu menguji model baru. Anda juga dapat menentukan filter untuk diterapkan ke data holdout yang di-cache sehingga Anda dapat mengevaluasi model pada subset data.

Cara kasus dibagi menjadi pelatihan dan pengujian himpunan data tergantung pada cara Anda mengonfigurasi holdout, dan data yang Anda berikan. Jika Anda ingin menentukan jumlah kasus yang digunakan untuk pelatihan atau untuk pengujian, atau jika Anda ingin menemukan detail tambahan tentang kasus yang disertakan dalam set pelatihan dan pengujian, Anda bisa mengkueri struktur model dengan membuat kueri DMX. Misalnya, kueri berikut mengembalikan kasus yang digunakan dalam set pelatihan model.

SELECT * from <structure>.CASES WHERE IsTrainingCase()  

Untuk hanya mengambil kasus pengujian, dan juga memfilter kasus pengujian pada salah satu kolom dalam struktur penambangan, gunakan sintaks berikut:

SELECT * from <structure>.CASES WHERE IsTestCase() AND <structure column name> = '<value>'  

Batasan Penggunaan Data Holdout

  • Untuk menggunakan holdout, MiningStructureCacheMode properti struktur penambangan harus diatur ke nilai default, KeepTrainingCases. Jika Anda mengubah properti CacheMode menjadi ClearAfterProcessing, lalu memproses ulang struktur penambangan, partisi akan hilang.

  • Anda tidak dapat menghapus data dari model rangkaian waktu; oleh karena itu, Anda tidak dapat memisahkan data sumber ke dalam set pelatihan dan pengujian. Jika Anda mulai membuat struktur dan model penambangan dan memilih algoritma Microsoft Time Series, opsi untuk membuat himpunan data holdout dinonaktifkan. Penggunaan data holdout juga dinonaktifkan jika struktur penambangan berisi kolom KEY TIME pada tingkat tabel kasus atau berlapis.

  • Dimungkinkan untuk secara tidak sengaja mengonfigurasi himpunan data holdout sehingga himpunan data lengkap digunakan untuk pengujian, dan tidak ada data yang tersisa untuk pelatihan. Namun, jika Anda melakukannya, SQL Server Analysis Services akan menimbulkan kesalahan sehingga Anda dapat memperbaiki masalah. SQL Server Analysis Services juga memperingatkan Anda ketika struktur diproses jika lebih dari 50 persen data telah disimpan untuk pengujian.

  • Dalam kebanyakan kasus, nilai holdout default 30 memberikan keseimbangan yang baik antara data pelatihan dan pengujian. Tidak ada cara sederhana untuk menentukan seberapa besar himpunan data harus memberikan pelatihan yang memadai, atau seberapa jarang set pelatihan dan masih menghindari overfitting. Namun, setelah membuat model, Anda dapat menggunakan validasi silang untuk menilai himpunan data sehubungan dengan model tertentu.

  • Selain properti yang tercantum dalam tabel sebelumnya, properti baca-saja, HoldoutActualSize, disediakan di AMO dan XML DDL. Namun, karena ukuran partisi yang sebenarnya tidak dapat ditentukan secara akurat sampai setelah struktur diproses, Anda harus memeriksa apakah model telah diproses sebelum Anda mengambil nilai properti HoldoutActualSize .

Lihat juga

Alat Penggalian Data
Konsep Penggalian Data
Solusi Penggalian Data
Pengujian dan Validasi (Penggalian Data)