νμ΄νλΌμΈμμ LabelBinarizer
λ° LabelEncoder
λ₯Ό μ¬μ©νλ €κ³ νλ©΄ μ΄ μ€λ₯κ° λ°μν©λλ€.
sklearn/pipeline.pyc in fit_transform(self, X, y, **fit_params)
141 Xt, fit_params = self._pre_transform(X, y, **fit_params)
142 if hasattr(self.steps[-1][-1], 'fit_transform'):
--> 143 return self.steps[-1][-1].fit_transform(Xt, y, **fit_params)
144 else:
145 return self.steps[-1][-1].fit(Xt, y, **fit_params).transform(Xt)
TypeError: fit_transform() takes exactly 2 arguments (3 given)
μ΄λ ν΄λμ€μ fit
λ° transform
μκ·Έλμ² κ° λλΆλΆμ λ€λ₯Έ μΆμ κΈ°μ λ€λ₯΄κ³ λ¨μΌ μΈμλ§ νμ©νκΈ° λλ¬ΈμΈ κ² κ°μ΅λλ€.
μ΄κ²μ κ½€ μ¬μ΄ μμ μ΄λΌκ³ μκ°ν©λλ€(μλͺ
μ def(self, X, y=None)
). κΈ°κΊΌμ΄ ν 리νμ€νΈλ₯Ό λ³΄λΌ μ μμ§λ§ μλͺ
μ λ€λ₯Έ μ΄μ κ° μλμ§ νμΈνκ³ μΆμμ΅λλ€. λ΄κ° μκ°νμ§ λͺ»ν λ°©μμΌλ‘.
λλ λΉμ μ΄ κ·Έκ²μ μμ νλ κ²μ΄ μ³λ€κ³ μκ°ν©λλ€.
2014λ 4μ 26μΌ 19μ 37λΆμ hxu [email protected]μ΄ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
LabelBinarizer λ° LabelEncoderλ₯Ό μ¬μ©νλ €κ³ νλ©΄ μ΄ μ€λ₯κ° λ°μν©λλ€.
κ΄λ‘:fit_transform(self, X, y, *_fit_params)μ sklearn/pipeline.pyc
141ν
142 if hasattr(self.steps[-1][-1], 'fit_transform'):--> 143 return self.steps[-1][-1].fit_transform(Xt, y, *_fit_params)
144 κΈ°ν:
145 return self.steps[-1][-1].fit(Xt, y, *_fit_params).transform(Xt)
TypeError: fit_transform()μ μ νν 2κ°μ μΈμλ₯Ό μ¬μ©ν©λλ€(3κ° μ 곡).μ΄κ²μ ν΄λμ€μ μ ν© λ° λ³ν μλͺ https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/preprocessing/label.py#L85 κ° λλΆλΆμ λ€λ₯Έ μΆμ κΈ°μ λ€λ₯΄κ³
λλ μ΄κ²μ΄ κ½€ μ¬μ΄ μμ μ΄λΌκ³ μκ°ν©λλ€(κ·Έλ₯ μλͺ μ def(self,
X, y=None)) ν 리νμ€νΈλ₯Ό 보λ΄κ³ μΆμ§λ§
μλͺ μ΄ μλλλ‘μΈ λ€λ₯Έ μ΄μ κ° μλμ§ νμΈνμμμ€.
λ΄κ° μκ°νμ§ λͺ»ν κ²μ λλ€.β
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ Gi tHubhttps://github.com/scikit-learn/scikit-learn/issues/3112μμ νμΈνμΈμ.
.
#3113μμ λ μ΄λΈ μΈμ½λ©μ΄ μ€μ λ‘ Pipeline
μνμ§ μκΈ° λλ¬Έμ μ΄ λ¬Έμ λ₯Ό μμ νμ§ μκΈ°λ‘ κ²°μ νμ΅λλ€.
@jnothman , μκ³ μΆμ λλ‘: νμ΄νλΌμΈμμ λ²μ£Όν κΈ°λ₯μ 벑ν°νν΄μΌ νλ κ²½μ° λμ 무μμ ν΄μΌ ν©λκΉ?
νΉμ μ¬λ‘λ₯Ό μ²λ¦¬νκΈ° μν΄ κ³ μ ν Pipeline-like
μ½λ(κΈ°μ‘΄ μ½λμμ μμ)λ₯Ό μμ±νλ κ²μ΄ κ°μ₯ μ’μ΅λλ€.
νμ΄νλΌμΈμμ LabelBinarizerλ₯Ό μ¬μ©νλ λμ μ λλ§μ λ³νκΈ°λ₯Ό ꡬννμ΅λλ€.
class CustomBinarizer(BaseEstimator, TransformerMixin):
def fit(self, X, y=None,**fit_params):
return self
def transform(self, X):
return LabelBinarizer().fit(X).transform(X)
νΈλ¦μνλ κ² κ°μ΅λλ€!
νΈμ§νλ€:
μ΄κ²μ λ λμ μ루μ
μ
λλ€:
https://github.com/scikit-learn/scikit-learn/pull/7375/files#diff -1e175ddb0d84aad0a578d34553f6f9c6
λλ μ΄ νμ΄μ§μμ λ§μ λΆμ μ μΈ λ°μμ΄ μμλ€λ κ²μ μλ€. LabelBinarizer λ° LabelEncoderμ λͺ©μ μ λν΄ μ€λ«λμ μ€ν΄κ° μμλ κ² κ°μ΅λλ€. μ΄λ κΈ°λ₯μ΄ μλλΌ λμμ μν κ²μ λλ€. λΆλͺ ν κ·Έλ€μ λ΄ μλ μ΄μ μ μ€κ³λμμΌλ©° μ΄λ¦μ΄ μλͺ»λμμ΅λλ€.
μ¬μ©μκ° μ€λ«λμ μ΄ λͺ©μ μΌλ‘ CountVectorizer(λλ λ°μ΄ν° νλ μμμ μ¨ κ²½μ° dataframe.to_dict(orient='records')
κ° μλ DictVectorizer)λ₯Ό μ¬μ©ν μ μλ€κ³ μκ°νμ§λ§ μ΅κ·Όμ CategoricalEncoder
(#9151 )λ₯Ό λ§μ€ν°λ‘ κ°μ Έκ° μ μμ§λ§ λ¦΄λ¦¬μ€ μ μ OneHotEncoer λ° μ OrdinalEncoderλ‘ λ‘€λ§λ μ μμ΅λλ€(#10521).
λλ μ΄κ²μ΄ λΆλͺ ν λΆλ§μ κ°μ§ λμ€μ μꡬλ₯Ό μΆ©μ‘±μν€κΈ°λ₯Ό λ°λλλ€.
κ±°μ 5λ λμ μ΄ νλ‘μ νΈμ κ°λ°μ μν΄ μμ²λ μμ μμ μκ°μ μμ λ΄μ¬ν΄ μ¨ μ¬λμΌλ‘μ(μ΅κ·Όμλ μ΄ νλ‘μ νΈμ μ°Έμ¬νκΈ°λ νμ΅λλ€) 건μ€μ μΈ κΈ°μ¬λ³΄λ€λ λΆμ μ μΈ λ°μμ ν¬κΈ°λ₯Ό λ³΄κ³ μμ΅λλ€. λμκ΄μ κ°λ κ²μ λ§€μ° μ¬νλ€. λ²μ£Όν μ λ ₯μ μν μλ‘μ΄ λ³νκΈ°κ° μλλΌ μλ‘μ΄ νμ΄νλΌμΈκ³Ό κ°μ κ²μ μμ±ν΄μΌ νλ€λ μμ λ΄ μλ΅μ λ΄ λΆλΆμ λν μ€ν΄μμ΅λλ€. μ΄ νλ‘μ νΈλ₯Ό μ μ§ κ΄λ¦¬νλ μμ²λ μμ λ.
κ°μ₯ μ μ©ν λκΈ
λλ μ΄ νμ΄μ§μμ λ§μ λΆμ μ μΈ λ°μμ΄ μμλ€λ κ²μ μλ€. LabelBinarizer λ° LabelEncoderμ λͺ©μ μ λν΄ μ€λ«λμ μ€ν΄κ° μμλ κ² κ°μ΅λλ€. μ΄λ κΈ°λ₯μ΄ μλλΌ λμμ μν κ²μ λλ€. λΆλͺ ν κ·Έλ€μ λ΄ μλ μ΄μ μ μ€κ³λμμΌλ©° μ΄λ¦μ΄ μλͺ»λμμ΅λλ€.
μ¬μ©μκ° μ€λ«λμ μ΄ λͺ©μ μΌλ‘ CountVectorizer(λλ λ°μ΄ν° νλ μμμ μ¨ κ²½μ°
dataframe.to_dict(orient='records')
κ° μλ DictVectorizer)λ₯Ό μ¬μ©ν μ μλ€κ³ μκ°νμ§λ§ μ΅κ·ΌμCategoricalEncoder
(#9151 )λ₯Ό λ§μ€ν°λ‘ κ°μ Έκ° μ μμ§λ§ λ¦΄λ¦¬μ€ μ μ OneHotEncoer λ° μ OrdinalEncoderλ‘ λ‘€λ§λ μ μμ΅λλ€(#10521).λλ μ΄κ²μ΄ λΆλͺ ν λΆλ§μ κ°μ§ λμ€μ μꡬλ₯Ό μΆ©μ‘±μν€κΈ°λ₯Ό λ°λλλ€.
κ±°μ 5λ λμ μ΄ νλ‘μ νΈμ κ°λ°μ μν΄ μμ²λ μμ μμ μκ°μ μμ λ΄μ¬ν΄ μ¨ μ¬λμΌλ‘μ(μ΅κ·Όμλ μ΄ νλ‘μ νΈμ μ°Έμ¬νκΈ°λ νμ΅λλ€) 건μ€μ μΈ κΈ°μ¬λ³΄λ€λ λΆμ μ μΈ λ°μμ ν¬κΈ°λ₯Ό λ³΄κ³ μμ΅λλ€. λμκ΄μ κ°λ κ²μ λ§€μ° μ¬νλ€. λ²μ£Όν μ λ ₯μ μν μλ‘μ΄ λ³νκΈ°κ° μλλΌ μλ‘μ΄ νμ΄νλΌμΈκ³Ό κ°μ κ²μ μμ±ν΄μΌ νλ€λ μμ λ΄ μλ΅μ λ΄ λΆλΆμ λν μ€ν΄μμ΅λλ€. μ΄ νλ‘μ νΈλ₯Ό μ μ§ κ΄λ¦¬νλ μμ²λ μμ λ.