{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":10445,"databundleVersionId":200747,"sourceType":"competition"},{"sourceId":8834080,"sourceType":"datasetVersion","datasetId":5305385},{"sourceId":186661982,"sourceType":"kernelVersion"},{"sourceId":186661687,"sourceType":"kernelVersion"},{"sourceId":186661851,"sourceType":"kernelVersion"}],"dockerImageVersionId":30732,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\n\nrf_train = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation-baseline/rf_train_pred.csv\")\nrf_test = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation-baseline/submission.csv\")\n\nlgb_train = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation-xgboost/rf_train_pred.csv\")\nlgb_test = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation-xgboost/submission.csv\")\n\nxgb_train = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation-lgb-wrapper/rf_train_pred.csv\")\nxgb_test = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation-lgb-wrapper/submission.csv\")\n\ntrain_data = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation-train-test/train_data.csv\")","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-07-03T10:36:03.211897Z","iopub.execute_input":"2024-07-03T10:36:03.212408Z","iopub.status.idle":"2024-07-03T10:36:18.746718Z","shell.execute_reply.started":"2024-07-03T10:36:03.212358Z","shell.execute_reply":"2024-07-03T10:36:18.745701Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_pred = pd.merge(rf_train,lgb_train,on=\"Unnamed: 0\",how=\"left\")\ntrain_pred = pd.merge(train_pred,xgb_train,on=\"Unnamed: 0\",how=\"left\")\ntrain_pred.index = train_pred[\"Unnamed: 0\"]\n\ntest_pred = pd.merge(rf_test,lgb_test,on=\"card_id\",how=\"left\")\ntest_pred = pd.merge(test_pred,xgb_test,on=\"card_id\",how=\"left\")\ntest_pred.index = test_pred[\"card_id\"]","metadata":{"execution":{"iopub.status.busy":"2024-07-03T10:36:33.128664Z","iopub.execute_input":"2024-07-03T10:36:33.129071Z","iopub.status.idle":"2024-07-03T10:36:33.810902Z","shell.execute_reply.started":"2024-07-03T10:36:33.129040Z","shell.execute_reply":"2024-07-03T10:36:33.809737Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"feature = [\"target_x\",\"target_y\",\"target\"]\ntest_col = test_pred[\"card_id\"]\ntrain_col = train_data[\"card_id\"]","metadata":{"execution":{"iopub.status.busy":"2024-07-03T10:36:35.479281Z","iopub.execute_input":"2024-07-03T10:36:35.479736Z","iopub.status.idle":"2024-07-03T10:36:35.486187Z","shell.execute_reply.started":"2024-07-03T10:36:35.479700Z","shell.execute_reply":"2024-07-03T10:36:35.484970Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.linear_model import BayesianRidge\nfrom sklearn.metrics import mean_squared_error\n\ndef stacking(train_pred,train_val,test_pred): \n    k = 5\n    kf = KFold(n_splits=k, shuffle=True, random_state=2024)  \n    res = pd.DataFrame(0,index = test_col,columns=[\"target\"])\n\n    scores = []\n    # 进行k折交叉验证\n    for train_index,val_index in kf.split(train_pred,train_val):\n#         print(train_index,val_index)\n        train_d,train_y = train_pred.iloc[train_index],train_val[train_index]\n        val_d,val_y = train_pred.iloc[val_index],train_val[val_index]\n#         print(train_d,train_y)\n        model = BayesianRidge()\n        model.fit(train_d,train_y)\n        res[\"target\"] += model.predict(test_pred)\n        val_pred = pd.Series(model.predict(val_d))\n        \n        mse = mean_squared_error(val_pred.values,val_y.values)  \n        scores.append(mse)  \n        print(f\"第{len(scores)}折mse: {mse}\")\n        \n\n    res['target'] /= k\n    \n    return res","metadata":{"execution":{"iopub.status.busy":"2024-07-03T10:38:00.558906Z","iopub.execute_input":"2024-07-03T10:38:00.559353Z","iopub.status.idle":"2024-07-03T10:38:00.570301Z","shell.execute_reply.started":"2024-07-03T10:38:00.559311Z","shell.execute_reply":"2024-07-03T10:38:00.569172Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submisson = stacking(train_pred[feature].loc[train_col],train_data[\"target\"],test_pred[feature])","metadata":{"execution":{"iopub.status.busy":"2024-07-03T10:38:04.444912Z","iopub.execute_input":"2024-07-03T10:38:04.445326Z","iopub.status.idle":"2024-07-03T10:38:05.200901Z","shell.execute_reply.started":"2024-07-03T10:38:04.445292Z","shell.execute_reply":"2024-07-03T10:38:05.198914Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submisson.to_csv(\"/kaggle/working/submission.csv\")","metadata":{"execution":{"iopub.status.busy":"2024-07-03T10:38:09.670219Z","iopub.execute_input":"2024-07-03T10:38:09.671040Z","iopub.status.idle":"2024-07-03T10:38:09.683351Z","shell.execute_reply.started":"2024-07-03T10:38:09.671002Z","shell.execute_reply":"2024-07-03T10:38:09.682214Z"},"trusted":true},"execution_count":null,"outputs":[]}]}