{"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_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"lunana  \nlast update 2022 04 22  \nゆっくりしていってね！  ","metadata":{"id":"3aM8dNjwKVmY"}},{"cell_type":"markdown","source":"version 2 スペクトログラム追加  \nversion 3 +Trends  \nversion 4 Trends change","metadata":{}},{"cell_type":"markdown","source":"# Trends  \n* [BirdCLEF2022] EX005 f0 [Infer] LB=0.71 ( kaerururu )  \nhttps://www.kaggle.com/code/kaerunantoka/birdclef2022-ex005-f0-infer  \n* BirdCLEF2022 : use 2nd label f0 ( kaerururu )  \nhttps://www.kaggle.com/code/kaerunantoka/birdclef2022-use-2nd-label-f0  \n\n## Add test  \n* BirdCLEFF2022 use 2nd label f2 ゆっくり実況  \nhttps://www.kaggle.com/code/lunapandachan/birdclef2022-use-2nd-label-f2\n* BirdCLEF2022 kaerururu’s Infer addtest ゆっくり実況 LB=0.71 ( pixyz0130 )  \nfold0,1,2の3つでやったが変化なし  \nhttps://www.kaggle.com/code/pixyz0130/birdclef2022-kaerururu-s-infer-addtest  \n* BirdCLEF2022 : use 2nd label f1 ゆっくり実況 ( pixyz0130 )  \nhttps://www.kaggle.com/code/pixyz0130/birdclef2022-use-2nd-label-f1  \n","metadata":{}},{"cell_type":"markdown","source":"# Data list  \n* [**train_metadata.csv**](#train_metadata.csv)  \n* [**train_audio**](#train_audio)  \n* [**test.csv**](#test.csv)  \n* [**test_soundscapes**](#test_soundscapes)  \n* [**sample_submission.csv**](#sample_submission.csv)","metadata":{}},{"cell_type":"markdown","source":"**霊夢：今日は鳥の鳴き声のコンペだね。  \n魔理沙：まずは概要を読んでみよう。**\n\n**Reimu: Today is a bird song competition.  \nMarisa: First, let's read the overview.**","metadata":{"id":"PgIt2tfOKYvb"}},{"cell_type":"markdown","source":"「世界の絶滅の首都」として、ハワイは鳥類の68％を失い、その結果、食物連鎖全体に害を及ぼす可能性があります。研究者は、個体数モニタリングを使用して、在来の鳥が環境の変化や保護活動にどのように反応するかを理解しています。しかし、島全体に残っている鳥の多くは、アクセスが困難な標高の高い生息地に隔離されています。物理的な監視が難しいため、科学者は録音に目を向けています。生物音響モニタリングとして知られるこのアプローチは、絶滅危惧種の鳥の個体数を研究するための受動的で、労働力が少なく、費用効果の高い戦略を提供する可能性があります。\n\n\n<img src=\"https://storage.googleapis.com/kaggle-media/competitions/Birdsong/Screen%20Shot%202022-02-08%20at%202.04.09%20PM.png\" width=400>\n大規模な生物音響データセットを処理するための現在の方法には、各記録の手動注釈が含まれます。これには、専門的なトレーニングと非常に長い時間が必要です。ありがたいことに、機械学習の最近の進歩により、十分なトレーニングデータを使用して一般的な種の鳥の鳴き声を自動的に識別することが可能になりました。しかし、ハワイのような希少種や絶滅危惧種のためにそのようなツールを開発することは依然として困難です。\n\nコーネル大学鳥類学研究所のK.リサヤン保全生物音響センター（KLY-CCB）は、野生生物と生息地の保全を刺激し、情報を提供するために、複数の生態学的スケールにわたって革新的な保全技術を開発および適用しています。KLY-CCBは、自然界の音を収集して解釈することでこれを実現し、Google Bioacoustics Group、LifeCLEF、ハワイ大学ヒロ校のリスニングオブザーバトリー（LOHE）Bioacoustics Lab、Xeno-Cantoと協力しています。この競争。\n\nこのコンテストでは、機械学習スキルを使用して、鳥の種を音で識別します。具体的には、連続的な音声データを処理して、種を音響的に認識できるモデルを開発します。最良のエントリは、限られたトレーニングデータで信頼できる分類器をトレーニングできるようになります。\n\n成功すれば、生物音響学の進歩を助け、絶滅の危機に瀕しているハワイの鳥を保護するための継続的な研究を支援します。あなたの革新のおかげで、研究者や自然保護の実践者が人口の傾向を正確に調査することがより簡単になります。彼らは定期的かつより効果的に脅威を評価し、保護活動を調整することができます。","metadata":{"id":"qqlnWh3yKZ-R"}},{"cell_type":"markdown","source":"![https://1.bp.blogspot.com/-XGWZm_NFxkM/X8s6-bp96oI/AAAAAAABcmM/JsI47dBBPPYdSkPrl9TG4xVfE4r5f-DrgCNcBGAsYHQ/s400/bird_koajisashi_winter.png](https://1.bp.blogspot.com/-XGWZm_NFxkM/X8s6-bp96oI/AAAAAAABcmM/JsI47dBBPPYdSkPrl9TG4xVfE4r5f-DrgCNcBGAsYHQ/s400/bird_koajisashi_winter.png)","metadata":{}},{"cell_type":"markdown","source":"**魔理沙：次はtrainデータを見てみよう**\n\n**Marisa: Next, let's look at the train data**","metadata":{"id":"8eZi9TNGKdl3"}},{"cell_type":"markdown","source":"# train_metadata.csv","metadata":{}},{"cell_type":"markdown","source":"train_metadata.csv-トレーニングデータ用にさまざまなメタデータが提供されています。最も直接関連するフィールドは次のとおりです。\n\n* primary_label-鳥の種のコード。アメリカガラスhttps://ebird.org/species/　などにコードを追加することで、鳥のコードに関する詳細情報を確認できます。https://ebird.org/species/amecro\n* secondary_labels：記録者によって注釈が付けられた背景種。空のリストは、背景の鳥が聞こえないことを意味するものではありません。\n* author-録音を提供したeBirdユーザー。\n* filename：関連するオーディオファイル。\n* rating：Xeno-cantoの品質評価と背景種の数の指標としての0.0から5.0の間の浮動小数点値。ここで、5.0が最高で、1.0が最低です。0.0は、この録音にまだユーザー評価がないことを意味します。\n\ntrain_metadata.csv - A wide range of metadata is provided for the training data. The most directly relevant fields are:\n\n* primary_label - a code for the bird species. You can review detailed information about the bird codes by appending the code to https://ebird.org/species/, such as https://ebird.org/species/amecro for the American Crow.\n* secondary_labels: Background species as annotated by the recordist. An empty list does not mean that no background birds are audible.\n* author - the eBird user who provided the recording.\n* filename: the associated audio file.\n* rating: Float value between 0.0 and 5.0 as an indicator of the quality rating on Xeno-canto and the number of background species, where 5.0 is the highest and 1.0 is the lowest. 0.0 means that this recording has no user rating yet.","metadata":{"id":"Q2U_WmKrKxA0"}},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pylab as plt","metadata":{"id":"gjVvKrXcKs1o","execution":{"iopub.status.busy":"2022-04-11T13:11:01.312326Z","iopub.execute_input":"2022-04-11T13:11:01.312716Z","iopub.status.idle":"2022-04-11T13:11:01.341669Z","shell.execute_reply.started":"2022-04-11T13:11:01.312613Z","shell.execute_reply":"2022-04-11T13:11:01.340921Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_trainmeta = pd.read_csv(\"../input/birdclef-2022/train_metadata.csv\")\ndf_trainmeta.head()","metadata":{"id":"74V8FJWGK3cF","execution":{"iopub.status.busy":"2022-04-11T13:11:01.343136Z","iopub.execute_input":"2022-04-11T13:11:01.343393Z","iopub.status.idle":"2022-04-11T13:11:01.511751Z","shell.execute_reply.started":"2022-04-11T13:11:01.343361Z","shell.execute_reply":"2022-04-11T13:11:01.510848Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_trainmeta.describe()","metadata":{"id":"lK8RntkELDWW","execution":{"iopub.status.busy":"2022-04-11T13:11:01.513319Z","iopub.execute_input":"2022-04-11T13:11:01.513662Z","iopub.status.idle":"2022-04-11T13:11:01.547768Z","shell.execute_reply.started":"2022-04-11T13:11:01.513624Z","shell.execute_reply":"2022-04-11T13:11:01.547196Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(df_trainmeta)","metadata":{"id":"OG4ej4ohLJQT","execution":{"iopub.status.busy":"2022-04-11T13:11:01.549059Z","iopub.execute_input":"2022-04-11T13:11:01.549264Z","iopub.status.idle":"2022-04-11T13:11:01.554644Z","shell.execute_reply.started":"2022-04-11T13:11:01.549239Z","shell.execute_reply":"2022-04-11T13:11:01.553734Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(df_trainmeta['primary_label'].unique())","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:01.556816Z","iopub.execute_input":"2022-04-11T13:11:01.557335Z","iopub.status.idle":"2022-04-11T13:11:01.57113Z","shell.execute_reply.started":"2022-04-11T13:11:01.557286Z","shell.execute_reply":"2022-04-11T13:11:01.570501Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_trainmeta[\"primary_label\"].value_counts()","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:01.572255Z","iopub.execute_input":"2022-04-11T13:11:01.57264Z","iopub.status.idle":"2022-04-11T13:11:01.588762Z","shell.execute_reply.started":"2022-04-11T13:11:01.572611Z","shell.execute_reply":"2022-04-11T13:11:01.58784Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**魔理沙:いろんなグラフを書いてみよう。  \n霊夢:まずはprimary_labelのグラフを書いてみよう。**\n\n**Marisa: Let's draw various graphs.  \nReimu: First, let's draw a graph of primary_label.**","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(15, 60))\nplt.rcParams[\"font.size\"] = 18\nplt.barh(df_trainmeta.groupby(\"primary_label\").size()[::-1].index,df_trainmeta.groupby(\"primary_label\").size()[::-1],tick_label = df_trainmeta.groupby(\"primary_label\").size()[::-1].index)","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:01.590027Z","iopub.execute_input":"2022-04-11T13:11:01.59075Z","iopub.status.idle":"2022-04-11T13:11:04.103018Z","shell.execute_reply.started":"2022-04-11T13:11:01.590712Z","shell.execute_reply":"2022-04-11T13:11:04.101916Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**魔理沙:次はscientific_nameのグラフを書いてみよう。**  \n\n**Marisa: Next, let's draw a graph of scientific_name.**","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(15, 10))\nplt.rcParams[\"font.size\"] = 18\nplt.barh(df_trainmeta[\"scientific_name\"].value_counts().sort_values(ascending=True)[142:152].index,df_trainmeta[\"scientific_name\"].value_counts().sort_values(ascending=True)[142:152],tick_label = df_trainmeta[\"scientific_name\"].value_counts().sort_values(ascending=True)[142:152].index)","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:04.10427Z","iopub.execute_input":"2022-04-11T13:11:04.104487Z","iopub.status.idle":"2022-04-11T13:11:04.341097Z","shell.execute_reply.started":"2022-04-11T13:11:04.104462Z","shell.execute_reply":"2022-04-11T13:11:04.340223Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**霊夢:次はcommon_nameのグラフ。**\n\n**Reimu: Next is the graph of common_name.**","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(15, 10))\nplt.rcParams[\"font.size\"] = 18\nplt.barh(df_trainmeta[\"common_name\"].value_counts().sort_values(ascending=True)[142:152].index,df_trainmeta[\"common_name\"].value_counts().sort_values(ascending=True)[142:152],tick_label = df_trainmeta[\"common_name\"].value_counts().sort_values(ascending=True)[142:152].index)","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:04.342271Z","iopub.execute_input":"2022-04-11T13:11:04.342563Z","iopub.status.idle":"2022-04-11T13:11:04.576857Z","shell.execute_reply.started":"2022-04-11T13:11:04.342523Z","shell.execute_reply":"2022-04-11T13:11:04.575895Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**霊夢:ratingをグラフにしてみよう。**\n\n**Reimu: Let's graph the rating.**","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(15, 8))\nplt.hist(df_trainmeta['rating'],bins=11,range=(-0.25,5.25))\nplt.xticks([0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0])","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:04.578226Z","iopub.execute_input":"2022-04-11T13:11:04.578532Z","iopub.status.idle":"2022-04-11T13:11:04.835338Z","shell.execute_reply.started":"2022-04-11T13:11:04.578488Z","shell.execute_reply":"2022-04-11T13:11:04.834302Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# train_audio","metadata":{}},{"cell_type":"markdown","source":"**霊夢:train_audioを聞いてみよう**\n\n**Reimu: Let's listen to train_audio**","metadata":{}},{"cell_type":"markdown","source":"train_audio / -トレーニングデータの大部分は、 xenocanto.orgのユーザーによって寛大にアップロードされた個々の鳥の鳴き声の短い録音で構成されています。これらのファイルは、テストセットのオーディオと一致するように適用可能な場合は32 kHzにダウンサンプリングされ、ogg形式に変換されています。\n\ntrain_audio/ - The bulk of the training data consists of short recordings of individual bird calls generously uploaded by users of xenocanto.org. These files have been downsampled to 32 kHz where applicable to match the test set audio and converted to the ogg format.","metadata":{}},{"cell_type":"code","source":"import IPython.display as ipd","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:04.837572Z","iopub.execute_input":"2022-04-11T13:11:04.837819Z","iopub.status.idle":"2022-04-11T13:11:04.841574Z","shell.execute_reply.started":"2022-04-11T13:11:04.837785Z","shell.execute_reply":"2022-04-11T13:11:04.840944Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ipd.Audio(\"../input/birdclef-2022/train_audio/afrsil1/XC177993.ogg\")","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:04.842518Z","iopub.execute_input":"2022-04-11T13:11:04.842937Z","iopub.status.idle":"2022-04-11T13:11:04.900551Z","shell.execute_reply.started":"2022-04-11T13:11:04.842905Z","shell.execute_reply":"2022-04-11T13:11:04.89986Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ipd.Audio(\"../input/birdclef-2022/train_audio/akekee/XC174953.ogg\")","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:04.901633Z","iopub.execute_input":"2022-04-11T13:11:04.902053Z","iopub.status.idle":"2022-04-11T13:11:04.914545Z","shell.execute_reply.started":"2022-04-11T13:11:04.902004Z","shell.execute_reply":"2022-04-11T13:11:04.913548Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ipd.Audio(\"../input/birdclef-2022/train_audio/akepa1/XC122473.ogg\")","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:04.915655Z","iopub.execute_input":"2022-04-11T13:11:04.915919Z","iopub.status.idle":"2022-04-11T13:11:04.99999Z","shell.execute_reply.started":"2022-04-11T13:11:04.915887Z","shell.execute_reply":"2022-04-11T13:11:04.999001Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ipd.Audio(\"../input/birdclef-2022/train_audio/akiapo/XC122399.ogg\")","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:05.001833Z","iopub.execute_input":"2022-04-11T13:11:05.002351Z","iopub.status.idle":"2022-04-11T13:11:05.026847Z","shell.execute_reply.started":"2022-04-11T13:11:05.002298Z","shell.execute_reply":"2022-04-11T13:11:05.025948Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ipd.Audio(\"../input/birdclef-2022/train_audio/akikik/XC216038.ogg\")","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:05.028212Z","iopub.execute_input":"2022-04-11T13:11:05.028482Z","iopub.status.idle":"2022-04-11T13:11:05.076119Z","shell.execute_reply.started":"2022-04-11T13:11:05.028448Z","shell.execute_reply":"2022-04-11T13:11:05.07538Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**魔理沙:鳥以外の音も混ざっているから、聞き取りにくいね。**\n\n**Marisa: It's hard to hear because it contains sounds other than birds.**","metadata":{}},{"cell_type":"markdown","source":"![https://2.bp.blogspot.com/-fEZMcwbv65I/WhUiomrBz7I/AAAAAAABIUU/m3kA_xiy6Fg3QXxfi_QNqjxbF_2aJnx7ACLcBGAs/s450/tori_saeduri_sing_couple.png](https://2.bp.blogspot.com/-fEZMcwbv65I/WhUiomrBz7I/AAAAAAABIUU/m3kA_xiy6Fg3QXxfi_QNqjxbF_2aJnx7ACLcBGAs/s450/tori_saeduri_sing_couple.png)","metadata":{}},{"cell_type":"markdown","source":"# Converting audio 📻 spectogram","metadata":{}},{"cell_type":"code","source":"!pip install -q noisereduce","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:05.077139Z","iopub.execute_input":"2022-04-11T13:11:05.078099Z","iopub.status.idle":"2022-04-11T13:11:20.715928Z","shell.execute_reply.started":"2022-04-11T13:11:05.078049Z","shell.execute_reply":"2022-04-11T13:11:20.714747Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch\nimport torchaudio\nimport noisereduce as nr\nimport os\n\ndef create_spectrogram(fname, reduce_noise: bool = False, max_length = int(1e7), device = \"cpu\"):\n    waveform, sample_rate = torchaudio.load(fname)\n    waveform = waveform[0][:max_length]\n    transform = torchaudio.transforms.Spectrogram(n_fft=1800, win_length=1024).to(device)\n    if reduce_noise:\n        waveform = torch.tensor(nr.reduce_noise(y=waveform, sr=sample_rate, win_length=transform.win_length, use_tqdm=False, n_jobs=-1))\n    spectrogram = transform(waveform.to(device))\n    return torch.log(spectrogram).numpy()\n\nplt.figure(figsize=(50,50))\n\nfor i in range(4):\n    path_audio = os.path.join(\"../input/birdclef-2022/train_audio\", df_trainmeta[\"filename\"][i])\n    print(path_audio)\n    sg = create_spectrogram(path_audio, reduce_noise=True)\n    plt.subplot(2,2,i+1)\n    plt.imshow(sg)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:22:26.475124Z","iopub.execute_input":"2022-04-11T13:22:26.475791Z","iopub.status.idle":"2022-04-11T13:22:33.056222Z","shell.execute_reply.started":"2022-04-11T13:22:26.475749Z","shell.execute_reply":"2022-04-11T13:22:33.055139Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"霊夢:時間まちまちだからこんなもんか  \n魔理沙:切り取れば分別できそうかな","metadata":{}},{"cell_type":"markdown","source":"# test.csv","metadata":{}},{"cell_type":"markdown","source":"**霊夢:次はテストデータを見てみよう。**\n\n**Reimu: Next, let's look at the test data.**","metadata":{}},{"cell_type":"markdown","source":"test.csv-テストセットのメタデータ。最初の3行のみをダウンロードできます。完全なtest.csvは、非表示のテストセットで提供されます。\n\n* row_id-行の一意の識別子。\n* file_id-オーディオファイルの一意の識別子。\n* bird-行のebirdコード。オーディオファイルごとに5秒のウィンドウごとにスコアリングされた種ごとに1つの行があります。\n* end_time-5秒の時間枠の最後の1秒（5、10、15など）。\n\ntest.csv - Metadata for the test set. Only the first three rows are available for download; the full test.csv is provided in the hidden test set.\n\n* row_id - A unique identifier for the row.\n* file_id - A unique identifier for the audio file.\n* bird - The ebird code for the row. There is one row for each of the scored species per 5 second window per audio file.\n* end_time - The last second of the 5 second time window (5, 10, 15, etc).","metadata":{}},{"cell_type":"code","source":"df_test = pd.read_csv(\"../input/birdclef-2022/test.csv\")\ndf_test","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:24.780871Z","iopub.status.idle":"2022-04-11T13:11:24.781385Z","shell.execute_reply.started":"2022-04-11T13:11:24.781132Z","shell.execute_reply":"2022-04-11T13:11:24.781161Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**霊夢:テストdataのオーディオを聞いてみよう。**\n\n**Reimu:Let's listen to the audio of the test data.**","metadata":{}},{"cell_type":"markdown","source":"# test_soundscapes","metadata":{}},{"cell_type":"markdown","source":"test_soundscapes / -ノートブックを送信すると、test_soundscapesディレクトリには、スコアリングに使用される約5,500の録音が入力されます。これらはそれぞれ1分の長さの数ミリ秒以内で、oggオーディオ形式です。ダウンロードできるサウンドスケープは1つだけです。\n\ntest_soundscapes/ - When you submit a notebook, the test_soundscapes directory will be populated with approximately 5,500 recordings to be used for scoring. These are each within a few milliseconds of 1 minute long and in the ogg audio format. Only one soundscape is available for download.","metadata":{}},{"cell_type":"code","source":"ipd.Audio(\"../input/birdclef-2022/test_soundscapes/soundscape_453028782.ogg\")","metadata":{"execution":{"iopub.status.busy":"2022-04-11T13:11:24.782882Z","iopub.status.idle":"2022-04-11T13:11:24.783301Z","shell.execute_reply.started":"2022-04-11T13:11:24.78309Z","shell.execute_reply":"2022-04-11T13:11:24.783118Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# sample_submission.csv","metadata":{}},{"cell_type":"markdown","source":"**魔理沙：最後にsample_submissionを見てみよう**\n\n**Marisa: Finally, let's take a look at sample_submission.**","metadata":{"id":"ImOk5OYoN9UL"}},{"cell_type":"code","source":"sample_submission = pd.read_csv(\"../input/birdclef-2022/sample_submission.csv\")\nsample_submission","metadata":{"id":"p0maxlzeOFem","execution":{"iopub.status.busy":"2022-04-11T13:11:24.784948Z","iopub.status.idle":"2022-04-11T13:11:24.785307Z","shell.execute_reply.started":"2022-04-11T13:11:24.78514Z","shell.execute_reply":"2022-04-11T13:11:24.785158Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**霊夢:row_idの鳴き声が聞こえたらtrue、聞こえなかったらfalseを出力するんだね。**\n\n**Reimu: If you hear the row_id bark, it outputs true, and if you don't, it outputs false.**","metadata":{}}]}