[PYTHON] sklearn : 다항식의 계수를 구하는 방법
PYTHONsklearn : 다항식의 계수를 구하는 방법
polynomial_features.transform (X)를 사용하여 숫자로 다항식 피쳐를 구하는 것이 가능하다는 것을 알고 있습니다. 매뉴얼에 따르면, 2 도의 특징은 [1, a, b, a ^ 2, ab, b ^ 2]입니다. 그러나 더 높은 주문에 대한 기능에 대한 설명을 얻으려면 어떻게해야합니까? .get_params ()는 기능 목록을 표시하지 않습니다.
해결법
-
==============================
1.그건 그렇고, 지금은 더 적절한 기능이 있습니다 : PolynomialFeatures.get_feature_names.
그건 그렇고, 지금은 더 적절한 기능이 있습니다 : PolynomialFeatures.get_feature_names.
from sklearn.preprocessing import PolynomialFeatures import pandas as pd import numpy as np data = pd.DataFrame.from_dict({ 'x': np.random.randint(low=1, high=10, size=5), 'y': np.random.randint(low=-1, high=1, size=5), }) p = PolynomialFeatures(degree=2).fit(data) print p.get_feature_names(data.columns)
다음과 같이 출력됩니다 :
['1', 'x', 'y', 'x^2', 'x y', 'y^2']
N.B. 어떤 이유 때문에 get_feature_names ()를 사용하기 전에 PolynomialFeatures 객체에 적합해야합니다.
당신이 팬더스 애호가라면 (나는 그렇듯이) 다음과 같은 새로운 기능으로 DataFrame을 쉽게 구성 할 수 있습니다 :
features = DataFrame(p.transform(data), columns=p.get_feature_names(data.columns)) print features
결과는 다음과 같습니다.
1 x y x^2 x y y^2 0 1.0 8.0 -1.0 64.0 -8.0 1.0 1 1.0 9.0 -1.0 81.0 -9.0 1.0 2 1.0 1.0 0.0 1.0 0.0 0.0 3 1.0 6.0 0.0 36.0 0.0 0.0 4 1.0 5.0 -1.0 25.0 -5.0 1.0
-
==============================
2.
import numpy as np from sklearn.preprocessing import PolynomialFeatures X = np.array([2,3]) poly = PolynomialFeatures(3) Y = poly.fit_transform(X) print Y # prints [[ 1 2 3 4 6 9 8 12 18 27]] print poly.powers_
이 코드는 다음과 같이 인쇄됩니다.
[[0 0] [1 0] [0 1] [2 0] [1 1] [0 2] [3 0] [2 1] [1 2] [0 3]]
따라서 i 번째 셀이 (x, y)이면 Y [i] = (a ** x) * (b ** y)를 의미합니다. 예를 들어, 코드 예제에서 [2 1]은 (2 ** 2) * (3 ** 1) = 12와 같습니다.
from https://stackoverflow.com/questions/31290976/sklearn-how-to-get-coefficients-of-polynomial-features by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] matplotlib를 사용하는 코드에 대해 단위 테스트를 작성하려면 어떻게해야합니까? (0) | 2018.11.28 |
---|---|
[PYTHON] 왜 PyQt connect () 구문이 그렇게 장황합니까? (0) | 2018.11.28 |
[PYTHON] Python - 목록의 목록에서 항목의 색인 찾기 (0) | 2018.11.28 |
[PYTHON] 래핑 된 함수 앞과 뒤에 어떤 코드를 실행하는 함수와 멤버 함수 위에 래퍼를 쓰는 방법? (0) | 2018.11.28 |
[PYTHON] 창에서 파이썬 기능 제한 시간 초과 (0) | 2018.11.27 |