개별모델의 predict을 뽑은후 , 최종모델에 학습 하는 방식이다.
Kfold같은걸 사용하지 않을 경우 과적합 문제 때문에 잘 이용하진 않는다.
'''머신러닝 STACKING
1. 개별 모델 설정
'''
logistic_regression = LogisticRegression()
voting_model = VotingClassifier(estimators=[('LogisticRegression', logistic_regression)])
voting_model.fit(X,y)
voting_pred = voting_model.predict(df_kg)
rd_clf = RandomForestClassifier(criterion= 'gini', max_depth= 9, min_samples_split= 5, n_estimators= 100, random_state= 20)
rd_clf.fit(X,y)
rd_pred = rd_clf.predict(df_kg)
gvm_clf = GradientBoostingClassifier()
gvm_clf.fit(X,y)
gvm_pred = gvm_clf.predict(df_kg)
우선 개별 모델을 설정한후,
1. 로지스틱 , 랜덤포레스트 , 그라디언트부스팅 사용 해서
pred 값을 변수 저장 해준다 .
#예측 합치기 x데이터
x_pred_data = np.array([voting_pred,rd_pred ,gvm_pred])
new = x_pred_data.T # 행 열 위치 교환 데이터 전치
pred_df1 = pd.DataFrame(new,columns=['voting_pred','rd_pred' ,'gvm_pred'])
print(new.shape)
pred_list = new.tolist()
#예측합치기 y데이터
# #최종 모델 lgbm 설정
print('OK!')
titanic_2 = pd.read_csv('./kaggle_upload_Grid3.csv')
pred_df1['submission'] = titanic_2['Survived']
sub = pred_df1['submission']
sub = np.array(sub)
lgb_clf = DecisionTreeClassifier()
lgb_clf.fit(new, sub)
lgb_pd = lgb_clf.predict(new)
kg_up = df_kg.copy()
kg_up['Survived'] = lgb_pd
caggle = kg_up.Survived
# kg_up['Survived'] = lgb_clf.predict(x_new_pred_data)
caggle.to_csv('kaggle_upload_lgb23_clf.csv')
'Python' 카테고리의 다른 글
Python - Regression 회귀 분석 (0) | 2022.10.24 |
---|---|
Python - 다중공선성 , 차원축소 , 군집 (0) | 2022.10.24 |
Python - XGB, HGBM 파라미터 튜닝 , 캐글 점수 (0) | 2022.10.21 |
Python - Grid Search Hyper parameter (0) | 2022.10.19 |
Python - 랜덤포레스트 iris (0) | 2022.10.19 |