{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.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":2606,"databundleVersionId":29654,"sourceType":"competition"}],"dockerImageVersionId":31192,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\n\ntest_path = \"/kaggle/input/WhatDoYouKnow/test.csv.gz\"\ntest = pd.read_csv(test_path, compression='gzip')\n\nprint(test.columns)\ntest.head()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-30T18:10:52.012265Z","iopub.execute_input":"2025-11-30T18:10:52.012585Z","iopub.status.idle":"2025-11-30T18:10:52.372921Z","shell.execute_reply.started":"2025-11-30T18:10:52.012559Z","shell.execute_reply":"2025-11-30T18:10:52.371950Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\n\ntrain_path = \"/kaggle/input/WhatDoYouKnow/training.csv.gz\"\ntrain = pd.read_csv(train_path, compression='gzip')\n\nprint(train.columns)\ntrain.head()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-30T18:03:55.586516Z","iopub.execute_input":"2025-11-30T18:03:55.587397Z","iopub.status.idle":"2025-11-30T18:04:14.464605Z","shell.execute_reply.started":"2025-11-30T18:03:55.587364Z","shell.execute_reply":"2025-11-30T18:04:14.463415Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nfrom lightgbm import LGBMClassifier\n\ntrain_path = \"/kaggle/input/WhatDoYouKnow/training.csv.gz\"\ntest_path = \"/kaggle/input/WhatDoYouKnow/test.csv.gz\"\n\ntrain = pd.read_csv(train_path, compression='gzip')\ntest = pd.read_csv(test_path, compression='gzip')\n\n# drop non-numeric / target / ID columns\ndrop_cols = [\n    \"correct\", \"user_id\", \"question_id\", \"date_of_test\",\n    \"tag_string\", \"round_started_at\", \"answered_at\", \"deactivated_at\"\n]\n\ntrain_features = [c for c in train.columns if c not in drop_cols and train[c].dtype in [\"int64\",\"float64\"]]\ntest_features = [c for c in train_features if c in test.columns]\n\nX_train = train[test_features]\ny_train = train[\"correct\"]\nX_test = test[test_features]\n\nmodel = LGBMClassifier(\n    n_estimators=300,\n    learning_rate=0.05,\n    max_depth=-1,\n    random_state=42\n)\nmodel.fit(X_train, y_train)\n\npreds = model.predict(X_test)\n\n# use user_id + question_id as unique identifier for submission\nsubmission = pd.DataFrame({\n    \"user_id\": test[\"user_id\"],\n    \"question_id\": test[\"question_id\"],\n    \"correct\": preds\n})\n\nsubmission.to_csv(\"submission_whatdoyouknow.csv\", index=False)\nsubmission.head()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-11-30T18:11:15.872456Z","iopub.execute_input":"2025-11-30T18:11:15.872836Z","iopub.status.idle":"2025-11-30T18:12:27.003492Z","shell.execute_reply.started":"2025-11-30T18:11:15.872808Z","shell.execute_reply":"2025-11-30T18:12:27.002600Z"}},"outputs":[],"execution_count":null}]}