{
  "fetched_at": "2026-10-20T04:16:37Z",
  "source_url": "https://www.kaggle.com/competitions/bdaio-2024-ace-the-grades/data",
  "pages": [
    {
      "name": "data-description",
      "content": "The dataset includes several features that capture different aspects of students' academic and extracurricular activities. Some of the features include\n\n- **Hours_Studied_Per_Week:** The average number of hours a student spends studying each week.\n- **Class_Attendance:** The percentage of classes attended by the student.\n- **Homework_Completed:** The percentage of homework assignments completed by the student.\n- **Part_Time_Job:** A binary indicator (1 or 0) indicating whether the student has a part-time job.\n- **Test_Score:** The target variable representing the students' final academic performance.\n\n\n## Files\n\n*   **train.csv** - the training set\n*   **test.csv** - the test set\n*   **sample_submission.csv** - a sample submission file in the correct format\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "Your task is to build predictive models that estimate the final marks of students based on these features. The goal is to create the most accurate predictions while providing insights into how different factors affect students' performance. \n\nThings to consider for improvement of the score. \n**Data Preprocessing**\nData preprocessing is essential for preparing data for analysis and modeling. It involves cleaning, transforming, and standardizing data to improve predictive model accuracy and performance. Two aspects discussed here include handling missing values and standardizing/normalizing data. Refer to the sklearn documentation for implementation techniques. \n\n**Handling Missing Values**\nMissing data can introduce bias and reduce the accuracy of a model if not handled properly. This is because most machine learning algorithms cannot handle missing values directly and may result in errors or incorrect predictions. Properly addressing missing values ensures that the dataset is complete and that the resulting model is robust and reliable.\n**Techniques:**\n**Imputation:**\n**Mean Imputation:** Replace missing values with the mean of the respective feature. This method is simple and effective when the data is normally distributed and missing values are randomly scattered. \n**Median Imputation: **Replace missing values with the median of the respective feature. Unlike the mean, the median is not affected by extremely large or small values. Outliers can significantly distort the mean, leading to incorrect imputed values. The median provides a more accurate central tendency for imputation.\n**Mode Imputation:** Replace missing values with the mode (most frequent value) of the respective feature. This method is particularly useful for categorical data.\n**Predicted Values:** Use machine learning algorithms to predict and fill in missing values based on other features. This method, known as predictive imputation. \nDeletion:\n**Row Deletion:** Remove rows with missing values if the proportion of missing data is relatively small and the missing values are not systematic. This method is simple but may result in loss of information.\nColumn Deletion: Remove entire columns with a high proportion of missing values. This method is used when a feature is missing in many instances.\n**Standardizing/Normalizing Data**\nStandardizing and normalizing data ensure that all features contribute equally to the model, preventing features with larger ranges from dominating. \n\n**StandardScaler: **StandardScaler transforms data to have a mean of zero and a standard deviation of one. This process, known as z-score normalization, centers the data and scales it to unit variance.\n**MinMaxScaler:** MinMaxScaler scales data to a fixed range, usually [0, 1]. This process, known as min-max normalization, adjusts the data to fit within the specified range by transforming each feature individually. \n\n**Model Selection and Regularization**\n**Analogy:**\nImagine you're trying to predict how well you will do on a test based on how many hours you study and how much sleep you get. You use a simple line (linear regression) to make this prediction, but sometimes this line can get too close to the specific details of the data you have, making it less accurate for new data. This problem is called ‘overfitting’. For example, let's say you have data like thi\n2 hours of study + 8 hours of sleep = 80% score\n3 hours of study + 7 hours of sleep = 85% score\n4 hours of study + 6 hours of sleep = 90% score\n\nYour line might twist to fit exactly through these points. But if you study 5 hours and sleep 5 hours, this squiggly line might give you a very wrong prediction because it fits too well to your specific data points. \n\nNow we can provide two types of regularization to prevent this. One is Ridge, another is Lasso. \n\nRidge regression prevents excessive curvature in the line, reducing overfitting risk. It does this by adding a penalty to the model based on the size of the coefficients (the numbers that describe how much each feature, like study hours or sleep hours, affects the prediction). From a technical point of view, it adds a penalty to the sum of the squared coefficient. This penalty prevents the coefficients from becoming too large, which keeps the line from getting too wiggly.\n\n```python\nfrom sklearn.linear_model import Ridge\n\nridge_model = Ridge(alpha=1.0)\nridge_model.fit(train_features, train_target)\n\npredicted_score_ridge = ridge_model.predict(test_data)\n\n```\n\nLasso Regression is similar to Ridge Regression but with a key difference: it can actually reduce some coefficients to zero. This means it can completely ignore some features if they don't contribute much to predicting the test score. Lasso Regression adds a penalty to the sum of the absolute values of the coefficients. This penalty can shrink some coefficients to zero, effectively selecting only the most important features.\n```python\n\nfrom sklearn.linear_model import Lasso\n\nlasso_model = Lasso(alpha=0.1)\nlasso_model.fit(train_features, train_target)\n\npredicted_score_lasso = lasso_model.predict(test_data)\n```\n\n\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "Your models will be evaluated using R-squared (R²)\n\n**R-squared (R²):** Measurement of how well the features explain the variance in students' final marks.\n\n\n\n\nThe submission file has to be in the following format.\n```python\nID,Predicted\n1,60.137147\n2,50.961699\n3,20.132178\n4,41.584383\n5,65.092526\n```\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "This is a page where you can include rules that participants must accept before joining. You may wish to include rules like:\n\n - Adoption of unfair means will result in disqualification\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "abstract",
      "content": "In this challenge, you will help predict the final marks of high school students based on various factors that influence their academic performance. The dataset provided includes information about students' study habits, class attendance, homework completion, and involvement in part-time jobs. Your goal is to develop models that can accurately predict their final marks, helping to identify the key factors that contribute to academic success.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}