Skip to content

Instantly share code, notes, and snippets.

@stas-sl
Last active June 30, 2018 07:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stas-sl/cce97b37bf06caf2e36c81d3db12d820 to your computer and use it in GitHub Desktop.
Save stas-sl/cce97b37bf06caf2e36c81d3db12d820 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"from sklearn import metrics\n",
"from sklearn.pipeline import Pipeline, TransformerMixin, FeatureUnion\n",
"from sklearn.base import BaseEstimator\n",
"from lightgbm import LGBMClassifier\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"class ColumnSelector(BaseEstimator, TransformerMixin):\n",
" def __init__(self, columns):\n",
" self.columns = columns\n",
"\n",
" def fit(self, X, y=None):\n",
" return self\n",
"\n",
" def transform(self, X):\n",
" return X[self.columns]\n",
" \n",
"def densify(x):\n",
" return x.toarray() "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"data_train = pd.read_csv('c_train.tsv', sep='\\t')\n",
"data_test = pd.read_csv('c_test.tsv', sep='\\t')\n",
"data = pd.concat((data_train, data_test))\n",
"data['train'] = data.fresh_click.notnull()\n",
"data['timestamp'] = pd.to_datetime(data.timestamp, unit='s') + pd.to_timedelta(3, unit='h')\n",
"data['day'] = data.timestamp.dt.day\n",
"data['hour'] = data.timestamp.dt.hour\n",
"data['minute'] = data.timestamp.dt.minute"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.072084"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_train.fresh_click.mean()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x110580eb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data.groupby('train').day.value_counts().unstack(0).plot(kind='bar');"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.1660215956651229"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pipeline_without_text = Pipeline([\n",
" ('columns', ColumnSelector(['requests_per_prev_1_hour', 'requests_per_prev_2_hour',\n",
" 'requests_per_prev_6_hour', 'requests_per_prev_12_hour', \n",
" 'requests_per_prev_24_hour', 'requests_per_prev_72_hour', \n",
" 'hour', 'minute'])),\n",
" ('clf', LGBMClassifier(n_estimators=100, class_weight='balanced'))\n",
"])\n",
"\n",
"pipeline_without_text.fit(data[data.day < 29], data[data.day < 29].fresh_click)\n",
"predicted = pipeline_without_text.predict(data[data.day == 29])\n",
"metrics.f1_score(data[data.day == 29].fresh_click, predicted)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.28644309910890414"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pipeline_with_text = Pipeline([\n",
" ('features', FeatureUnion([\n",
" ('tfidf', \n",
" Pipeline([\n",
" ('selector', ColumnSelector('query')),\n",
" ('tfidf', TfidfVectorizer(token_pattern=r'\\b\\d+\\b')),\n",
" ])),\n",
" ('columns', ColumnSelector(['requests_per_prev_1_hour', 'requests_per_prev_2_hour',\n",
" 'requests_per_prev_6_hour', 'requests_per_prev_12_hour', \n",
" 'requests_per_prev_24_hour', 'requests_per_prev_72_hour', \n",
" 'hour', 'minute']))])),\n",
" ('clf', LGBMClassifier(n_estimators=100, class_weight='balanced'))\n",
"])\n",
" \n",
"pipeline_with_text.fit(data[data.day < 29], data[data.day < 29].fresh_click)\n",
"predicted = pipeline_with_text.predict(data[data.day == 29])\n",
"metrics.f1_score(data[data.day == 29].fresh_click, predicted)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment