Bagaimana menyiapkan interaksi variabel kategorikal dalam scikit-learning?


9

Apa cara terbaik untuk mempersiapkan interaksi fitur-fitur kategorikal sebelum disesuaikan dengan scikit-learn?

Dengan statsmodelssaya bisa dengan mudah mengatakan dalam gaya R smf.ols(formula = 'depvar ~ C(var1)*C(var2)', data=df).fit()(sama di Stata dengan regress depvar i.var1##i.var2).

Bisakah sklearn.preprocessing.PolynomialFeatures(dalam v0.15, saat ini dev) digunakan dengan variabel kategori?

Jawaban:


8

Memang Anda bisa menggunakan Patsy dengan scikit-belajar untuk mendapatkan hasil yang sama dengan yang Anda dapatkan dengan R, atau dengan notasi rumus dalam model statistik. Lihat kode di bawah ini:

from patsy import dmatrices

# create dummy variables, and their interactions
y, X = dmatrices('depvar ~ C(var1)*C(var2)', df, return_type="dataframe")
# flatten y into a 1-D array so scikit-learn can understand it
y = np.ravel(y)

Anda sekarang dapat menggunakan model apa pun yang diimplementasikan dalam scikit-belajar dengan notasi biasa memiliki X sebagai variabel independen, dan y sebagai variabel dependen.


bagaimana jika kita ingin memiliki LHS kosong? ( ~var1*var2baik-baik saja dalam R untuk membangun matriks RHS)
MichaelChirico

(Anda harus menyebutkan dmatrix)
MichaelChirico

8

Gunakan Patsy .

Patsy adalah salah satu perpustakaan Python favorit saya: ia melakukan satu hal, dan hanya satu hal, benar-benar sangat baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.