Python 기계 학습 알고리즘 라 이브 러 리 scikit-learn 학습 의 결정 트 리 실현 방법 상세 설명
7954 단어 Python기계 학습scikit-learn결정 트 리
결정 트 리
의사 결정 트 리(DTs)는 분류 와 회귀 에 사용 되 는 비 매개 변수 감독 학습 방법 이다.목 표 는 모델 을 만 들 고 데이터 특성 에서 간단 한 결정 규칙 을 유도 하여 목표 변수의 값 을 예측 하 는 것 이다.
예 를 들 어 다음 의 예 에서 결정 트 리 는 if-then-else 결정 규칙 을 통 해 데이터 에서 사인 곡선 과 비슷 한 상황 을 배운다.나무 가 깊 을 수록 의사 결정 규칙 이 복잡 하고 모델 도 적합 하 다.
결정 트 리 의 장점 은:
결정 트 리 분류 기(DecisionTreeClassifier)은 데이터 세트 에서 여러 가지 분 류 를 수행 할 수 있 는 클래스 입 니 다.
다른 분류 기와 마찬가지 로 결정 트 리 분류 기 는 두 개의 배열 을 입력 하 는 것 을 입력 으로 한다.배열 X,희소 또는 밀집,
[n_samples,n_features]
은 훈련 샘플 을 저장 하고 배열 Y 의 정수 치,[n_samples]
은 훈련 샘플 의 유형 라벨 을 저장한다.
>>> from sklearn import tree
>>> X = [[0, 0], [1, 1]]
>>> Y = [0, 1]
>>> clf = tree.DecisionTreeClassifier()
>>> clf = clf.fit(X, Y)
모델 은 견본 의 유형 을 예측 할 수 있다.
>>> clf.predict([[2., 2.]])
array([1])
또는 각 유형의 확률 을 예측 하여 잎 에 같은 종류의 훈련 견본 의 점 수 를 예측 할 수 있다.
>>> clf.predict_proba([[2., 2.]])
array([[ 0., 1.]])
DecisionTreeClassifier 는 바 이 너 리(라벨[-1,1])분류 와 여러 종류(라벨[0],...,k-1])분 류 를 동시에 진행 할 수 있 습 니 다.홍채 데이터 세트 를 사용 하면 다음 과 같은 나 무 를 구축 할 수 있 습 니 다.
>>> from sklearn.datasets import load_iris
>>> from sklearn import tree
>>> iris = load_iris()
>>> clf = tree.DecisionTreeClassifier()
>>> clf = clf.fit(iris.data, iris.target)
훈련 후에 우 리 는 export_graphviz 을 사용 할 수 있다. 트 리 를 Graphiz 형식 으로 내 보 냅 니 다.다음은 전체 iris(홍채)데이터 세트 에 출력 된 트 리 예제 입 니 다.
>>> with open("iris.dot", 'w') as f:
... f = tree.export_graphviz(clf, out_file=f)
그리고 Graphiz 의 dot 도 구 를 사용 하여 PDF 파일(또는 지원 되 는 다른 파일 형식)을 만 들 수 있 습 니 다.dot-tpdf iris.dot-o iris.pdf
>>> import os
>>> os.unlink('iris.dot')
또는 Python 모듈 pydotplus 를 설치 하면 Python 에서 PDF 파일(또는 지원 되 는 다른 파일 형식)을 직접 생 성 할 수 있 습 니 다.
>>> import pydotplus
>>> dot_data = tree.export_graphviz(clf, out_file=None)
>>> graph = pydotplus.graph_from_dot_data(dot_data)
>>> graph.write_pdf("iris.pdf")
export_graphviz exporter 는 클래스(또는 회귀 에 사용 되 는 값)에 따라 착색 노드 를 포함 하여 다양한 옵션 을 지원 합 니 다.필요 하 다 면 명시 적 변수 와 클래스 이름 IPython 을 사용 하여 Image()함수 로 줄 거 리 를 표시 할 수 있 습 니 다.
>>> from IPython.display import Image
>>> dot_data = tree.export_graphviz(clf, out_file=None,
feature_names=iris.feature_names,
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
>>> graph = pydotplus.graph_from_dot_data(dot_data)
>>> Image(graph.create_png())
모델 은 견본 의 유형 을 예측 할 수 있다.
>>> clf.predict(iris.data[:1, :])
array([0])
또는 각 유형의 확률 을 예측 할 수 있 습 니 다.이것 은 같은 잎 에 있 는 훈련 견본 의 점수 입 니 다.
>>> clf.predict_proba(iris.data[:1, :])
array([[ 1., 0., 0.]])
Examples:
Plot the decision surface of a decision tree on the iris dataset
회귀
의사 결정 트 리 회귀 을 사용 하면 의사 결정 트 리 도 회귀 문제 에 응용 할 수 있다.
분류 설정 에서 fit 방법 은 배열 X 와 y 를 매개 변수 로 합 니 다.이 경우 에 만 y 는 전체 수치 가 아 닌 부동 소수점 값 을 기대 합 니 다.
>>> from sklearn import tree
>>> X = [[0, 0], [2, 2]]
>>> y = [0.5, 2.5]
>>> clf = tree.DecisionTreeRegressor()
>>> clf = clf.fit(X, y)
>>> clf.predict([[1, 1]])
array([ 0.5])
Examples:Decision Tree Regression
질문
하나의 다 수출 문 제 는 감독 을 받 는 학습 문제 로 몇 개의 수출 을 예측 할 수 있다.즉,Y 가 2 차원 배열 인
[n_samples,n_output]
이다.출력 간 에 관련 성 이 없 을 때 이런 문 제 를 해결 하 는 매우 간단 한 방법 은 n 개의 독립 된 모델,즉 모든 출력 을 구축 한 다음 에 이 모델 을 사용 하여 모든 출력 을 독립 적 으로 예측 하 는 것 이다.
그러나 같은 입력 과 관련 된 출력 값 자체 가 관련 될 수 있 기 때문에 일반적으로 더 좋 은 방법 은 모든 n 출력 을 동시에 예측 할 수 있 는 단일 모델 을 구축 하 는 것 이다.우선 평가 치 만 구 축 했 기 때문에 낮은 교육 시간 이 필요 하 다.그 다음으로 그 결과 추 정량의 범 화 정밀 도 는 통상 적 으로 증가한다.
의사 결정 트 리 에 대해 서 는 다 중 출력 문 제 를 지원 하 는 데 쉽게 사용 할 수 있 습 니 다.다음 변경 사항 이 필요 합 니 다:
결정 트 리 가 크기(
n_samples,n_output
)의 출력 배열 Y 에 부합 한다 면 예상 치 는:predict_proba
에서 출력 류 확률 의 noutput 배열.Examples:
결정 트 리 다 중 출력 회귀
더 많은 파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.