{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.model_selection import KFold\nfrom sklearn.metrics import roc_auc_score\nimport numpy as np\n\n# Load the data from the CSV file\ndf_train = pd.read_csv('/kaggle/input/emsi-5iir-ds/train.csv')\ndf_test = pd.read_csv('/kaggle/input/emsi-5iir-ds/test.csv')\n\n\n\n\nfor df in [df_train,df_test]:\n    for i in range(10):\n        df[f\"ch{i}\"] = df.f_27.str.get(i).apply(lambda x: ord(x) - 65)\n    df[\"f_27_len_unique_chars\"] = df.f_27.apply(lambda x : len(set(x)))\n    df.drop(columns=[\"f_27\"], inplace=True)\n    print(df.columns)\n\n\nX = df_train.drop(columns=['id', 'target'])\nY = df_train['target']\n\n# Initialize an array to store the AUC scores\nauc_scores = []\n\n\nlgb_train = lgb.Dataset(X_train, y_train)\nlgb_test = lgb.Dataset(X_test, y_test, reference=lgb_train)\n\n# Define the model parameters\nfor i in [30,50,70,200]:\n    params = {\n        'objective': 'binary',\n        'metric': 'auc',\n        'boosting_type': 'gbdt',\n        'random_state': i\n    }\n\n# Train the model\n    model = lgb.train(params, lgb_train, valid_sets=[lgb_train, lgb_test])\n\n# Make predictions on the test set\n# y_pred = model.predict(df_test.drop(columns=['id'])\n\n# df_sub = pd.DataFrame({'id':df_test['id'],'target': y_pred})\n# df_sub.to_csv('/kaggle/working/sub.csv',index=False)\n\n# Calculate the AUC score\n\n\n    ","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-01-06T14:42:32.995051Z","iopub.execute_input":"2023-01-06T14:42:32.995507Z","iopub.status.idle":"2023-01-06T14:42:36.873979Z","shell.execute_reply.started":"2023-01-06T14:42:32.995410Z","shell.execute_reply":"2023-01-06T14:42:36.871891Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import lightgbm as lgb\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import roc_auc_score\n\ndf_train = pd.read_csv('/kaggle/input/emsi-5iir-ds/train.csv')\n\ndf_test = pd.read_csv('/kaggle/input/emsi-5iir-ds/test.csv')\n\n\n\nfor df in [df_train,df_test]:\n    for i in range(10):\n        df[f\"ch{i}\"] = df.f_27.str.get(i).apply(lambda x: ord(x) - 65)\n    df[\"f_27_len_unique_chars\"] = df.f_27.apply(lambda x : len(set(x)))\n    df.drop(columns=[\"f_27\"], inplace=True)\n    print(df.columns)\n\n\nX = df_train.drop(columns=['id', 'target'])\ny = df_train['target']\n# Split the data into train and test sets\n\n\n# Define the model parameters\nfor i in [30]:\n    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=70)\n\n# Convert the data into LightGBM format\n    lgb_train = lgb.Dataset(X_train, y_train)\n    lgb_test = lgb.Dataset(X_test, y_test, reference=lgb_train)\n    params = {\n        'objective': 'binary',\n        'metric': 'auc',\n        'boosting_type': 'gbdt',\n        'random_state': 70\n    }\n\n# Train the model\n    model = lgb.train(params, lgb_train, valid_sets=[lgb_train, lgb_test])\n\n# Make predictions on the test set\ny_pred = model.predict(df_test.drop(columns=['id']))\n\ndf_sub = pd.DataFrame({'id':df_test['id'],'target': y_pred})\ndf_sub.to_csv('/kaggle/working/sub.csv',index=False)\n\n\n# Calculate the AUC score\nauc = roc_auc_score(y_test, y_pred)\n\nprint(f'AUC: {auc:.4f}')\n\n\n","metadata":{"execution":{"iopub.status.busy":"2023-01-06T14:42:36.875560Z","iopub.status.idle":"2023-01-06T14:42:36.876432Z","shell.execute_reply.started":"2023-01-06T14:42:36.876136Z","shell.execute_reply":"2023-01-06T14:42:36.876164Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import lightgbm as lgb\nfrom sklearn.model_selection import KFold\nfrom sklearn.metrics import roc_auc_score\nimport pandas as pd\nimport numpy as np\n\ndf_train = pd.read_csv('/kaggle/input/emsi-5iir-ds/train.csv')\ndf_test = pd.read_csv('/kaggle/input/emsi-5iir-ds/test.csv')\n\nfor df in [df_train, df_test]:\n    for i in range(10):\n        df[f\"ch{i}\"] = df.f_27.str.get(i).apply(lambda x: ord(x) - 65)\n    df[\"f_27_len_unique_chars\"] = df.f_27.apply(lambda x : len(set(x)))\n    df.drop(columns=[\"f_27\"], inplace=True)\n    print(df.columns)\n\nX = df_train.drop(columns=['id', 'target'])\ny = df_train['target']\n\n# Define the model parameters\nparams = {\n    'objective': 'binary',\n    'metric': 'auc',\n    'boosting_type': 'gbdt',\n    'random_state': 42,\n    'num_leaves': 300,\n    'learning_rate': 0.2,\n    'subsample_for_bin': 1000000,\n    'reg_alpha': 0.0,\n    'reg_lambda': 0.0,\n    'num_iterations': 2000\n}\n\n# Define the KFold cross-validation\nkfold = KFold(n_splits=4, shuffle=True, random_state=70)\n\n# Initialize a list to store the AUC scores for each fold\naucs = []\n\n# Iterate through each fold\nfor train_index, test_index in kfold.split(X):\n    # Split the data into train and test sets for each fold\n    X_train, X_test = X.iloc[train_index], X.iloc[test_index]\n    y_train, y_test = y.iloc[train_index], y.iloc[test_index]\n\n    # Convert the data into LightGBM format\n    lgb_train = lgb.Dataset(X_train, y_train)\n    lgb_test = lgb.Dataset(X_test, y_test, reference=lgb_train)\n\n    # Train the model\n    model = lgb.train(params, lgb_train, valid_sets=[lgb_train, lgb_test])\n\n    # Make predictions on the test set\n    y_pred = model.predict(X_test)\n\n    # Calculate the AUC score for the fold\n    auc = roc_auc_score(y_test, y_pred)\n    aucs.append(auc)\n\n# Make predictions on the test set using the best model\nbest_model = lgb.train(params, lgb.Dataset(X, y))\ny_pred = best_model.predict(df_test.drop(columns=['id']))\n\ndf_sub = pd.DataFrame({'id': df_test['id'], 'target': y_pred})\ndf_sub.to_csv('/kaggle/working/sub.csv', index=False)\n\n# Calculate the mean AUC score over all folds\nmean_auc = np.mean(aucs)\nprint(f'Mean AUC: {mean_auc:.4f}')","metadata":{"execution":{"iopub.status.busy":"2023-01-07T14:19:42.940956Z","iopub.execute_input":"2023-01-07T14:19:42.941353Z","iopub.status.idle":"2023-01-07T14:41:40.799230Z","shell.execute_reply.started":"2023-01-07T14:19:42.941310Z","shell.execute_reply":"2023-01-07T14:41:40.798067Z"},"trusted":true},"execution_count":null,"outputs":[]}]}