{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Lab 3: Cross validation and feature encoding."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The data you will be using in this lab comes from a kaggle in class competition. The goal is to predict the number of shares an article will get on social media, from the article's topic, length, day of publication, and many other features.\n",
"\n",
"You are given labels, that is, number of shares, for 5000 of these articles. We will explore how to set up cross validation and do some feature encoding."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"%pylab inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. Model Selection: setting up a cross validation\n",
"\n",
"Cross-validation is a good way to perform model selection empirically while avoiding overfitting. \n",
"\n",
"This procedure can be split into the following two steps: \n",
"* the dataset is randomly split into K folds \n",
"* the model is run K times, each run using K-1 folds as the training set and evaluating the performance on the remaining fold which is the test set. \n",
"\n",
"Prediction performance are averaged over all folds. \n",
"\n",
"When the model contains parameters that need to be tuned, the CV scheme is repeated for all considered values of the hyperparameters, and those leading to the best prediction performance averaged on all folds are retained.\n",
"\n",
"Depending on the size of the dataset, 5 or 10 folds are usualy considered."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Question:__ In a K-fold cross-validation, how many times does each sample appear in a test set? In a training set? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Answer:__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Question:** Implement a function which splits the _indices_ of the training data in K folds."
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [],
"source": [
"def make_Kfolds(n_instance, n_folds):\n",
" \"\"\"\n",
" set up a K-fold croos-validation.\n",
" \n",
" Parameters:\n",
" -----------\n",
" n_instances: int\n",
" the number of instances in the dataset.\n",
" n_folds: int\n",
" the number of folds of the cross-validation scheme\n",
" \n",
" Outputs:\n",
" --------\n",
" fold_list: list\n",
" list of folds, a fold is a tuple of 2 lists, \n",
" the first one containing the indices of instances of the training set,\n",
" the second one containing the indices of instances of the test set\n",
" \"\"\"\n",
" # Create a list of the n_instance indices [0, 1, ..., n_instance-1]\n",
" list_indices = list(range(n_instance))\n",
" # Shuffle the list with np.random.shuffle\n",
" np.random.shuffle(list_indices)\n",
" \n",
" # Compute the number of instances per fold (i.e. in each test set)\n",
" n_instance_per_fold = n_instance // n_folds\n",
" print(n_instance_per_fold)\n",
" \n",
" # For each of the first K-1 folds, create the list of train set and test set indices\n",
" fold_list = []\n",
" for ind_fold in range(n_folds-1):\n",
" test_list = list_indices[ind_fold*n_instance_per_fold : (ind_fold+1)*n_instance_per_fold] # TODO\n",
" train_list = list_indices[:ind_fold*n_instance_per_fold] + list_indices[(ind_fold+1)*n_instance_per_fold:] # TODO\n",
" # TODO add the (train_list, test_list) tuple to fold_list\n",
" fold_list.append((train_list, test_list)) \n",
"\n",
" # Process the last fold separately\n",
" test_list = list_indices[(ind_fold+1)*n_instance_per_fold:] # TODO \n",
" train_list = list_indices[:(ind_fold+1)*n_instance_per_fold] # TODO \n",
" # TODO add the (train_list, test_list) tuple to fold_list \n",
" fold_list.append((train_list, test_list)) \n",
" \n",
" return fold_list"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"200\n",
"Fold 0\n",
"\t 801 training points\n",
"\t 200 test points\n",
"Fold 1\n",
"\t 801 training points\n",
"\t 200 test points\n",
"Fold 2\n",
"\t 801 training points\n",
"\t 200 test points\n",
"Fold 3\n",
"\t 801 training points\n",
"\t 200 test points\n",
"Fold 4\n",
"\t 800 training points\n",
"\t 201 test points\n"
]
}
],
"source": [
"# Check whether your function does what is expected\n",
"perso_folds = make_Kfolds(1001, 5)\n",
"\n",
"for ix, (tr, te) in enumerate(perso_folds):\n",
" print(\"Fold %d\" % ix)\n",
" print(\"\\t %d training points\" % len(tr))\n",
" print(\"\\t %d test points\" % len(te))\n",
" if len(np.intersect1d(tr, te))>0:\n",
" print('some instances are both in your training and test sets')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In practice, when using scikit-learn, you will not implement your cross-validation yourself, but rather rely on the library's functionalities for setting up cross-validation schemes. \n",
"\n",
"[Here](http://scikit-learn.org/stable/modules/classes.html#module-sklearn.model_selection) is the list of available tools in the scikit-learn library.\n",
"\n",
"We list here one of the most important ones:\n",
"* [K-fold](http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html#sklearn.model_selection.KFold): Provides train/test indices to split data in train/test sets by dataset into k consecutive folds (without shuffling by default). \n",
"* [stratified K-fold](http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html#sklearn.model_selection.StratifiedKFold) (to be used in case of classification): this cross-validation object is a variation of KFold that returns stratified folds. The folds are made by preserving the percentage of samples for each class.\n",
"\n",
"We will now explore the stratified K-fold on randomly generated data."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1\n",
" 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0\n",
" 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0\n",
" 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0\n",
" 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0\n",
" 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1\n",
" 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1\n",
" 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0\n",
" 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 1\n",
" 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0\n",
" 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0\n",
" 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0\n",
" 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1\n",
" 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1\n",
" 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0\n",
" 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1\n",
" 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 0\n",
" 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0\n",
" 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1\n",
" 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1\n",
" 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1\n",
" 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1\n",
" 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1\n",
" 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0\n",
" 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0\n",
" 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0\n",
" 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0\n",
" 0]\n"
]
}
],
"source": [
"# Generate random data\n",
"n_instances, n_features = 1000, 7\n",
"# Design matrix\n",
"X = np.random.random((n_instances, n_features))\n",
"# Classification labels\n",
"y = np.where(np.random.random(n_instances) >=0.5, 1, 0)\n",
"print(y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Question:** Using scikit-learn, set up a stratified 10-fold cross-validation for the above data."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"from sklearn import model_selection\n",
"# Initialize a StratifiedKFold object \n",
"skf = model_selection.StratifiedKFold()\n",
"# Split the data using skf\n",
"sk_folds = skf.split(X,y)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fold 0\n",
"\t 800 training points\n",
"\t 200 test points\n",
"Fold 1\n",
"\t 800 training points\n",
"\t 200 test points\n",
"Fold 2\n",
"\t 800 training points\n",
"\t 200 test points\n",
"Fold 3\n",
"\t 800 training points\n",
"\t 200 test points\n",
"Fold 4\n",
"\t 800 training points\n",
"\t 200 test points\n"
]
}
],
"source": [
"# This is one way to access the training and test points\n",
"for ix, (tr, te) in enumerate(sk_folds):\n",
" print(\"Fold %d\" % ix)\n",
" print(\"\\t %d training points\" % len(tr))\n",
" print(\"\\t %d test points\" % len(te))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Important note:__ `sk_folds` is a [_generator_](https://wiki.python.org/moin/Generators), meaning that once you are done looping through it, it will be empty. In practice it avoids storing all the indices (if you were doing 10-fold cross-validation on a million sample, you would have $10^7$ values to store)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Question:** Create a cross-validation function that takes a design matrix, label array, scikit-learn classifier, and scikit-learn cross_validation object and returns the corresponding list of cross-validated predictions. \n",
"\n",
"The function contains a loop that goes through all folds and for each fold:\n",
"* trains a model on the training data\n",
"* uses this model to make predictions on the test data. \n",
"In this fashion you should be able to form *a single vector of predictions* `y_prob_cv` (as each point from the data appears once as a test point in the cross-validation).\n",
"\n",
"Make sure that you are returning the predictions in the correct order!\n",
"\n",
"Check the documentation of fit(X, y) and predict_proba(X) in [sklearn.naive_bayes.GaussianNB](http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.GaussianNB.html). Every classifier implemented in scikit-learn has a fit(X,y) and a predict_proba(X) methods. \n",
"Note that the predict_proba methods returns a 2 dimentional array, you must find a way to only keep the probability to belong to the positive class."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"def cross_validate(design_matrix, labels, classifier, cv_folds):\n",
" \"\"\" Perform a cross-validation and returns the predictions.\n",
" \n",
" Parameters:\n",
" -----------\n",
" design_matrix: (n_samples, n_features) np.array\n",
" Design matrix for the experiment.\n",
" labels: (n_samples, ) np.array\n",
" Vector of labels.\n",
" classifier: sklearn classifier object\n",
" Classifier instance; must have the following methods:\n",
" - fit(X, y) to train the classifier on the data X, y\n",
" - predict_proba(X) to apply the trained classifier to the data X and return probability estimates \n",
" cv_folds: sklearn cross-validation object\n",
" Cross-validation iterator.\n",
" \n",
" Return:\n",
" -------\n",
" pred: (n_samples, ) np.array\n",
" Vectors of predictions (same order as labels).\n",
" \"\"\"\n",
" pred = np.zeros(labels.shape)\n",
" for tr, te in cv_folds:\n",
" # TODO\n",
" classifier.fit(design_matrix[tr,:], labels[tr])\n",
" pred[te] = classifier.predict_proba(design_matrix[te,:])[:,1]\n",
" return pred"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1000\n",
"1000\n",
"0.478\n"
]
}
],
"source": [
"# To check whether your function runs properly, you can use the following\n",
"\n",
"# import Gaussian Naive Bayes\n",
"from sklearn.naive_bayes import GaussianNB\n",
"from sklearn import metrics\n",
"\n",
"# create a GNB classifier\n",
"gnb = GaussianNB()\n",
"\n",
"# run your cross_validate function\n",
"y_prob_cv = cross_validate(X, y, gnb, sk_folds)\n",
"\n",
"# check y and y_prob_cv have the same length (the number of instance)\n",
"print(len(y_prob_cv))\n",
"print(len(y))\n",
"\n",
"# check the accuracy of your prediction (it should be close to 0.5 as we're considering random matrices). \n",
"print(metrics.accuracy_score(y, np.where(y_prob_cv>=0.5, 1, 0)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Extensions **\n",
"* **Leave-one-out cross-validation: ** in this case, the number of folds is the number of available points in the dataset. To say it differently, the model is trained K times on K-1 points, and tested on the left out point. The LOO CV scheme is particularly convenient when the number of samples is very small. When the number of samples is large, it becomes computationally burdensome; moreover the cross-validated error tends to have a very large variance which makes it hard to interpret.\n",
"\n",
"* **Nested-cross-validation: ** The goal of the cross validation scheme is to assess the performance of the model on _new_ data which were not used to train or optimize the model. From that perspective, the CV scheme is not rigorous when optimizing hyperparameters. Indeed, the test data are both used to assess the performance and choosing the set of parameters which led to that best performance. To avoid selecting a possibly over-fitted set of parameters, we also used the so-called nested cross validation (_Nested CV_) scheme which consists in a cross validation (_inner-CV_) nested in a other cross validation (_outer-CV_). At each step of the _outer-CV_, the optimal parameters are found via the _inner-CV_ on the train set of the _outer-CV_, and the performance is assessed on the remaining test fold of the _outer-CV_ Therefore, in _Nested CV_, parameter optimization and performance assessment are performed on different _unseen_ data.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. Data loading and visualization\n",
"\n",
"Download the data from the competition link and unzip it."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'nb_words_title' Number of words in the article's titles\n",
"'nb_words_content' Number of words in the article\n",
"'pp_uniq_words' Proportion of unique words in the article\n",
"'pp_stop_words' Proportion of stop words (i.e. words predefined to be too common to be of use for interpretation or queries, such as 'the', 'a', 'and', etc.)\n",
"'pp_uniq_non-stop_words' Proportion of non-stop words among unique words\n",
"'nb_links' Number of hyperlinks in the article\n",
"'nb_outside_links' Number of hyperlinks pointing to another website\n",
"'nb_images' Number of images in the article\n",
"'nb_videos' Number of videos in the article\n",
"'ave_word_length' Average word length\n",
"'nb_keywords' Number of keywords in the metadata\n",
"'category' Category of the article: 0-Lifestyle, 1-Entertainment, 2-Business, 3-Web, 4-Tech, 5-World\n",
"'nb_mina_mink' Minimum number of share counts among all articles with at least one keyword in common with the article\n",
"'nb_mina_maxk' Minimum number of maximum share counts per keyword\n",
"'nb_mina_avek' Minimum number of average share counts per keyword\n",
"'nb_maxa_mink' Maximum number of minimum share counts per keyword\n",
"'nb_maxa_maxk' Maximum number of share counts among all articles with at least one keyword in common with the article\n",
"'nb_maxa_avek' Maximum number of average share counts per keyword\n",
"'nb_avea_mink' Average number of minimum share counts per keyword\n",
"'nb_avea_maxk' Average number of maximum share counts per keyword\n",
"'nb_avea_avek' Average number of average share counts per keyword\n",
"'nb_min_linked' Minimum number of shares of articles from the same website linked within the article\n",
"'nb_max_linked' Maximum number of shares of articles from the same website linked within the article\n",
"'nb_ave_linked' Average number of shares of articles from the same website linked within the article\n",
"'weekday' Day of the week: 0-Monday, 1-Tuesday, 2-Wednesday, until 6-Sunday\n",
"'dist_topic_0' Distance to topic 0\n",
"'dist_topic_1' Distance to topic 1\n",
"'dist_topic_2' Distance to topic 2\n",
"'dist_topic_3' Distance to topic 3\n",
"'dist_topic_4' Distance to topic 4\n",
"'subj' Subjectivity\n",
"'polar' Sentiment polarity \n",
"'pp_pos_words' Proportion of positive words in the article\n",
"'pp_neg_words' Proportion of negative words in the article\n",
"'pp_pos_words_in_nonneutral' Proportion of positive words among the non-neutral words of the article\n",
"'ave_polar_pos' Average sentiment polarity of the positive words\n",
"'min_polar_pos' Minimum sentiment polarity of the positive words\n",
"'max_polar_pos' Maximum sentiment polarity of the positive words\n",
"'ave_polar_neg' Average sentiment polarity of the negative words\n",
"'min_polar_neg' Mimimum sentiment polarity of the negative words\n",
"'max_polar_neg' Maximum sentiment polarity of the negative words\n",
"'subj_title' Subjectivity of the title\n",
"'polar_title' Polarity of the title\n"
]
}
],
"source": [
"# we display the description of the features\n",
"!cat data/kaggle_data/features.txt"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/wbader/miniconda3/envs/tp-ml/lib/python3.6/site-packages/ipykernel_launcher.py:2: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.\n",
" \n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
feature_names
\n",
"
feature_description
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
'nb_words_title'
\n",
"
Number of words in the article's titles
\n",
"
\n",
"
\n",
"
1
\n",
"
'nb_words_content'
\n",
"
Number of words in the article
\n",
"
\n",
"
\n",
"
2
\n",
"
'pp_uniq_words'
\n",
"
Proportion of unique words in the article
\n",
"
\n",
"
\n",
"
3
\n",
"
'pp_stop_words'
\n",
"
Proportion of stop words (i.e. words predefine...
\n",
"
\n",
"
\n",
"
4
\n",
"
'pp_uniq_non-stop_words'
\n",
"
Proportion of non-stop words among unique words
\n",
"
\n",
"
\n",
"
5
\n",
"
'nb_links'
\n",
"
Number of hyperlinks in the article
\n",
"
\n",
"
\n",
"
6
\n",
"
'nb_outside_links'
\n",
"
Number of hyperlinks pointing to another website
\n",
"
\n",
"
\n",
"
7
\n",
"
'nb_images'
\n",
"
Number of images in the article
\n",
"
\n",
"
\n",
"
8
\n",
"
'nb_videos'
\n",
"
Number of videos in the article
\n",
"
\n",
"
\n",
"
9
\n",
"
'ave_word_length'
\n",
"
Average word length
\n",
"
\n",
"
\n",
"
10
\n",
"
'nb_keywords'
\n",
"
Number of keywords in the metadata
\n",
"
\n",
"
\n",
"
11
\n",
"
'category'
\n",
"
Category of the article: 0-Lifestyle, 1-Entert...
\n",
"
\n",
"
\n",
"
12
\n",
"
'nb_mina_mink'
\n",
"
Minimum number of share counts among all artic...
\n",
"
\n",
"
\n",
"
13
\n",
"
'nb_mina_maxk'
\n",
"
Minimum number of maximum share counts per key...
\n",
"
\n",
"
\n",
"
14
\n",
"
'nb_mina_avek'
\n",
"
Minimum number of average share counts per key...
\n",
"
\n",
"
\n",
"
15
\n",
"
'nb_maxa_mink'
\n",
"
Maximum number of minimum share counts per key...
\n",
"
\n",
"
\n",
"
16
\n",
"
'nb_maxa_maxk'
\n",
"
Maximum number of share counts among all artic...
\n",
"
\n",
"
\n",
"
17
\n",
"
'nb_maxa_avek'
\n",
"
Maximum number of average share counts per key...
\n",
"
\n",
"
\n",
"
18
\n",
"
'nb_avea_mink'
\n",
"
Average number of minimum share counts per key...
\n",
"
\n",
"
\n",
"
19
\n",
"
'nb_avea_maxk'
\n",
"
Average number of maximum share counts per key...
\n",
"
\n",
"
\n",
"
20
\n",
"
'nb_avea_avek'
\n",
"
Average number of average share counts per key...
\n",
"
\n",
"
\n",
"
21
\n",
"
'nb_min_linked'
\n",
"
Minimum number of shares of articles from the ...
\n",
"
\n",
"
\n",
"
22
\n",
"
'nb_max_linked'
\n",
"
Maximum number of shares of articles from the ...
\n",
"
\n",
"
\n",
"
23
\n",
"
'nb_ave_linked'
\n",
"
Average number of shares of articles from the ...
\n",
"
\n",
"
\n",
"
24
\n",
"
'weekday'
\n",
"
Day of the week: 0-Monday, 1-Tuesday, 2-Wednes...
\n",
"
\n",
"
\n",
"
25
\n",
"
'dist_topic_0'
\n",
"
Distance to topic 0
\n",
"
\n",
"
\n",
"
26
\n",
"
'dist_topic_1'
\n",
"
Distance to topic 1
\n",
"
\n",
"
\n",
"
27
\n",
"
'dist_topic_2'
\n",
"
Distance to topic 2
\n",
"
\n",
"
\n",
"
28
\n",
"
'dist_topic_3'
\n",
"
Distance to topic 3
\n",
"
\n",
"
\n",
"
29
\n",
"
'dist_topic_4'
\n",
"
Distance to topic 4
\n",
"
\n",
"
\n",
"
30
\n",
"
'subj'
\n",
"
Subjectivity
\n",
"
\n",
"
\n",
"
31
\n",
"
'polar'
\n",
"
Sentiment polarity
\n",
"
\n",
"
\n",
"
32
\n",
"
'pp_pos_words'
\n",
"
Proportion of positive words in the article
\n",
"
\n",
"
\n",
"
33
\n",
"
'pp_neg_words'
\n",
"
Proportion of negative words in the article
\n",
"
\n",
"
\n",
"
34
\n",
"
'pp_pos_words_in_nonneutral'
\n",
"
Proportion of positive words among the non-neu...
\n",
"
\n",
"
\n",
"
35
\n",
"
'ave_polar_pos'
\n",
"
Average sentiment polarity of the positive words
\n",
"
\n",
"
\n",
"
36
\n",
"
'min_polar_pos'
\n",
"
Minimum sentiment polarity of the positive words
\n",
"
\n",
"
\n",
"
37
\n",
"
'max_polar_pos'
\n",
"
Maximum sentiment polarity of the positive words
\n",
"
\n",
"
\n",
"
38
\n",
"
'ave_polar_neg'
\n",
"
Average sentiment polarity of the negative words
\n",
"
\n",
"
\n",
"
39
\n",
"
'min_polar_neg'
\n",
"
Mimimum sentiment polarity of the negative words
\n",
"
\n",
"
\n",
"
40
\n",
"
'max_polar_neg'
\n",
"
Maximum sentiment polarity of the negative words
\n",
"
\n",
"
\n",
"
41
\n",
"
'subj_title'
\n",
"
Subjectivity of the title
\n",
"
\n",
"
\n",
"
42
\n",
"
'polar_title'
\n",
"
Polarity of the title
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" feature_names \\\n",
"0 'nb_words_title' \n",
"1 'nb_words_content' \n",
"2 'pp_uniq_words' \n",
"3 'pp_stop_words' \n",
"4 'pp_uniq_non-stop_words' \n",
"5 'nb_links' \n",
"6 'nb_outside_links' \n",
"7 'nb_images' \n",
"8 'nb_videos' \n",
"9 'ave_word_length' \n",
"10 'nb_keywords' \n",
"11 'category' \n",
"12 'nb_mina_mink' \n",
"13 'nb_mina_maxk' \n",
"14 'nb_mina_avek' \n",
"15 'nb_maxa_mink' \n",
"16 'nb_maxa_maxk' \n",
"17 'nb_maxa_avek' \n",
"18 'nb_avea_mink' \n",
"19 'nb_avea_maxk' \n",
"20 'nb_avea_avek' \n",
"21 'nb_min_linked' \n",
"22 'nb_max_linked' \n",
"23 'nb_ave_linked' \n",
"24 'weekday' \n",
"25 'dist_topic_0' \n",
"26 'dist_topic_1' \n",
"27 'dist_topic_2' \n",
"28 'dist_topic_3' \n",
"29 'dist_topic_4' \n",
"30 'subj' \n",
"31 'polar' \n",
"32 'pp_pos_words' \n",
"33 'pp_neg_words' \n",
"34 'pp_pos_words_in_nonneutral' \n",
"35 'ave_polar_pos' \n",
"36 'min_polar_pos' \n",
"37 'max_polar_pos' \n",
"38 'ave_polar_neg' \n",
"39 'min_polar_neg' \n",
"40 'max_polar_neg' \n",
"41 'subj_title' \n",
"42 'polar_title' \n",
"\n",
" feature_description \n",
"0 Number of words in the article's titles \n",
"1 Number of words in the article \n",
"2 Proportion of unique words in the article \n",
"3 Proportion of stop words (i.e. words predefine... \n",
"4 Proportion of non-stop words among unique words \n",
"5 Number of hyperlinks in the article \n",
"6 Number of hyperlinks pointing to another website \n",
"7 Number of images in the article \n",
"8 Number of videos in the article \n",
"9 Average word length \n",
"10 Number of keywords in the metadata \n",
"11 Category of the article: 0-Lifestyle, 1-Entert... \n",
"12 Minimum number of share counts among all artic... \n",
"13 Minimum number of maximum share counts per key... \n",
"14 Minimum number of average share counts per key... \n",
"15 Maximum number of minimum share counts per key... \n",
"16 Maximum number of share counts among all artic... \n",
"17 Maximum number of average share counts per key... \n",
"18 Average number of minimum share counts per key... \n",
"19 Average number of maximum share counts per key... \n",
"20 Average number of average share counts per key... \n",
"21 Minimum number of shares of articles from the ... \n",
"22 Maximum number of shares of articles from the ... \n",
"23 Average number of shares of articles from the ... \n",
"24 Day of the week: 0-Monday, 1-Tuesday, 2-Wednes... \n",
"25 Distance to topic 0 \n",
"26 Distance to topic 1 \n",
"27 Distance to topic 2 \n",
"28 Distance to topic 3 \n",
"29 Distance to topic 4 \n",
"30 Subjectivity \n",
"31 Sentiment polarity \n",
"32 Proportion of positive words in the article \n",
"33 Proportion of negative words in the article \n",
"34 Proportion of positive words among the non-neu... \n",
"35 Average sentiment polarity of the positive words \n",
"36 Minimum sentiment polarity of the positive words \n",
"37 Maximum sentiment polarity of the positive words \n",
"38 Average sentiment polarity of the negative words \n",
"39 Mimimum sentiment polarity of the negative words \n",
"40 Maximum sentiment polarity of the negative words \n",
"41 Subjectivity of the title \n",
"42 Polarity of the title "
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature_data = pd.read_csv('data/kaggle_data/features.txt', header=None, sep=\" \",\n",
" names=['feature_names', 'feature_description'])\n",
"feature_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Now, let's load and look at the distribution of number of shares (output). **"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" feature_names \\\n",
"0 'nb_words_title' \n",
"1 'nb_words_content' \n",
"2 'pp_uniq_words' \n",
"3 'pp_stop_words' \n",
"4 'pp_uniq_non-stop_words' \n",
"5 'nb_links' \n",
"6 'nb_outside_links' \n",
"7 'nb_images' \n",
"8 'nb_videos' \n",
"9 'ave_word_length' \n",
"10 'nb_keywords' \n",
"11 'category' \n",
"12 'nb_mina_mink' \n",
"13 'nb_mina_maxk' \n",
"14 'nb_mina_avek' \n",
"15 'nb_maxa_mink' \n",
"16 'nb_maxa_maxk' \n",
"17 'nb_maxa_avek' \n",
"18 'nb_avea_mink' \n",
"19 'nb_avea_maxk' \n",
"20 'nb_avea_avek' \n",
"21 'nb_min_linked' \n",
"22 'nb_max_linked' \n",
"23 'nb_ave_linked' \n",
"24 'weekday' \n",
"25 'dist_topic_0' \n",
"26 'dist_topic_1' \n",
"27 'dist_topic_2' \n",
"28 'dist_topic_3' \n",
"29 'dist_topic_4' \n",
"30 'subj' \n",
"31 'polar' \n",
"32 'pp_pos_words' \n",
"33 'pp_neg_words' \n",
"34 'pp_pos_words_in_nonneutral' \n",
"35 'ave_polar_pos' \n",
"36 'min_polar_pos' \n",
"37 'max_polar_pos' \n",
"38 'ave_polar_neg' \n",
"39 'min_polar_neg' \n",
"40 'max_polar_neg' \n",
"41 'subj_title' \n",
"42 'polar_title' \n",
"\n",
" feature_description \n",
"0 Number of words in the article's titles \n",
"1 Number of words in the article \n",
"2 Proportion of unique words in the article \n",
"3 Proportion of stop words (i.e. words predefine... \n",
"4 Proportion of non-stop words among unique words \n",
"5 Number of hyperlinks in the article \n",
"6 Number of hyperlinks pointing to another website \n",
"7 Number of images in the article \n",
"8 Number of videos in the article \n",
"9 Average word length \n",
"10 Number of keywords in the metadata \n",
"11 Category of the article: 0-Lifestyle, 1-Entert... \n",
"12 Minimum number of share counts among all artic... \n",
"13 Minimum number of maximum share counts per key... \n",
"14 Minimum number of average share counts per key... \n",
"15 Maximum number of minimum share counts per key... \n",
"16 Maximum number of share counts among all artic... \n",
"17 Maximum number of average share counts per key... \n",
"18 Average number of minimum share counts per key... \n",
"19 Average number of maximum share counts per key... \n",
"20 Average number of average share counts per key... \n",
"21 Minimum number of shares of articles from the ... \n",
"22 Maximum number of shares of articles from the ... \n",
"23 Average number of shares of articles from the ... \n",
"24 Day of the week: 0-Monday, 1-Tuesday, 2-Wednes... \n",
"25 Distance to topic 0 \n",
"26 Distance to topic 1 \n",
"27 Distance to topic 2 \n",
"28 Distance to topic 3 \n",
"29 Distance to topic 4 \n",
"30 Subjectivity \n",
"31 Sentiment polarity \n",
"32 Proportion of positive words in the article \n",
"33 Proportion of negative words in the article \n",
"34 Proportion of positive words among the non-neu... \n",
"35 Average sentiment polarity of the positive words \n",
"36 Minimum sentiment polarity of the positive words \n",
"37 Maximum sentiment polarity of the positive words \n",
"38 Average sentiment polarity of the negative words \n",
"39 Mimimum sentiment polarity of the negative words \n",
"40 Maximum sentiment polarity of the negative words \n",
"41 Subjectivity of the title \n",
"42 Polarity of the title "
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Now, let's load and visualize the features. **"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pandas import plotting\n",
"plotting.scatter_matrix(train_data.get([\"nb_words_content\", \"pp_uniq_words\"]), alpha=0.2,\n",
" figsize=(6, 6), diagonal='kde')"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/wbader/miniconda3/envs/tp-ml/lib/python3.6/site-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
" FutureWarning\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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jZkzZxqzZ89uMgupsLDQmDNnjjFz5kzjN7/5jREMBrsUz7p164yRI0caF154oTFv3jxj3rx5xqpVq2IWU1FRkTF//nzjwgsvNObMmWP86U9/MgzDiOlr1GDt2rXh2YmxjGf//v3G3Llzjblz5xrf/va3wz+vsYxp69atxne+8x3jwgsvNG688Uajqqoq5t8zl8tlnHrqqUZNTU34sVjG9PjjjxvnnXeeMWfOHOOWW24xvF5vzF+j44FsxSKEEKLPknKiEEKIPkuSmBBCiD5LkpgQQog+S5KYEEKIPkuSmBBCiD5LkpgQQog+S5KY6BMuv/xyvv76634bw7Jly3C73V1+/ueff86GDRuiGJEQ8UGSmBCtCAQCsQ6hieeff75bSeyLL75g48aNUYxIiPhginUAQjR28OBBrr/+eiZNmsTGjRvJycnhySefBODNN9/k/vvvx+l08sADDzBu3LhWzzF37lxeeuklkpKSmDp1ari7+q233sp3vvMdJk2axK9//Ws2b96MpmncfvvtTJ06lX/+85+sWrUKn8+Hy+Vi6dKl3HHHHezcuZNhw4bh8XiAUJf9X/3qV2zevBlFUbj44ou56qqrWo1l37593HPPPVRUVKBpGo8//jgFBQU88sgjfPTRRyiKwo033si3v/1tPv/8c5544gnS0tLYvn07Y8aM4dFHH+WFF16gtLSUK6+8ktTUVF544QU+/vhj/vSnP+Hz+SgoKODBBx8kMTGRGTNmsGDBAj788EMCgQB/+MMfsFqt/O1vf0NVVd58803uuusuJk+e3CPfPyF6XaxbhgjR2IEDB4zRo0cbW7duNQwjtHng8uXLjcsuu8z41a9+ZRhGaGPRxpuKNnfXXXcZH374ofHNN98YF110Ufh5s2bNMpxOp/HXv/7VuP322w3DMIydO3ca06ZNMzwej/H6668bZ511Vrj1zzPPPBM+rqioyBg9erRRWFhofP3118ZVV10Vvl51dXWbsSxcuNB47733DMMwDI/HY7hcLuPdd981rrrqKiMQCBhHjx41pk2bZpSUlBhr1641Jk6caBw5csTQdd347ne/a6xbt84wjKabYJaXlxvf//73jbq6OsMwQpspNrTnOuecc4znn3/eMAzDePHFF41f/vKXhmEYxh//+Efj6aefjuh7IERfIuVEEXfy8/MZPXo0AGPGjOHQoUMA4UauU6ZMwel0hhsFNzd58mTWrVvHunXrWLRoEdu3b6ekpISUlBQSExP58ssvmTdvHgDDhg1jwIAB7NmzB4AzzjiD1NRUANatWxc+btSoUZx44okAFBQUcODAAe677z7WrFnT5tY1TqeTkpISZs2aBYDVasVut/Pll18yZ84cNE0jMzOTKVOmhO+1jRs3jtzcXFRVZdSoUeGvvbFNmzaxc+dOFi1axPz581m+fDmHDx8Of75hJ4KTTz651ecLcTyRcqKIOxaLJfz/mqbh9XqBlvsmtbWP0pQpU3j55Zc5cuQIP/vZz3j//fd59913wyU0o512oXa7vcNrpKSk8MYbb/Dxxx/z8ssv88477/Dggw9G9sV1cP3mX7uu660+/4wzzuCxxx5r9RxmsxkAVVVbfb4QxxMZiYk+4+233wZg/fr1JCUlkZSU1OpxeXl5VFZWsnfvXgoKCpg4cSLPPPMMkyZNAkJJ7q233gJgz549HDlyhKFDh7Y4T+Pjtm/fzjfffAOEtosxDIPzzjuPn/zkJ2zdurXVOBwOB7m5ueEt530+H263mylTpvDOO++g6zoVFRWsX7++zft7DRITE6mrqwNgwoQJbNiwgX379gHgdrvDI8lIni/E8URGYqLPSElJ4dJLLw1P7GjPuHHjCAaDQKi8+Nhjj4WT2Pe//33uuece5s6di6ZpPPjgg01GQA0WLVrEHXfcwdy5cxk9enQ40ZSWlnLHHXeEz3/zzTe3GccjjzzC3XffzeOPP47ZbObxxx9n1qxZbNy4kfnz56MoCrfeeitZWVnh/bha893vfpfrr7+erKwsXnjhBR588EFuvvlmfD4fAD/96U8ZMmRIm88/55xzuOmmm1i5cqVM7BDHFdmKRQghRJ8l5UQhhBB9lpQTRZ/1+uuv8/zzzzd5bOLEidxzzz29HstvfvObFh0xrrjiCi6++OJej0WI/kTKiUIIIfosKScKIYTosySJCSGE6LMkiQkhhOizJIkJIYTos/4/MIYEDmXqgGwAAAAASUVORK5CYII=",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import seaborn as sns\n",
"sns.set_style('whitegrid')\n",
"\n",
"sns.jointplot(\"nb_words_content\", \"pp_uniq_words\", data = train_data, \n",
" kind='reg', height=6, space=0)"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/wbader/miniconda3/envs/tp-ml/lib/python3.6/site-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
" FutureWarning\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.jointplot(train_data[\"pp_neg_words\"], target_data['Prediction'], \n",
" kind='reg', ylim=5000, height=6, space=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Question: ** Change the features you display to explore relationships. What conclusions are you drawing from this exploratory analysis? Are you going to keep all the features in your predictors?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Answer:__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. Data transformation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.1 feature engineering\n",
"This notion includes all kinds of manual modification and creation of features. All are of course problem dependant.\n",
"\n",
"* __Encoding categorical features:__ if a K-categorical feature is not ordered (categorie 1 is as far to categorie 2 as to categorie 3 etc), then it must not be encoded by a single integer specifying the categorie. We can encode such feature by creating K-1 binary features encoding the belonging to k-th category. (see [link](http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features))\n",
"\n",
"* __Feature binarization:__ some continuous features can gain predictive power when binarized. For exemple, in some prediction tasks, weekdays could be split into $working\\ days$ and $not\\ working\\ days$. (see [link](http://scikit-learn.org/stable/modules/preprocessing.html#binarization))\n",
"\n",
"* __Imputation of missing values:__ there are multiple strategies to input missing values when required (see [link](http://scikit-learn.org/stable/modules/preprocessing.html#imputation-of-missing-values)).\n",
"\n",
"* __Dealing with time features or other periodic features:__ when considering the hour of the day as a feature, we can't encode it by the an integer between 1 and 24 as midnigth is as close to 11pm to 1am. An easy strategy to encode periodic features is to apply this transformation $x \\mapsto \\sin(\\frac{2\\pi x}{T})$ (T is the period). In the case of the hour of the day, it is $x \\mapsto \\sin(\\frac{2\\pi x}{24})$. \n",
"\n",
"* __Generating new features:__ you might want to combine the existing features into new ones that seem informative to you. It can be useful for exemple, notably when working with linear models, to generate polynomial features from the original ones. You can also use external data to transform your features; for instance, if one feature is a date, adding a feature that qualifies whether the day is a working day, a weekday or a holiday can be useful. \n",
"* ...\n",
"\n",
"In many practical cases, feature engineering is the key to obtaining a huge improvement in performance."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Question: ** How do you want to engineer the features of the challenge (first, you can start encoding the categorical features)? Keep thinking of this question all along the challenge."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us encode weekdays as a categorical feature rather than a periodic one. Remember this transformation later in the challenge: does it help your performance?"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
weekday_1
\n",
"
weekday_2
\n",
"
weekday_3
\n",
"
weekday_4
\n",
"
weekday_5
\n",
"
weekday_6
\n",
"
nb_words_title
\n",
"
nb_words_content
\n",
"
pp_uniq_words
\n",
"
pp_stop_words
\n",
"
...
\n",
"
pp_neg_words
\n",
"
pp_pos_words_in_nonneutral
\n",
"
ave_polar_pos
\n",
"
min_polar_pos
\n",
"
max_polar_pos
\n",
"
ave_polar_neg
\n",
"
min_polar_neg
\n",
"
max_polar_neg
\n",
"
subj_title
\n",
"
polar_title
\n",
"
\n",
" \n",
" \n",
"
\n",
"
2000
\n",
"
1
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
9
\n",
"
843
\n",
"
0.5358
\n",
"
2.092000e-09
\n",
"
...
\n",
"
0.019230
\n",
"
0.7143
\n",
"
0.4437
\n",
"
0.03333
\n",
"
1.0
\n",
"
-0.3160
\n",
"
-0.8000
\n",
"
-0.05
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
2001
\n",
"
0
\n",
"
1
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
9
\n",
"
805
\n",
"
0.4196
\n",
"
2.165000e-09
\n",
"
...
\n",
"
0.025710
\n",
"
0.5349
\n",
"
0.3081
\n",
"
0.05000
\n",
"
0.8
\n",
"
-0.3463
\n",
"
-0.7143
\n",
"
-0.10
\n",
"
0.9
\n",
"
0.3
\n",
"
\n",
"
\n",
"
2002
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
8
\n",
"
145
\n",
"
0.7594
\n",
"
1.163000e-08
\n",
"
...
\n",
"
0.007519
\n",
"
0.8333
\n",
"
0.3673
\n",
"
0.13640
\n",
"
0.5
\n",
"
-0.2000
\n",
"
-0.2000
\n",
"
-0.20
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
2003
\n",
"
0
\n",
"
1
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
12
\n",
"
201
\n",
"
0.6359
\n",
"
9.259000e-09
\n",
"
...
\n",
"
0.027030
\n",
"
0.7368
\n",
"
0.3721
\n",
"
0.13640
\n",
"
0.6
\n",
"
-0.4000
\n",
"
-0.4000
\n",
"
-0.40
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
2004
\n",
"
0
\n",
"
1
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
0
\n",
"
13
\n",
"
673
\n",
"
0.4609
\n",
"
2.500000e-09
\n",
"
...
\n",
"
0.021440
\n",
"
0.5625
\n",
"
0.3500
\n",
"
0.05000
\n",
"
0.6
\n",
"
-0.2435
\n",
"
-0.8000
\n",
"
-0.10
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
" \n",
"
\n",
"
5 rows × 48 columns
\n",
"
"
],
"text/plain": [
" weekday_1 weekday_2 weekday_3 weekday_4 weekday_5 weekday_6 \\\n",
"2000 1 0 0 0 0 0 \n",
"2001 0 1 0 0 0 0 \n",
"2002 0 0 0 0 0 0 \n",
"2003 0 1 0 0 0 0 \n",
"2004 0 1 0 0 0 0 \n",
"\n",
" nb_words_title nb_words_content pp_uniq_words pp_stop_words ... \\\n",
"2000 9 843 0.5358 2.092000e-09 ... \n",
"2001 9 805 0.4196 2.165000e-09 ... \n",
"2002 8 145 0.7594 1.163000e-08 ... \n",
"2003 12 201 0.6359 9.259000e-09 ... \n",
"2004 13 673 0.4609 2.500000e-09 ... \n",
"\n",
" pp_neg_words pp_pos_words_in_nonneutral ave_polar_pos min_polar_pos \\\n",
"2000 0.019230 0.7143 0.4437 0.03333 \n",
"2001 0.025710 0.5349 0.3081 0.05000 \n",
"2002 0.007519 0.8333 0.3673 0.13640 \n",
"2003 0.027030 0.7368 0.3721 0.13640 \n",
"2004 0.021440 0.5625 0.3500 0.05000 \n",
"\n",
" max_polar_pos ave_polar_neg min_polar_neg max_polar_neg subj_title \\\n",
"2000 1.0 -0.3160 -0.8000 -0.05 0.0 \n",
"2001 0.8 -0.3463 -0.7143 -0.10 0.9 \n",
"2002 0.5 -0.2000 -0.2000 -0.20 0.0 \n",
"2003 0.6 -0.4000 -0.4000 -0.40 0.0 \n",
"2004 0.6 -0.2435 -0.8000 -0.10 0.0 \n",
"\n",
" polar_title \n",
"2000 0.0 \n",
"2001 0.3 \n",
"2002 0.0 \n",
"2003 0.0 \n",
"2004 0.0 \n",
"\n",
"[5 rows x 48 columns]"
]
},
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get the weekday data and encode it using a dummy categorical encoding\n",
"weekday_data = pd.get_dummies(train_data['weekday'], prefix='weekday', drop_first=True)\n",
"\n",
"# Get the rest of the data\n",
"other_data = train_data.drop(['weekday'], axis=1)\n",
"\n",
"# Create a new data set by concatenation of the new weekday data and the old rest of the data\n",
"training_data = pd.concat([weekday_data, other_data], axis=1)\n",
"\n",
"# Print the created training data.\n",
"training_data.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Question:__ Repeat the process for the other categorical variable(s) in your data. Do not forget to apply your transformation to the test dataset as well!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# TODO"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.2 Preprocessing data: standardization\n",
"You might want to consider standardizing your data as seen in Lab 02."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.3 Unsupervised projection\n",
"If your number of features is high, it may be useful to reduce it with an unsupervised step prior to supervised steps. \n",
"\n",
"We have already worked on a widly used dimentionality reduction method in `Lab 1`, the Principal Component Analysis. \n",
"\n",
"We will discuss in `Lab 5` the combinaison of dimentionality reduction and a predictor."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.4 Feature selection\n",
"See [scikit-learn's documentation](http://scikit-learn.org/stable/modules/feature_selection.html).\n",
"\n",
"It may be useful to select a restricted number of important features to increase their predictive power. When the number of feature is particularly bigger than the number od instance, this issue of major importance.\n",
"\n",
"Multiple strategies can be considered depending on the problem such like:\n",
"* considering the most varying features, condering the most correlated features to the output etc\n",
"* using feed forward selection procedure: recursively adding features one by one by incresing improvement of performance\n",
"* using embbeded feature selection like lasso or ElasticNet (see lab 5)\n",
"* computing feature importance (via bagging procedure like [randomized lasso](https://stat.ethz.ch/~nicolai/stability.pdf) or bagging trees (see lab 5) for exemple) and thresholding the feature.\n",
"* ..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. Model evaluation and model selection"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3.1 Our first classifier: Gaussian Naive Bayes\n",
"Documentation: http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.GaussianNB.html \n",
"\n",
"In order to start thinking about model evaluation and model selection, we will convert the regression problem of the KaggleInClass challenge into a classification task in order to to work with the first classifier we studied in class: the Gaussian Naive Bayes.\n",
"\n",
"Our goal here is to try to classify points between astonishingly and not astonishingly shared articles. Based on the distribution of the number of shares, the separation can be set at 1800 shares."
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2991,)\n",
"(2009,)\n"
]
}
],
"source": [
"# Transform output into a classification task.\n",
"y_clf = np.where(y_tr >= 1800, 1, 0)\n",
"print(np.where(y_clf==0)[0].shape)\n",
"print(np.where(y_clf==1)[0].shape)"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [],
"source": [
"X_clf = training_data.values"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [],
"source": [
"# import Gaussian Naive Bayes\n",
"from sklearn.naive_bayes import GaussianNB"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [],
"source": [
"# create a Gaussian Naive Bayes classifier i.e. an instance of GaussianNB\n",
"gnb = GaussianNB()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"GaussianNB()"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# fit the classifier to the data\n",
"gnb.fit(X_clf, y_clf)"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [],
"source": [
"# predict on the same data\n",
"y_pred = gnb.predict(X_clf)"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of mislabeled points out of a total 5000 points : 1963\n"
]
}
],
"source": [
"# compute the number of mislabeled articles\n",
"print(\"Number of mislabeled points out of a total %d points : %d\" % \\\n",
" (X_clf.shape[0], (y_clf != y_pred).sum()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note than all predictors implemented in the sklearn library are trained and applied via the `fit` and `predict` (or `predict_proba`) methods.\n",
"\n",
"**Question:** What are the parameters of the model we have trained? How many of them are they? How can you access them?"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"{'priors': None,\n",
" 'var_smoothing': 1e-09,\n",
" 'n_features_in_': 48,\n",
" 'epsilon_': 47.915030130169605,\n",
" 'classes_': array([0, 1]),\n",
" 'theta_': array([[ 1.93580742e-01, 2.05951187e-01, 1.87228352e-01,\n",
" 1.40421264e-01, 4.78100970e-02, 4.71414243e-02,\n",
" 1.04881311e+01, 5.45836844e+02, 5.34619425e-01,\n",
" 2.97559394e-02, 6.78008526e-01, 1.00320963e+01,\n",
" 6.79271147e+00, 4.03610832e+00, 1.17953862e+00,\n",
" 4.01036443e+00, 7.08793046e+00, 3.19324641e+00,\n",
" 2.41805416e+01, 9.28673353e+02, 2.70002006e+02,\n",
" 1.27069137e+04, 7.54202508e+05, 2.55922586e+05,\n",
" 1.01061819e+03, 5.12257472e+03, 2.91886433e+03,\n",
" 3.02787563e+03, 7.79266332e+03, 4.90240328e+03,\n",
" 1.72781849e-01, 1.52756931e-01, 2.46015109e-01,\n",
" 2.06135426e-01, 2.22310033e-01, 4.37093310e-01,\n",
" 1.17109337e-01, 3.90776316e-02, 1.66966225e-02,\n",
" 6.77679445e-01, 3.51399733e-01, 9.54050585e-02,\n",
" 7.45757773e-01, -2.52517482e-01, -5.11862414e-01,\n",
" -1.03064072e-01, 2.82964510e-01, 6.50785553e-02],\n",
" [ 1.80189149e-01, 1.71727227e-01, 1.64758586e-01,\n",
" 1.45345943e-01, 8.56147337e-02, 9.05923345e-02,\n",
" 1.02190144e+01, 5.87604778e+02, 5.23768940e-01,\n",
" 3.08611296e-02, 6.65375610e-01, 1.17177700e+01,\n",
" 8.35988054e+00, 4.86610254e+00, 1.31557989e+00,\n",
" 3.98208064e+00, 7.34942758e+00, 3.27177700e+00,\n",
" 3.11791936e+01, 1.29430762e+03, 3.49331508e+02,\n",
" 1.14555396e+04, 7.42223942e+05, 2.58327544e+05,\n",
" 1.20617870e+03, 6.05944052e+03, 3.34863081e+03,\n",
" 5.04087705e+03, 1.19179980e+04, 7.73627442e+03,\n",
" 2.08163688e-01, 1.20169836e-01, 1.69376142e-01,\n",
" 2.34597611e-01, 2.67692997e-01, 4.51727038e-01,\n",
" 1.28721942e-01, 4.10291648e-02, 1.62101981e-02,\n",
" 6.93852364e-01, 3.57977840e-01, 9.18679343e-02,\n",
" 7.74440284e-01, -2.58563280e-01, -5.19116252e-01,\n",
" -1.06148371e-01, 2.96920179e-01, 8.21279189e-02]]),\n",
" 'sigma_': array([[4.80711374e+01, 4.80785654e+01, 4.80672040e+01, 4.80357333e+01,\n",
" 4.79605544e+01, 4.79599492e+01, 5.23574670e+01, 2.00484574e+05,\n",
" 4.79333339e+01, 4.79439006e+01, 4.79381009e+01, 1.46923696e+02,\n",
" 1.29730972e+02, 1.08452677e+02, 6.43746048e+01, 4.85357853e+01,\n",
" 5.16087360e+01, 5.09308454e+01, 4.58833111e+03, 2.70535460e+06,\n",
" 7.88311247e+04, 3.16905236e+09, 4.67115687e+10, 1.77537953e+10,\n",
" 1.12425412e+06, 1.99926793e+07, 1.41124704e+06, 2.14915154e+08,\n",
" 9.25165735e+08, 3.47575175e+08, 4.79779402e+01, 4.79686235e+01,\n",
" 4.80040740e+01, 4.79957998e+01, 4.79949409e+01, 4.79285792e+01,\n",
" 4.79239664e+01, 4.79153324e+01, 4.79151514e+01, 4.79526437e+01,\n",
" 4.79259205e+01, 4.79202788e+01, 4.79762149e+01, 4.79303124e+01,\n",
" 4.79998731e+01, 4.79224631e+01, 4.80161744e+01, 4.79789879e+01],\n",
" [4.80627511e+01, 4.80572671e+01, 4.80526433e+01, 4.80392506e+01,\n",
" 4.79933150e+01, 4.79974155e+01, 5.22811992e+01, 2.40446097e+05,\n",
" 4.79339690e+01, 4.79449388e+01, 4.79387435e+01, 1.83723380e+02,\n",
" 1.63495322e+02, 1.14929954e+02, 6.22773608e+01, 4.85239674e+01,\n",
" 5.13130898e+01, 5.06365880e+01, 5.69946978e+03, 1.16386774e+07,\n",
" 3.31657609e+05, 1.62349785e+09, 4.96209108e+10, 1.84107850e+10,\n",
" 1.49577628e+06, 2.61482758e+07, 1.52266109e+06, 3.85017724e+08,\n",
" 1.53945604e+09, 5.95637982e+08, 4.79922245e+01, 4.79543917e+01,\n",
" 4.79738443e+01, 4.80042993e+01, 4.80102771e+01, 4.79282621e+01,\n",
" 4.79241411e+01, 4.79153239e+01, 4.79151323e+01, 4.79496336e+01,\n",
" 4.79259402e+01, 4.79200300e+01, 4.79752515e+01, 4.79308426e+01,\n",
" 4.79983999e+01, 4.79238575e+01, 4.80248025e+01, 4.79879665e+01]]),\n",
" 'class_count_': array([2991., 2009.]),\n",
" 'class_prior_': array([0.5982, 0.4018])}"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Hint\n",
"gnb.__dict__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3.2 Model Evaluation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You must have a look at http://scikit-learn.org/stable/modules/model_evaluation.html which shows and details a list of metrics for evaluating regression or classification models."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the case of regression, the most commonly used metrics are :\n",
"* `mean squared errors`\n",
"* `mean absolute errors` which gives less importance to errors of very bad prediction and more importance to errors of good predictions as the following plot shows than `mean squared errors`\n",
"* `R2` (coefficient of determination) which provides a measure of how well future samples are likely to be predicted by the model."
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"