-
파이썬 랜덤포레스트<Python>/[Model] 2021. 12. 24. 18:39728x90
랜덤포레스트
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(max_depth=10, n_estimators=100)랜덤포레스트
# n_estimators=int, default=100
# criterion={“gini”, “entropy”}, default=”gini”
# min_samples_split={int, float} ,default=2
# min_samples_leaf={int, float}, default=1
# min_weight_fraction_leaf=float, default=0.0# max_depth=int, default=None
# max_features={“auto”, “sqrt”, “log2”}, int or float, default=”auto”
# max_leaf_nodes=int, default=None
# min_impurity_decrease=float, default=0.0
# bootstrap=bool, default=True
# oob_score=bool, default=False
# n_jobs=int, default=None
# random_state=int, RandomState instance or None, default=None
# verbose=int, default=0
# warm_start=bool, default=False
# class_weight={“balanced”, “balanced_subsample”}, dict or list of dicts, default=None
# ccp_alphanon-negative = float, default=0.0
# max_samples={int, float}, default=NoneParameters
1. n_estimators{int}, default=100 # 나무의 수.
2. criterion{“mse”, “mae”}, default=”mse” #분할의 품질을 측정하는 기능입니다
3. max_depth{int}, default=None #나무의 최대 깊이
4. min_samples_split{int,float}, default=2
# 내부 노드를 분할하는 데 필요한 최소 샘플 수
# int이면 min_samples_split 을 최소값으로 고려
# float이면 분수이고 ceil(min_samples_split * n_samples)은 각 분할에 대한 최소 샘플 수
5. min_samples_leaf{int,float}, default=1
# 리프 노드에 있어야하는 최소 샘플 수입니다.
# 임의의 깊이에서 분리점은 각 왼쪽, 오른쪽 분기에 최소한 min_samples_leaf 훈련샘플을 남겨두는 경우에만 고려
# 이것은 특히 회귀에서 모형을 부드럽게하는 효과가 있습니다.
# int이면 min_samples_leaf를 최소 숫자로 고려
# float이면 분수, ceil(min_samples_leaf * n_samples)은 각 노드의 최소 샘플 수
6. min_weight_fraction_leaf{float}, default=0.0
# leaf노드에 있어야하는 (모든 입력 샘플의) 총 중량의 최소 가중치 비율
# sample_weight가 제공되지 않은 경우 샘플의 가중치는 동일합니다.
7. max_features{int, float, “auto”, “sqrt”, “log2”}, default=”auto”
# 최상의 분할을 위한 변수 개수 :
# "int"이면 각 분할에서 max_features
# "float"이면 max_features는 분수이고 round(max_features * n_features)
# "auto"이면 max_features=n_features
# "sqrt"이면 max_features=sqrt(n_features)
# "log2"이면 max_features=log2(n_features)
# None이면 max_features=n_features
8. max_leaf_nodes{int}, default=None
# 나무를 성장시키십시오
# 최상의 노드는 불순물의 상대적 감소로 정의
# None이면 무제한의 leaf 노드
9. min_impurity_decrease{float}, default=0.0
# 불순물이 이 값 이상으로 감소하면 노드가 분할.
# 가중 불순물 감소 방정식 :
# N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity)
# 여기서 N 은 총 샘플 수, N_t 는 현재노드 의 샘플 수,
# N_t_L은 왼쪽 자식의 샘플 수, N_t_R은 오른쪽 자식의 샘플 수
10. min_impurity_split{float}, default=None
# 수목의 조기 정지에 대한 임계 값. 불순물이 임계 값을 초과하면 노드가 분리되고, 그렇지 않으면 잎입니다.
# 버전 0.19부터 폐지 : min_impurity_split은 0.19의 min_impurity_decrease 대신 폐지
# min_impurity_split의 기본값은 0.23버전에서 1e-7 -> 0으로 변경되었으며 1.0에서 제거됩니다 (0.25로 이름 변경).
# 대신 min_impurity_decrease를 사용
11. bootstrap{bool}, default=True
# 나무를 만들 때 bootstrap샘플 사용여부
# False이면 전체 데이터 세트가 각 트리를 작성하는데 사용
12. oob_score{bool}, default=False
# 보이지 않는 데이터에 대한 R ^ 2를 추정하기 위해 가방 외부 샘플 사용 여부.
13. n_jobs{int}, default=None
# 병렬로 실행할 작업 수
# fit, predict, decision_path, apply는 모두 트리에서 병렬화
# None은 joblib.parallel_backend 컨텍스트가 아니면 1을 의미
# -1은 모든 프로세서를 사용함을 의미합니다.
14. random_state{int, RandomState instance, None}, default=None
# 트리를 빌드할 때 사용되는 샘플 부트 스트랩의 무작위성과(bootstrap=True인 경우)
# 각 노드에서 최상의 분할을 찾을 때 고려할 기능의 샘플링(max_features < n_features)을 모두 제어
15. verbose{int}, default=0
# 적합하고 예측할 때의 상세 정도를 조정합니다.
16. warm_start{bool}, default=False
# True 로 설정 하면 이전 호출의 솔루션을 다시 사용하여 앙상블에 더 많은 추정자를 맞추고 추가합니다.
# 그렇지 않으면 완전히 새로운 포리스트에 적합
17. ccp_alphanon-negative {float}, default=0.0
# 최소 비용-복잡성 가지치기에 사용되는 복잡도 매개변수입니다.
# ccp_alpha 보다 작은 비용 복잡성이 가장 큰 하위 트리가 선택됩니다.
# 기본적으로 정리는 수행되지 않습니다.
18. max_samples{int, float}, default=None
# 부트 스트랩이 True 인 경우 각 기본 추정량을 훈련하기 위해 X에서 추출할 샘플 수
# None (기본값)이면 X.shape[0]
# int이면 max_samples
# float이면 max_samples * X.shape[0]
19. max_features
# 전체에서 선택할 피처 개수 입니다.
# n_estimators는 클수록 트리의 깊이가 깊어지지만 max_features는 작을수록 트리가 깊어진다고 볼 수 있습니다.
model.fit(new_X_train, new_y_train)
print(model.score(new_X_train, new_y_train))
predict = model.predict_proba(X_val)
pred = predict[:, 1]
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_val, pred))728x90'<Python> > [Model]' 카테고리의 다른 글
파이썬 LinearSVC (0) 2021.12.24 파이썬 SVM (0) 2021.12.24 파이썬 로지스틱 분류 (0) 2021.12.24 파이썬 KNN (0) 2021.12.24 파이썬 결정나무 (0) 2021.12.24