{"cells":[{"metadata":{},"cell_type":"markdown","source":"In this kernel we will have a quick  Exploratory Data Analysis for Cassava Leaf Disease Classification challenge. "},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom skimage import io\nimport os\nimport json","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"base_dir = '/kaggle/input/cassava-leaf-disease-classification/'\ntrain_dir = '/kaggle/input/cassava-leaf-disease-classification/train_images'\ntest_dir = '/kaggle/input/cassava-leaf-disease-classification/test_images'","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Checking size of images"},{"metadata":{"trusted":true},"cell_type":"code","source":"out = []\nfor img_ in os.listdir(train_dir):\n    img = io.imread(os.path.join(train_dir,img_))\n    out.append(img.shape)\n    \n\nprint(set(out))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Thus for all train images we have size of 600x800x3"},{"metadata":{},"cell_type":"markdown","source":"### Traget classes"},{"metadata":{"trusted":true},"cell_type":"code","source":"with open(os.path.join(base_dir, \"label_num_to_disease_map.json\")) as file:\n    map_classes = json.loads(file.read())\n    \nprint(json.dumps(map_classes, indent=4))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df = pd.read_csv(os.path.join(base_dir,'train.csv'))\ndf['target_class'] = df['label'].apply(lambda x: map_classes[str(x)])\ndf.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(18,8))\nsns.countplot(df['target_class'])\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Clearly we have a imabalanced data. So we need to proceed accordingly. Let us viusalize data for each class."},{"metadata":{},"cell_type":"markdown","source":"##  Cassava Bacterial Blight (CBB)"},{"metadata":{"trusted":true},"cell_type":"code","source":"# function to plot images\ndef plot_images(image_name, labels):\n    plt.figure(figsize=(18, 14))\n    \n    for idx, (image_name, label) in enumerate(zip(image_name, labels)):\n        plt.subplot(4, 4, idx + 1)\n        image = io.imread(os.path.join(train_dir, image_name))\n        \n        plt.imshow(image)\n        plt.title(f\"Target Class: {label}\", fontsize=10)\n        plt.axis(\"off\")\n    ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_ = df[df[\"label\"] == 0].sample(16)\nimage_name,labels = df_[\"image_id\"].values,df_[\"label\"].values\nplot_images(image_name, labels)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Cassava Brown Streak Disease (CBSD)"},{"metadata":{"trusted":true},"cell_type":"code","source":"df_ = df[df[\"label\"] == 1].sample(16)\nimage_name,labels = df_[\"image_id\"].values,df_[\"label\"].values\nplot_images(image_name, labels)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Cassava Green Mottle (CGM)"},{"metadata":{"trusted":true},"cell_type":"code","source":"df_ = df[df[\"label\"] == 2].sample(16)\nimage_name,labels = df_[\"image_id\"].values,df_[\"label\"].values\nplot_images(image_name, labels)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Cassava Mosaic Disease (CMD)"},{"metadata":{"trusted":true},"cell_type":"code","source":"df_ = df[df[\"label\"] == 3].sample(16)\nimage_name,labels = df_[\"image_id\"].values,df_[\"label\"].values\nplot_images(image_name, labels)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Healthy"},{"metadata":{"trusted":true},"cell_type":"code","source":"df_ = df[df[\"label\"] == 4].sample(16)\nimage_name,labels = df_[\"image_id\"].values,df_[\"label\"].values\nplot_images(image_name, labels)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Work Under Progress!"}],"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}