{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# Imports\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom PIL import Image","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Constants\npath = '../input/siim-isic-melanoma-classification'\njpeg_path = '../input/siim-isic-melanoma-classification/jpeg'\ntest_images_path = '../input/siim-isic-melanoma-classification/test'\ntrain_images_path = '../input/siim-isic-melanoma-classification/train'\ntf_records_path = '../input/siim-isic-melanoma-classification/tfrecords'\ntrain_csv_path = '../input/siim-isic-melanoma-classification/train.csv'\ntest_csv_path = '../input/siim-isic-melanoma-classification/test.csv'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Read data\ntrain_csv = pd.read_csv(train_csv_path)\nprint(f\"Train: {train_csv.shape}\")\nprint(train_csv.head())\ntest_csv = pd.read_csv(test_csv_path)\nprint(f\"Test: {test_csv.shape}\")\nprint(f\"Train columns {train_csv.columns}\")\nprint(f\"Test columns {test_csv.columns}\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Lets check target distribution\ntarget_counts = train_csv.target.value_counts()\nprint()\nprint(\"Target distribution\")\nprint(target_counts)\nsns.barplot(x=target_counts.index, y=target_counts.values)\nplt.xlabel(\"Targets\")\nplt.ylabel(\"Counts\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Sex\n# Lets check sex distribution\nsex_counts = train_csv.sex.value_counts()\nprint(\"Sex distribution\")\nprint(sex_counts)\nsns.barplot(x=sex_counts.index, y=sex_counts.values)\nplt.xlabel(\"Sex\")\nplt.ylabel(\"Counts\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Age\n# Lets check Age distribution\nage_counts = train_csv.age_approx.value_counts()\nplt.figure(figsize=(10,10))\nsns.barplot(x=age_counts.index, y=age_counts.values)\nplt.xlabel(\"Age\")\nplt.ylabel(\"Counts\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Anatom Site\n# Lets check sex distribution\nanatom_site_counts = train_csv.anatom_site_general_challenge.value_counts()\nprint(\"Anatom Site distribution\")\nprint(anatom_site_counts)\nsns.barplot(x=anatom_site_counts.index, y=anatom_site_counts.values)\nplt.xticks(rotation=90)\nplt.xlabel(\"Anatom Sites\")\nplt.ylabel(\"Counts\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Diagnosis\n# Lets check Diagnosis distribution\ndiagnosis_counts = train_csv.diagnosis.value_counts()\nprint(\"Diagnosis distribution\")\nprint(diagnosis_counts)\nsns.barplot(x=diagnosis_counts.index, y=diagnosis_counts.values)\nplt.xticks(rotation=90)\nplt.xlabel(\"Diagnosis\")\nplt.ylabel(\"Counts\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Type\n# Lets check type distribution\nbenign_malignant_counts = train_csv.benign_malignant.value_counts()\nprint(\"benign_malignant distribution\")\nprint(benign_malignant_counts)\nsns.barplot(x=benign_malignant_counts.index, y=benign_malignant_counts.values)\nplt.xlabel(\"benign or malignant\")\nplt.ylabel(\"Counts\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Lets look at some images\nprint(\"Samples with Melanoma\")\nimgs = train_csv[train_csv.target==1]['image_name'].values\n_, axs = plt.subplots(2, 5, figsize=(20, 8))\naxs = axs.flatten()\nfor f_name,ax in zip(imgs[:10],axs):\n    img = Image.open(f\"{path}/jpeg/train/{f_name}.jpg\")\n    ax.imshow(img)\n    ax.axis('off')\nplt.show()\n\nprint(\"Samples without Melanoma\")\nimgs = train_csv[train_csv.target==0]['image_name'].values\n_, axs = plt.subplots(2, 5, figsize=(20, 8))\naxs = axs.flatten()\nfor f_name,ax in zip(imgs[:10],axs):\n    img = Image.open(f\"{path}/jpeg/train/{f_name}.jpg\")\n    ax.imshow(img)\n    ax.axis('off')    \nplt.show()","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}