첫째, sklearn 설치
설치 CONDA scikit을 배우기
참조
[1] 전반적인 설명 sklearn
https://blog.csdn.net/u014248127/article/details/78885180
둘째, 도입 RandomForestRegressor
1 sklearn.ensemble.RandomForestRegressor (n_estimators = 10 , 2 = 기준 ' MSE ' , 3 MAX_DEPTH = 없음, 4 min_samples_split = 2 , 5 min_samples_leaf = 1 , 6 min_weight_fraction_leaf = 0.0 , 7 max_features 용 = ' 자동차 ' , 8 max_leaf_nodes = 없음, 9 min_impurity_split = 1E-07 , 10 , 부트 스트랩 = 참, 11 oob_score = 거짓, 12 n_jobs = 1 , 13 random_state = 없음, 14 상세 = 0, 15 warm_start = 거짓)
기준 "지니"또는 "엔트로피"(디폴트 값 = "지니")는 지니 (특성 계산 지니 불순물 ) 엔트로피 ( 정보 게인 ), 가장 적절한 노드를 선택한다.
분배기 : "최고"또는 "랜덤"(기본값 = "최고의") 무작위로 선택된 속성 또는 큰 속성을 순도하지 않도록 선택, 기본값을 사용하는 것이 좋습니다.
max_features : 최적 분할 속성 문자를 선택하면,이 값을 초과 할 수 없다.
때 정수, 즉 기능의 최대 수
. "자동", 단순히 모든 기능을 선택하는 다음 max_features의 =의 SQRT (n_features가), 매일 나무를 사용 할 수 있습니다. 이 경우, 모든 단일 나무는 제한이 없습니다.
"SQRT는"다음 =의 max_features 경우이 옵션은 기능의 총 수에서 하나 하나의 서브 트리의 루트를 사용할 수있다. 변수 (특징)의 총 수가 100 인 경우, 예를 들어, 서브 - 트리의 모든 단일 한 10을 취할 수 있도록. "LOG2는"유사한 옵션의 또 다른 유형입니다.
"LOG2는"다음 =의 max_features 경우
. 중에 다음 =의 n_features을 max_features없는 경우 , 예를 들면 다음과 같다 : 때 소수 항 * 소수의 트레이닝 세트 번호 0.2이 옵션은 각 서브 트리가 랜덤 포레스트 변수 (특징) 개수의 20 %를 이용할 수있게. 당신이 X %의 효과의 특성을 연구 할 경우, 우리는 "0.X"형식을 사용할 수 있습니다.
각 노드에서, 우리는 고려해야 할 더 많은 옵션을 가지고 있기 때문에 증가 max_features는 일반적으로 모델의 성능을 향상시킬 수 있습니다. 그것은 임의의 뚜렷한 장점 숲 단일 트리의 다양성을 감소하기 때문에, 이것은 완전히 정확하지 않을 수 있습니다. 그러나, 확실하게, 당신은 max_features 증가하여 알고리즘의 속도를 줄일 수 있습니다. 따라서 적절한 균형이 필요하고 최고의 max_features을 선택합니다.
MAX_DEPTH : (기본값 = 없음) 트리의 최대 깊이를 설정, 기본은 성과가 하나의 카테고리에있는 모든 리프 노드를 만들거나 min_samples_split에 도달 할 때, None입니다.
min_samples_split : 시간 분할 노드 속성, 부문 당 샘플의 최소.
min_samples_leaf : 리프 노드의 시료의 최소 수. 이전에 트리를 작성했다면, 당신은 작은 샘플의 잎 크기의 중요성을 이해할 수있다. 너희는 의사 결정 트리의 끝 노드입니다. 작은 잎은 데이터 기차 소음을 잡기 위해 모델을 쉽게합니다. 일반적으로, 나는 잎 노드의 최소 수는 50보다 크게 설정되어있을 것을 선호합니다. 자신의 경우에, 당신은 최적의 하나를 찾기 위해, 잎 크기의 많은 종류를 시도해야합니다.
max_leaf_nodes : 샘플의 최대 수 (기본값 = 없음) 나무의 단풍 없습니다.
min_weight_fraction_leaf : (기본값 = 0) 잎 노드에 필요한 최소 무게
자세한 정보 : (기본값 = 0) 작업 진행률을 표시
임의 센 Linte 일부 매개 변수 :
n_estimators = 10 : 나무의 수, 더 나은,하지만 성능은 더 악화 될 것이다, 적어도 약 100 (특히 숫자 잊지 올) 및 허용 오차 성능을 달성 할 수 속도를 사용하기 전에 당신이 하위 트리의 수를 설정하려면, 투표의 최대 수를 예측하거나 의미합니다. 더 하위 트리 모델은 더 나은 성능을 제공하지만, 동시에 코드를 느리게 만들 수 있습니다. 프로세서 살 감당할 수있는만큼 당신이 더 더 안정 예측할 수 있기 때문에 당신은 가능한 가장 높은 값을 선택해야합니다.
= 사실 부트 스트랩이 : 백 샘플이 있습니다.
= 거짓 oob_score : 특정 의사 결정 트리 훈련 부트 스트랩 데이터에서 선택되지 않은 : 즉 데이터, OOB (밴드, 밴드의 OUT). 다중 매개 변수 단일 모델을 교육, 우리는 그들이 수행하는 검증 (CV)를 통과 할 수 있습니다 알고 있지만, 특히 시간이 많이 소요뿐만 아니라 임의의 숲이 경우 큰 필요가 없다, 그래서 우리는 의사 결정 트리 모델을 검증하기 위해이 데이터를 사용하여, 고려 간단한 교차 검증. 성능 소비는 작지만 좋은 결과입니다. 이것은 임의의 숲 교차 검증 방법이다. 그것은 확인 방법은 매우 비슷하지만 훨씬 빠릅니다 떠났다. 이 방법은 단순히 서브 트리의 데이터 부분의 각각에 의해 관측 표시한다. 그런 다음 각 샘플이 점수 최대 투표를 찾기 위해 관찰하는 것은 그 하위 트리가 관찰 된 샘플 훈련을 사용하지 않는 얻을 수있는 표입니다.
= 1 n_jobs. : 병렬 작업 번호. (각 반복의 강화에 미치는 영향 사이에, 병렬하기 어렵 기 때문에,보다는 오히려 증폭) 병렬 성능을 향상시킬 수 있기 때문에, 매우 특히 포기할에, 앙상블 알고리즘 중요하다. 1 =하지 병렬; N : N 개의 병렬 -1 : 많은 작업을 시작하는 방법 코어의 CPU 번호
거짓 warm_start = 핫 스타트, 마지막 호출의 결과를 사용하고 새 클래스를 추가할지 여부를 결정을 :.
= 없음 class_weight : 각 레이블의 무게 무게.
random_state :이 매개 변수는 결과를 쉽게 재현 할 수 있습니다. 랜덤 값을 결정하는 상수 파라미터 학습 데이터의 경우에, 동일한 결과를 생성한다. 개인적으로 통합의 최적의 매개 변수 모델을 다른 임의의 상태를 시도,이 방법은 개별 임의 상태보다 때로는 더
예측은 여러 형태를 취할 수
predict_proba (X)는 : 확률 값으로 결과를 제공한다. 모든 확률의 각 점의 라벨과 1로
예측 (X) : 주어진 예측 결과. 예측의 유형 인 입력 표시 높은 확률의 결과에 따라 내부 또는 호출 predict_proba ().
predict_log_proba (X) : predict_proba과 거의 동일하지만, 결과가 기록을 위해 () 가공
참고 :
[2] 어떻게 GBM / GBDT / GBRT 사용하는 방법 - 다양한 매개 변수의 회귀 나무를 향상 소개 구배를
https://zwang1986.github.io/2016/04/24/%E5%A6%82%E4%BD%95%E7%94%A8%E5%A5%BDgbdt%EF%BC%88gradient_boosted_regression_trees%EF%BC 89 % /
[3] 각 랜덤 포레스트의 최적 파라미터를 찾는 방법을 설명
https://blog.csdn.net/qq_16633405/article/details/61200502
https://www.analyticsvidhya.com/blog/2015/06/tuning-random-forest-model/
셋째, 도입 GradientBoostingRegressor
능선 회귀, 올가미 회귀 회귀 ElasticNet의 기계 학습 알고리즘
https://www.biaodianfu.com/ridge-lasso-elasticnet.html
참고 :