{"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":68058,"databundleVersionId":7893090,"sourceType":"competition"}],"dockerImageVersionId":30673,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"Published on March 25, 2024. By Marília Prata, mpwolke","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\nimport plotly.graph_objs as go\nimport plotly.offline as py\nimport plotly.express as px\n\n#Ignore warnings\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-output":true,"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-03-25T17:34:33.511850Z","iopub.execute_input":"2024-03-25T17:34:33.512690Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![image.png](attachment:d40a11fe-0e7f-4218-982d-98918eeefaea.png)\nhttps://sites.google.com/view/fgvc11/competitions","metadata":{},"attachments":{"d40a11fe-0e7f-4218-982d-98918eeefaea.png":{"image/png":"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"}}},{"cell_type":"markdown","source":"#Competition Citation\n\n@misc{HyperLeaf2024,\n\n    author = {William Laprade},\n    \n    title = {HyperLeaf2024},\n    \n    publisher = {Kaggle},\n    year = {2024},\n    url = {https://kaggle.com/competitions/HyperLeaf2024}\n}","metadata":{}},{"cell_type":"markdown","source":"#The HyperLeaf2024 dataset\n\n\"The HyperLeaf2024 dataset contains 2410 hyperspectral images of wheat flag leaves. The goal is to develop methods for whole-image hyperspectral regression. All leaves and associated measurements are collected from the same field with varying plot parameters. There are 1590 training images taken from 24 plots and 820 test images from an additional 12 plots. The goal is to build models using the image data to predict the 8 targets.\"\n\nhttps://www.kaggle.com/competitions/HyperLeaf2024/data","metadata":{}},{"cell_type":"code","source":"#By Serkan Peldek https://www.kaggle.com/code/serkanpeldek/elik-y-zey-kusurlar-n-n-s-n-fland-r-lmas/notebook\n\ndataset = pd.read_csv('../input/HyperLeaf2024/train.csv')\n\ndisplay(dataset.head())\ndisplay(dataset.describe())\ndisplay(dataset.info())","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:33:08.357902Z","iopub.execute_input":"2024-03-25T16:33:08.358608Z","iopub.status.idle":"2024-03-25T16:33:08.415806Z","shell.execute_reply.started":"2024-03-25T16:33:08.358574Z","shell.execute_reply":"2024-03-25T16:33:08.414682Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#The 8 Targets: \n\n* GrainWeight, Gsw, PhiPS2\n\n\"The first 3 targets (GrainWeight, Gsw, PhiPS2) have a wide range of possible values and should be treated as a pure regression task.\"\n\n* Fertilizer\n\n\"There are only 3 possible values for the fertilizer content, 0.0, 0.5, 1.0. It may or may not be beneficial to treat this a classification task.\"\n\n* Heerup, Kvium, Rembrandt, Sheriff\n\n\"The last 4 targets (cultivars: Heerup, Kvium, Rembrandt, Sheriff) are one-hot encoded and thus for each sample, one of these has a value of 1.0 and the other three are 0.0. Therefore it may also be beneficial to treat this a classification task and include this restriction in your models.\"\n\n\"Keep in mind the leaderboard metric is based on mean squared error, so rounding the targets to the nearest value (for fertilizer and cultivars) may reduce your score if the closest value is incorrect.\"\n\nhttps://www.kaggle.com/competitions/HyperLeaf2024/data","metadata":{}},{"cell_type":"markdown","source":"#Skew, Kurtosis","metadata":{}},{"cell_type":"code","source":"#By Serkan Peldek https://www.kaggle.com/code/serkanpeldek/elik-y-zey-kusurlar-n-n-s-n-fland-r-lmas/notebook\n\ndescribe=dataset.describe().T\n\n\"\"\"\ndescribe fonksiyonu yamukluk(skew) ve basıklık(kurtosis) değerlerini\nvermediği için kendimiz ekliyoruz\n\"\"\"\ndescribe['skew']=dataset.skew().values\ndescribe['kurtosis']=dataset.kurt().values\ndescribe=round(describe, 2)\ndescribe","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:24:49.631573Z","iopub.execute_input":"2024-03-25T16:24:49.632718Z","iopub.status.idle":"2024-03-25T16:24:49.676620Z","shell.execute_reply.started":"2024-03-25T16:24:49.632662Z","shell.execute_reply":"2024-03-25T16:24:49.675414Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Columns\n\nImageId - ID of the image, corresponds to filename in the images folder\n\nGrainWeight - measurement of yield\n\nGsw - stomatal conductance\n\nPhiPS2 - chlorophyll fluorescence\n\nFertilizer - fertilizer level (0.0, 0.5, or 1.0)\n\nHeerup - Heerup cultivar (0.0 or 1.0)\n\nKvium - Kvium cultivar (0.0 or 1.0)\n\nRembrandt - Rembrandt cultivar (0.0 or 1.0)\n\nSheriff - Sheriff cultivar (0.0 or 1.0)\n\nhttps://www.kaggle.com/competitions/HyperLeaf2024/data","metadata":{}},{"cell_type":"code","source":"#By Serkan Peldek https://www.kaggle.com/code/serkanpeldek/elik-y-zey-kusurlar-n-n-s-n-fland-r-lmas/notebook\n\ndataset.hist(figsize=(15,15))\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:25:41.265347Z","iopub.execute_input":"2024-03-25T16:25:41.265810Z","iopub.status.idle":"2024-03-25T16:25:43.069854Z","shell.execute_reply.started":"2024-03-25T16:25:41.265781Z","shell.execute_reply":"2024-03-25T16:25:43.068478Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#WSI (Whole Slide Image) with FiVE\n\nGeneralizable Whole Slide Image Classification with Fine-Grained Visual-Semantic Interaction\n\nAuthors: Hao Li, Ying Chen, Yifei Chen, Wenxian Yang, Bowen Ding, Yuchen Han, Liansheng Wang, Rongshan Yu - \nhttps://doi.org/10.48550/arXiv.2402.19326\n\n\"How to extract useful information from raw pathological reports to construct WSI report pairs is a key issue\"\n\n\"How to craft prompts to make full use of this semantic information to guide fine-grained feature learning is a challenging task.\"\n\n\"The authors  proposed a novel whole slide image classification method with Fine-grained Visual Semantic interaction termed as FiVE, which shows robust generalizability and efficiency in computation. Firstly, they obtained WSIs with non-standardized raw pathological reports from a public database. Collaborating with professional pathologists, they crafted a set of specialized prompts to standardize reports. Following this, the authors employed the large language model GPT-4 to automatically clean and\nstandardize the raw report data. In addition, they proposed the Task-specific Fine-grained Semantic (TFS) Module, which utilizes manually designed prompts to direct visual\nattention to specific pathological areas while constructing Fine-Grained Guidance to enhance the semantic relevance of model features.\n\n\" The contributions of this paper are summarized as follows:\n\n• \"The authors pioneered the utilization of the available WSI diagnostic reports with fine-grained guidance. The obtained fine-rained description labels lead to improved supervision by discriminating the visual appearances more precisely.\"\n\n• They introduced a novel Task-specific Fine-grained Semantics (TFS) Module to provide fine-grained guidance for model training, substantially improving the model’s generalization capabilities.\"\n\n• The authors implemented a patch sampling strategy on visual instances during training to enhance computational efficiency without significantly compromising accuracy,\nthereby optimizing the model’s training process.\"\n\nPROMPT LEARNING in VISION-LANGUAGE MODELS\n\nContext Optimization (CoOp)\n\n\"Drawing inspiration from prompt learning in natural language processing, some studies have proposed adapting Vision-Language models through end-to-end training of prompt tokens. CoOp (Context Optimization) enhanced CLIP for few-shot ransfer by optimizing a continuous array of prompt vectors within its language branch. Co-CoOp identified CoOp’s suboptimal performance on new classes and tackled the generalization issue by conditioning prompts directly on image instances.\"\n\n\"It was advocated for optimizing diverse sets of prompts by understanding their distribution. MaPLe (Multi-modal prompt learning) investigated the effectiveness of multi-modal prompt learning in order to improve alignment between vision and language representations. It was adopted a set of learnable adaption prompts and prepend them to the word tokens at higher transformer layers, efficiently fine-tuning LLaMA with less cost.\"\n\n\"Furthermore, in the context of WSI (Whole Slide Image) classification, prompts function as valuable adjuncts, enriching contextual information and semantic interpretation. The strategic utilization of prompts substantially improved model performance.\"\n\nDIAGNOSIS PROMPTS \n\n\"The authors introduced Diagnosis Prompts to guide the aggregation of instance features into bag-level features. They computed the similarity between the instance features and the given manual prompts, utilizing the similarity scores as weights W for feature aggregation to improve the task-specific relevance of the features. Here they utilized the identical manual prompts as those used to standardize the raw data.\"\n\n\"In addition, manual-designed prompts may have some flaws, potentially failing to comprehensively capture the specific morphological characteristics of the lesion, and the\nmodel struggles to generalize towards unseen classes due to the late fusion through the transformer layers. Besides, fine-tuning the model may not always be feasible as it requires training a large number of parameters. Particularly in the case of low-data regimes, where the availability of training data like whole slide images is extremely limited.\"\n\n\"LLaMA-Adapter and LLaMA-Adapter-v2 explore the way to efficient fine-tuning of Language Models and Vision-Language Models respectively. These approaches introduced the Adaptation Prompt to gradually acquire instructional knowledge. They adopted zero-initialized attention with gating mechanisms to ensure stable training in the early stages. Inspired by these methods, they introduced learnable continuous diagnosis prompts Ul to enrich the context information and make their model have stronger transferability.\"\n\n\"Different with the traditional context learning prompts method, their approach pays attention to the acquisition of prior knowledge, similar to the methodology employed in\nDetection Transformer (DETR). The authors aimed to acquire a set of appropriate query values to streamline subsequent feature screening processes, and can also quickly transfer to other tasks by fine-tuning this set of queries.\"\n\n\"In conclusion: they introduced FiVE (Fine-grained Visual Semantic), a novel framework that demonstrates robust generalization and strong transferability for WSI (Whole Slide Image) classification. Their work pioneers the use of non-standardized pathological reports and corresponding WSIs from public databases to develop VLM.\"\n\n\"To harness the intricacies and diversity present in these reports, they introduced the Task-specific Fine-grained Semantics (TFS) module. This module reconstructs fine-grained labels and corresponding diagnosis prompts during the training phase, while introducing diagnosis prompts, thereby enhancing themantic relevance of its features. Furthermore, considering that pathological visual patterns are redundantly distributed across tissue slices, we sample a subset of visual patches during training. Their results demonstrate the robust generalizability and computational efficiency of our proposed framework, which also exhibits strong zero-shot performance and is readily adaptable to other tasks with fine-tuning lightly.\"\n\n\"Moreover, they observed that asthe maximum number of sampled patches increases, the model’s performance consistently improves until it plateaus. They aspire to provide empirical insights and contribute to AI pathology research through their methodology.\"\n\nhttps://arxiv.org/abs/2402.19326","metadata":{}},{"cell_type":"code","source":"#By Lang Dang and Phúc Phan https://www.kaggle.com/code/theobs032/vietai-ibiohash-eda-query-and-gallery\n\nfrom PIL import Image\nimport torch\n\nfrom torch.utils.data import DataLoader\nfrom datasets import load_dataset, Dataset, Image\nfrom huggingface_hub import HfApi, HfFolder, notebook_login","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:33:27.363531Z","iopub.execute_input":"2024-03-25T16:33:27.364762Z","iopub.status.idle":"2024-03-25T16:33:27.370715Z","shell.execute_reply.started":"2024-03-25T16:33:27.364679Z","shell.execute_reply":"2024-03-25T16:33:27.369558Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\nprint(device)","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:34:38.724536Z","iopub.execute_input":"2024-03-25T16:34:38.725789Z","iopub.status.idle":"2024-03-25T16:34:38.731814Z","shell.execute_reply.started":"2024-03-25T16:34:38.725739Z","shell.execute_reply":"2024-03-25T16:34:38.730791Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Lang Dang and Phúc Phan https://www.kaggle.com/code/theobs032/vietai-ibiohash-eda-query-and-gallery\n\nquery_dir = '/kaggle/input/HyperLeaf2024/images/'\nfilenames = os.listdir(query_dir)\nfilepaths = [os.path.join(query_dir, filename) for filename in filenames]\nds_train = Dataset.from_dict({'image': filepaths}).cast_column('image', Image())\n\n# ds_train = ds_train['train']\nprint(ds_train)\nds_train[0]['image']","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:33:33.095891Z","iopub.execute_input":"2024-03-25T16:33:33.096861Z","iopub.status.idle":"2024-03-25T16:33:33.254191Z","shell.execute_reply.started":"2024-03-25T16:33:33.096819Z","shell.execute_reply":"2024-03-25T16:33:33.252962Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Lang Dang and Phúc Phan https://www.kaggle.com/code/theobs032/vietai-ibiohash-eda-query-and-gallery\n\nprint(\"Number of rows in dataset:\")\nprint(len(ds_train))\nprint(\"Number of categories in dataset: 1000 (given)\")","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:35:46.621110Z","iopub.execute_input":"2024-03-25T16:35:46.622455Z","iopub.status.idle":"2024-03-25T16:35:46.630236Z","shell.execute_reply.started":"2024-03-25T16:35:46.622400Z","shell.execute_reply":"2024-03-25T16:35:46.629062Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Lang Dang and Phúc Phan https://www.kaggle.com/code/theobs032/vietai-ibiohash-eda-query-and-gallery\n\ndef display_images():\n    '''Display randomly 25 images from the dataset'''\n    img_indices = np.random.randint(0, len(ds_train), 25)\n    \n    fig = plt.figure(figsize=(10,10))\n    fig.suptitle(\"Some examples of images of the dataset\", fontsize=16)\n    for i in range(25):\n        plt.subplot(5, 5, i+1)\n        plt.xticks([])\n        plt.yticks([])\n        plt.grid(False)\n        plt.imshow(ds_train[int(img_indices[i])]['image'], cmap=plt.cm.binary)\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:36:24.647266Z","iopub.execute_input":"2024-03-25T16:36:24.648167Z","iopub.status.idle":"2024-03-25T16:36:24.654972Z","shell.execute_reply.started":"2024-03-25T16:36:24.648134Z","shell.execute_reply":"2024-03-25T16:36:24.653939Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"display_images()","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:36:45.866204Z","iopub.execute_input":"2024-03-25T16:36:45.866978Z","iopub.status.idle":"2024-03-25T16:36:47.472876Z","shell.execute_reply.started":"2024-03-25T16:36:45.866945Z","shell.execute_reply":"2024-03-25T16:36:47.471698Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Why my images are black/grey??","metadata":{}},{"cell_type":"code","source":"ds_train[0]['image'].size","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:37:45.159546Z","iopub.execute_input":"2024-03-25T16:37:45.160682Z","iopub.status.idle":"2024-03-25T16:37:45.172446Z","shell.execute_reply.started":"2024-03-25T16:37:45.160638Z","shell.execute_reply":"2024-03-25T16:37:45.171037Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import rasterio as rio\nimport folium\nimport tifffile as tiff","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:40:27.240115Z","iopub.execute_input":"2024-03-25T16:40:27.241233Z","iopub.status.idle":"2024-03-25T16:40:28.008456Z","shell.execute_reply.started":"2024-03-25T16:40:27.241176Z","shell.execute_reply":"2024-03-25T16:40:28.007109Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Tryinf to see one tiff.","metadata":{}},{"cell_type":"code","source":"#Code by JyeSR https://www.kaggle.com/jyesawtellrickson/data-measurement-levels\n\nfrom skimage.io import imread\nimage = imread('/kaggle/input/HyperLeaf2024/images/00913.tiff')\nprint (image.shape)\nplt.imshow(image[:,:,2], cmap = 'terrain')#it was image[:,:, 0]\nplt.axes = False\nplt.title(\"HyperLeaf image\");","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:44:23.845687Z","iopub.execute_input":"2024-03-25T16:44:23.846904Z","iopub.status.idle":"2024-03-25T16:44:24.130948Z","shell.execute_reply.started":"2024-03-25T16:44:23.846858Z","shell.execute_reply":"2024-03-25T16:44:24.129611Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from PIL import Image","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:49:58.394622Z","iopub.execute_input":"2024-03-25T16:49:58.395744Z","iopub.status.idle":"2024-03-25T16:49:58.400834Z","shell.execute_reply.started":"2024-03-25T16:49:58.395678Z","shell.execute_reply":"2024-03-25T16:49:58.399721Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Code by Ritwek Khosla https://www.kaggle.com/vanvalkenberg/hubble-telescope-images/comments\n\ndef display_Image(path, save):\n    img1 = Image.open(path)\n    display(img1)\n    if save == True:\n        img1.save('hyperleaf.tiff')","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:52:31.460801Z","iopub.execute_input":"2024-03-25T16:52:31.461652Z","iopub.status.idle":"2024-03-25T16:52:31.467441Z","shell.execute_reply.started":"2024-03-25T16:52:31.461610Z","shell.execute_reply":"2024-03-25T16:52:31.466148Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"display_Image('/kaggle/input/HyperLeaf2024/images/00913.tiff',True)","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:52:36.893395Z","iopub.execute_input":"2024-03-25T16:52:36.893859Z","iopub.status.idle":"2024-03-25T16:52:36.907274Z","shell.execute_reply.started":"2024-03-25T16:52:36.893826Z","shell.execute_reply":"2024-03-25T16:52:36.905846Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"display_Image('/kaggle/input/HyperLeaf2024/images/00544.tiff',True)","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:53:41.258301Z","iopub.execute_input":"2024-03-25T16:53:41.258990Z","iopub.status.idle":"2024-03-25T16:53:41.284485Z","shell.execute_reply.started":"2024-03-25T16:53:41.258945Z","shell.execute_reply":"2024-03-25T16:53:41.283217Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"display_Image('/kaggle/input/HyperLeaf2024/images/02066.tiff',True)","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:54:36.842873Z","iopub.execute_input":"2024-03-25T16:54:36.843310Z","iopub.status.idle":"2024-03-25T16:54:36.870428Z","shell.execute_reply.started":"2024-03-25T16:54:36.843280Z","shell.execute_reply":"2024-03-25T16:54:36.869341Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Density","metadata":{}},{"cell_type":"code","source":"#By Serkan Peldek https://www.kaggle.com/code/serkanpeldek/elik-y-zey-kusurlar-n-n-s-n-fland-r-lmas/notebook\n\ndataset.plot(kind=\"density\", layout=(8,8), \n             subplots=True,sharex=False, sharey=False, figsize=(15,15))\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:46:31.354014Z","iopub.execute_input":"2024-03-25T16:46:31.354517Z","iopub.status.idle":"2024-03-25T16:46:34.513154Z","shell.execute_reply.started":"2024-03-25T16:46:31.354481Z","shell.execute_reply":"2024-03-25T16:46:34.511790Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_pd = pd.read_csv(\"/kaggle/input/HyperLeaf2024/train.csv\")\ntest_pd = pd.read_csv(\"/kaggle/input/HyperLeaf2024/test.csv\")","metadata":{"execution":{"iopub.status.busy":"2024-03-25T16:55:48.942113Z","iopub.execute_input":"2024-03-25T16:55:48.943260Z","iopub.status.idle":"2024-03-25T16:55:48.964360Z","shell.execute_reply.started":"2024-03-25T16:55:48.943205Z","shell.execute_reply":"2024-03-25T16:55:48.962984Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Test has only ImageId column","metadata":{}},{"cell_type":"code","source":"test_pd.head()","metadata":{"execution":{"iopub.status.busy":"2024-03-25T17:06:27.061356Z","iopub.execute_input":"2024-03-25T17:06:27.061912Z","iopub.status.idle":"2024-03-25T17:06:27.075795Z","shell.execute_reply.started":"2024-03-25T17:06:27.061872Z","shell.execute_reply":"2024-03-25T17:06:27.074057Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Competition Goal: Develop methods for whole-image hyperspectral regression\n\n\"The goal is to develop methods for whole-image hyperspectral regression. All leaves and associated measurements are collected from the same field with varying plot parameters. There are 1590 training images taken from 24 plots and 820 test images from an additional 12 plots. The goal is to build models using the image data to predict the 8 targets.\"\n\nSince it's the first time I read about \"Hyperspectral regression\". I had no idea about how to start it. Even on Kaggle I didn't read anything about this subject. Maybe, during the competition some Kaggler could share some valuable code.\n\nOn Google, there are plenty of information about Hyperspectral and Multispectral imaging though not the codes (hands-on).","metadata":{}},{"cell_type":"markdown","source":"#Acknowledgements:\n\nSerkan Peldek https://www.kaggle.com/code/serkanpeldek/elik-y-zey-kusurlar-n-n-s-n-fland-r-lmas/notebook\n\nLang Dang and Phúc Phan https://www.kaggle.com/code/theobs032/vietai-ibiohash-eda-query-and-gallery","metadata":{}}]}