{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Naïve baseline (based on curated data only)\n\nEstimate probabilities of labels based on their overall frequency in the dataset only."},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\nfrom lwlwrap import calculate_overall_lwlrap_sklearn\n\nfrom sklearn.preprocessing import MultiLabelBinarizer","execution_count":107,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Import data"},{"metadata":{"trusted":true},"cell_type":"code","source":"curated_df = pd.read_csv(\"../input/freesound-audio-tagging-2019/train_curated.csv\")\n#noisy_df = pd.read_csv(\"../input/freesound-audio-tagging-2019/train_noisy.csv\")\n\nsample_df = pd.read_csv(\"../input/freesound-audio-tagging-2019/sample_submission.csv\")\n\ndf = pd.concat([curated_df])","execution_count":108,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Encode labels"},{"metadata":{"trusted":true},"cell_type":"code","source":"mlb = MultiLabelBinarizer()\ntrue_labels = mlb.fit_transform(df['labels'].str.split(\",\"))\nall_classes = mlb.classes_","execution_count":109,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Sanity checking of lwlwrap\n\nThe overall lwlwrap score for a perfect submission should be 1:"},{"metadata":{"trusted":true},"cell_type":"code","source":"calculate_overall_lwlrap_sklearn(true_labels, true_labels)","execution_count":110,"outputs":[{"output_type":"execute_result","execution_count":110,"data":{"text/plain":"1.0"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"The overall lwlwrap for a submission of all 0:s ought to be low:"},{"metadata":{"trusted":true},"cell_type":"code","source":"calculate_overall_lwlrap_sklearn(true_labels, np.zeros_like(true_labels))","execution_count":111,"outputs":[{"output_type":"execute_result","execution_count":111,"data":{"text/plain":"0.016294332406120632"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Calculate probablities"},{"metadata":{"trusted":true},"cell_type":"code","source":"label_means = np.mean(true_labels, axis=0)\npredicted_labels = np.repeat([label_means], len(df), axis=0)","execution_count":112,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Estimate baseline score"},{"metadata":{"trusted":true},"cell_type":"code","source":"calculate_overall_lwlrap_sklearn(true_labels, predicted_labels)","execution_count":113,"outputs":[{"output_type":"execute_result","execution_count":113,"data":{"text/plain":"0.019273728461877405"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"Slight improvement over all 0:s."},{"metadata":{},"cell_type":"markdown","source":"## Generate baseline submission"},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_labels = np.repeat([label_means], len(sample_df), axis=0)\nsubmission = pd.DataFrame(submission_labels)\nsubmission.columns = mlb.classes_\nsubmission.insert(0, 'fname', sample_df['fname'])","execution_count":114,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.to_csv(\"submission.csv\", index=False)","execution_count":115,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}