내용

글번호 1063
작성자 허진경
작성일 2021-07-25 08:59:43
제목 DecsionTreeClassifier, MLPClassifier 클래스 매개변수 설명
내용 사이킷런에서 의사결정나무는 DecisionTreeClassifier 클래스로 구현되어 있습니다. sklearn.tree.DecisionTreeClassifier(*, criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, ccp_alpha=0.0) 구문에서... - criterion : {“gini”, “entropy”}, 기본값 “geni”, 분류품질을 측정하는 기준입니다. “geni”이면 지니 계수를 사용하여 분류품질을 측정하며, “entropy”이면 분류품질 기준으로 정보획득량을 사용합니다. - splitter : {“best”, “random”}, 기본값 “best”, 각 노드에서 분할을 선택하는 데 사용된 전략입니다. 지원되는 전략은 최상의 분할을 선택하는 데 “best”, 최상의 무작위 분할을 선택하는 “random”입니다. - max_depth : int, 기본값 None, 트리의 최대 깊이입니다. None이면 모든 Leaf 노드가 하나의 클래스만 갖거나 모든 나뭇잎에 min_samples_split보다 적은 샘플이 포함될 때까지 노드가 확장됩니다. 더 자세한 내용은 첨부파일을 참고하세요. Scikit-learn 패키지에는 다층신경망을 구현한 클래스인 MLPClassifier가 있습니다. 이 모델은 LBFGS(Limited BFGS) 또는 확률적 경사 하강법(SGD, Stochastic Gradient Descent)을 사용하여 로그 손실함수를 최적화합니다. MLPClassifier 클래스의 구문과 매개변수들을 아래에 설명하고 있습니다. sklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100, ), activation='relu', solver='adam', alpha=0.0001, batch_size='auto', learning_rate='constant', learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10, max_fun=15000) 구문에서... - hidden_layer_sizes : tuple, 기본값(100,) 은닉층의 크기를 지정합니다. i번째 요소는 i번째 은닉의 뉴런 수를 나타냅니다. 예를 들면 (50, 30, 20)일 경우 은닉층의 수는 3개이며, 각 층의 뉴런의 수는 50개, 30개, 20개입니다. - activation : 은닉층의 활성화 함수입니다. {‘identity’, ‘logistic’, ‘tanh’, ‘relu’}중 하나입니다. 기본값은 ‘relu’입니다. . ‘identity’ : 아무런 변환 없이 그대로 출력합니다. . ‘logistic’ : 시그모이드(sigmoid) 함수를 사용합니다. . ‘tanh’ : 하이퍼탄젠트(tanh) 함수를 사용합니다. . ‘relu’ : 레루(Rectified Linear Unit)함수를 사용합니다. - solver : 가중치를 최적화할 옵티마이저를 지정합니다. 사용 가능한 옵티마이저는 {‘lbfgs’, ‘sgd’, ‘adam’}중 하나입니다. 기본값은 ‘adam’입니다. 기본 옵티마이저 ‘adam’은 훈련 시간과 검증 점수 측면에서 상대적으로 큰 데이터 셋(수천 개의 훈련 샘플 이상)에서 잘 작동합니다. 그러나 작은 데이터 셋의 경우 ‘lbfgs’가 더 빨리 수렴하고 더 잘 수행할 수 있습니다. . ‘lbfgs’ : Quasi-Newton계열 옵티마이저입니다. BFGS Limited-memory Quasi-Newton methods의 한 예이며, Broyden, Fletcher, Goldfarb, Shanno 4사람의 이름을 따서 만든 알고리즘으로 Quasi-Newton 알고리즘 중 가장 널리 사용하는 알고리즘입니다. 참고 : https://en.wikipedia.org/wiki/Limited-memory_BFGS 알고리즘은 컴퓨터 메모리의 제한된 양만 사용하는데, 어떤 경계 내에서 파라미터 학습을 하고자 한다면 사용하기 좋은 알고리즘입니다. . ‘sgd’ : 확률적경사하강법(stochastic gradient descent)을 이용한 옵티마이저입니다. . ‘adam’ : Kingma, Diederik, 그리고 Jimmy Ba에 의해 제안된 확률적 경사 하강법을 기반으로 한 옵티마이저입니다. 더 자세한 내용은 첨부파일을 참고하세요.
첨부파일 DT MLP 클래스 매개변수 설명.pdf (93,151byte)