Scikit-learning (sklearn) adalah pilihan terbaik untuk pembelajaran mesin, dari tiga yang terdaftar. Sementara Pandas dan Statsmodels memang mengandung beberapa algoritma pembelajaran prediktif, mereka tersembunyi / belum siap-produksi. Seringkali, karena penulis akan mengerjakan proyek yang berbeda, perpustakaannya gratis. Sebagai contoh, baru-baru ini kerangka data Pandas diintegrasikan ke dalam Statsmodels. Hubungan antara sklearn dan Pandas belum ada (belum).
Tentukan fungsionalitas. Mereka semua lari. Jika yang Anda maksud adalah apa yang paling berguna, maka itu tergantung pada aplikasi Anda. Saya pasti akan memberikan Pandas +1 di sini, karena telah menambahkan struktur data baru yang hebat ke Python (dataframe). Panda juga mungkin memiliki API terbaik.
Mereka semua didukung secara aktif, meskipun saya akan mengatakan Pandas memiliki basis kode terbaik. Sklearn dan Panda lebih aktif daripada Statsmodels.
Pilihan yang jelas adalah Sklearn. Mudah dan jelas cara melakukannya.
from sklearn.linear_models import LogisticRegression as LR
logr = LR()
logr.fit( X, Y )
results = logr.predict( test_data)
linear_model
(tunggal) dan tidaklinear_models
.Saya ingin memenuhi syarat dan mengklarifikasi sedikit jawaban yang diterima.
Tiga paket saling melengkapi karena mereka mencakup bidang yang berbeda, memiliki tujuan utama yang berbeda, atau menekankan bidang yang berbeda dalam pembelajaran mesin / statistik.
statsmodel memiliki panda sebagai dependensi, panda secara opsional menggunakan statsmodel untuk beberapa statistik. statsmodels digunakan
patsy
untuk menyediakan antarmuka rumus yang mirip dengan model sebagai R.Ada beberapa model yang tumpang tindih antara scikit-learn dan statsmodels, tetapi dengan tujuan yang berbeda. lihat misalnya Dua Budaya: statistik vs. pembelajaran mesin?
lagi tentang statsmodels
statsmodels memiliki aktivitas pengembangan terendah dan siklus rilis terpanjang dari ketiganya. statsmodels memiliki banyak kontributor tetapi sayangnya hanya dua "pengelola" (saya salah satunya.)
Inti dari statsmodels adalah "siap produksi": model linier, model linier kuat, model linier umum dan model diskrit telah ada selama beberapa tahun dan diverifikasi terhadap Stata dan R. statsmodels juga memiliki bagian analisis deret waktu yang mencakup AR, ARMA dan Regresi VAR (vector autoregressive), yang tidak tersedia dalam paket python lainnya.
Beberapa contoh untuk menunjukkan beberapa perbedaan spesifik antara pendekatan pembelajaran mesin dalam scikit-belajar dan pendekatan statistik dan ekonometrik dalam statsmodels:
Regresi linier sederhana
OLS
,, memiliki sejumlah besar analisis pasca estimasi dengan http://statsmodels.sourceforge.net/devel/generated/statsmodels.regress.linear_model.OLSResults.html termasuk tes pada parameter, tindakan outlier dan tes spesifikasi http: / /statsmodels.sourceforge.net/devel/stats.html#residual-diagnostics-and-specification-testsRegresi Logistik dapat dilakukan dalam statsmodels baik sebagai
Logit
model dalam diskrit atau sebagai keluarga dalam model linier umum (GLM
). http://statsmodels.sourceforge.net/devel/glm.html#module-referenceGLM
termasuk keluarga biasa, model diskrit berisi selainLogit
jugaProbit
, multinomial dan regresi jumlah.Logit
Penggunaannya
Logit
sesederhana http://statsmodels.sourceforge.net/devel/examples/generated/example_discrete.html inisumber