Pelatihan batch mini dari pengklasifikasi scikit-learn tempat saya menyediakan batch mini

Saya memiliki kumpulan data yang sangat besar yang tidak dapat dimuat ke dalam memori.

Saya ingin menggunakan kumpulan data ini sebagai kumpulan pelatihan pengklasifikasi scikit-learn - misalnya LogisticRegression.

Apakah ada kemungkinan untuk melakukan pelatihan batch mini dari pengklasifikasi scikit-learn tempat saya menyediakan batch mini?


person Ulderique Demoitre    schedule 25.10.2017    source sumber


Jawaban (2)


Saya yakin beberapa pengklasifikasi di sklearn memiliki metode partial_fit. Metode ini memungkinkan Anda meneruskan minibatch data ke pengklasifikasi, sehingga langkah penurunan gradien dilakukan untuk setiap minibatch. Anda cukup memuat minibatch dari disk, meneruskannya ke partial_fit, melepaskan minibatch dari memori, dan mengulanginya.

Jika Anda tertarik melakukan ini untuk Regresi Logistik, Anda dapat menggunakan SGDClassifier, yang dapat disetel untuk menggunakan regresi logistik saat loss = 'log'.

Anda cukup meneruskan fitur dan label untuk minibatch Anda ke partial_fit dengan cara yang sama seperti Anda menggunakan fit:

clf.partial_fit(X_minibatch, y_minibatch)

Pembaruan:

Baru-baru ini saya menemukan perpustakaan dask-ml yang akan membuat tugas ini sangat mudah dengan menggabungkan array dask dengan partial_fit. Ada contoh di halaman web tertaut.

person Angus Williams    schedule 25.10.2017
comment
Anda juga dapat memasukkan sebagian instance LogisticRegression - person Robin; 16.01.2020

Lihat strategi penskalaan yang disertakan dalam dokumentasi sklearn: http://scikit-learn.org/stable/modules/scaling_strategies.html

Contoh bagus diberikan di sini: http://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html

person elson serrao    schedule 25.10.2017