scikit-learn DecisionTreeRegressor에서 "X"대신 실제 기능 이름을 사용하는 방법은 무엇입니까?

ShuaiYuan

나는이의 데프 때문에 가능하다 가정 fit기능 은 말합니다 :

X : 배열 형, 모양 = [n_samples, n_features]

지금 나 한테있어,

여기에 이미지 설명 입력

확실히 의사 결정 트리의 문자열 표현을 생성 한 다음 X[]실제 기능 이름으로 바꿀 수 있습니다. 하지만 fit함수가 입력의 일부로 기능 이름을 직접 사용할 수 있는지 궁금합니다 . 각 샘플에 대해 다음 형식을 시도했습니다.

  • [1, 2, "feature_1", "feature_2"]

  • [[1, 2], [ "feature_1", "feature_2"]]

그러나 둘 다 작동하지 않았습니다. 그게 무슨 shape뜻입니까? 예를 들어 주시겠습니까?

매트 크라우스

fit기능 자체가 그런 것을 지원하지 않습니다. 그러나 export_graphviz멤버 함수를 사용하여 기능 레이블을 포함한 의사 결정 트리를 그릴 수 있습니다 . (위의 트리를 생성 한 방법이 아닌가요?). 기본적으로 다음과 같은 작업을 수행합니다.

iris = load_iris()
t = tree.DecisionTreeClassifier()
fitted_tree = t.fit(iris.data, iris.targets)
outfile = tree.export_graphviz(fitted_tree, out_file='filename.dot', feature_names=iris.feature_names)
outfile.close()

이렇게하면 graphviz (별도로 설치되어야 함)가 기존 이미지 형식 (포스트 스크립트, png 등)으로 "렌더링"할 수있는 '점'파일이 생성됩니다. 예를 들어 png 파일을 만들려면 다음을 실행합니다.

dot -Tpng filename.dot > filename.png

도트 파일 자체는 일반 텍스트 형식이며 매우 자명합니다. 텍스트를 조정하려는 경우 선택한 텍스트 편집기에서 간단한 찾기-바꾸기가 작동합니다. graphviz 및 해당 파일과 직접 상호 작용하기위한 파이썬 모듈도 있습니다. PyDot 는 꽤 인기가있는 것 같지만 다른 것도 있습니다.


shape참조 fit의 설명서는 레이아웃을 말한다 X, 훈련 데이터 행렬. 특히 첫 번째 인덱스는 학습 예제에 따라 다를 것으로 예상하고 두 번째 인덱스는 기능을 나타냅니다. 예를 들어 데이터 shape가 (150, 4) 라고 가정 해 보겠습니다 iris.data. fit함수는 각각 4 개의 값으로 구성된 150 개의 학습 예제를 포함하는 것으로 해석합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관