{"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":50160,"databundleVersionId":7921029,"sourceType":"competition"}],"dockerImageVersionId":30698,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.metrics import roc_auc_score\n\n# Load base tables\ntrain_base = pd.read_csv('/kaggle/input/home-credit-credit-risk-model-stability/csv_files/train/train_base.csv')\ntest_base = pd.read_csv('/kaggle/input/home-credit-credit-risk-model-stability/csv_files/test/test_base.csv')\n\n# Handle missing values\ntrain_base.fillna(0, inplace=True)\n\n# Convert date columns to datetime objects\ntrain_base['date_decision'] = pd.to_datetime(train_base['date_decision'])\n\n# Define features and target variable\nX = train_base.drop(['case_id', 'date_decision'], axis=1)  # Assuming the target variable is the only non-feature column\ny = train_base.iloc[:, -1]  # Assuming the target variable is the last column\n\n# Split data into training and testing sets\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# Train a RandomForestClassifier\nrf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)\nrf_classifier.fit(X_train, y_train)\n\n# Predict on the test set\ny_pred_proba = rf_classifier.predict_proba(X_test)[:, 1]\n\n# Evaluate model performance\nauc_score = roc_auc_score(y_test, y_pred_proba)\nprint('AUC Score:', auc_score)\n\n# Visualize distribution of target variable\nplt.figure(figsize=(8, 6))\nsns.countplot(x=y, data=train_base)\nplt.title('Distribution of Target Variable')\nplt.show()\n\n# Visualize relationships between variables\n# Example: Relationship between target and MONTH\nplt.figure(figsize=(8, 6))\nsns.barplot(x='MONTH', y=y, data=train_base)\nplt.title('Default Rate by Month')\nplt.xticks(rotation=45)\nplt.show()\n\n# Explore correlations between numeric features\nplt.figure(figsize=(10, 8))\nsns.heatmap(train_base.corr(), annot=True, cmap='coolwarm')\nplt.title('Correlation Heatmap')\nplt.show()\n\n# Define features and target variable\nX_train = train_base.drop(['case_id', 'date_decision', 'target'], axis=1)\ny_train = train_base['target']\nX_test = test_base.drop(['case_id', 'date_decision'], axis=1)\n\n# Train a RandomForestClassifier\nrf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)\nrf_classifier.fit(X_train, y_train)\n\n# Predict on the test set\npredictions = rf_classifier.predict_proba(X_test)[:, 1]\n\n# Create a DataFrame with predictions\nsubmission = pd.DataFrame({'case_id': test_base['case_id'], 'prediction': predictions})\n\n# Save the output file\nsubmission.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2024-04-27T03:53:37.152430Z","iopub.execute_input":"2024-04-27T03:53:37.152930Z"},"trusted":true},"execution_count":null,"outputs":[]}]}