{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"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":71549,"databundleVersionId":8561470,"sourceType":"competition"}],"dockerImageVersionId":30746,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"%matplotlib inline\n\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom random import sample\n\nfrom itertools import chain\nfrom random import sample \nimport scipy","metadata":{"execution":{"iopub.status.busy":"2024-08-03T15:37:15.440411Z","iopub.execute_input":"2024-08-03T15:37:15.441261Z","iopub.status.idle":"2024-08-03T15:37:18.001784Z","shell.execute_reply.started":"2024-08-03T15:37:15.441226Z","shell.execute_reply":"2024-08-03T15:37:18.000610Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data = pd.read_csv('/kaggle/input/rsna-2024-lumbar-spine-degenerative-classification/train.csv')","metadata":{"execution":{"iopub.status.busy":"2024-08-03T15:38:58.493520Z","iopub.execute_input":"2024-08-03T15:38:58.494423Z","iopub.status.idle":"2024-08-03T15:38:58.536728Z","shell.execute_reply.started":"2024-08-03T15:38:58.494382Z","shell.execute_reply":"2024-08-03T15:38:58.535567Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"- Class Balance Analysis: Calculate the distribution of each class in the categorical columns.\n- Visualize Class Balances: Plot the class distributions to identify imbalances.\n- Handle Class Imbalances: Apply techniques such as resampling if needed.","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n# Assuming `data` is your DataFrame\ndef class_balance_analysis(columns):\n    for column in columns:\n        print(f\"\\nClass Balance for {column}:\")\n        print(data[column].value_counts(normalize=True) * 100)\n        plt.figure(figsize=(10, 5))\n        sns.countplot(x=data[column])\n        plt.title(f'Class Balance of {column}')\n        plt.xticks(rotation=90)\n        plt.show()\n\n# Analyze class balance for all relevant columns\ncolumns_to_analyze = data.columns[1:]  # All columns except 'study_id'\nclass_balance_analysis(columns_to_analyze)\n\n# Correlation Analysis\n# Convert categorical data to numerical for correlation analysis\ndata_encoded = data.copy()\nfor column in data.columns[1:]:\n    data_encoded[column] = data[column].astype('category').cat.codes\n\ncorrelation_matrix = data_encoded.corr()\n\nplt.figure(figsize=(15, 10))\nsns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f')\nplt.title('Correlation Matrix')\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2024-08-03T15:40:21.236532Z","iopub.execute_input":"2024-08-03T15:40:21.236908Z","iopub.status.idle":"2024-08-03T15:40:29.054408Z","shell.execute_reply.started":"2024-08-03T15:40:21.236877Z","shell.execute_reply":"2024-08-03T15:40:29.053251Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}