Python / / 2022. 10. 22. 08:51

Python - 모델 Stacking

개별모델의 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')
 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유