Skip to content

Instantly share code, notes, and snippets.

@vivek081166
Last active April 23, 2019 01:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vivek081166/5960469060d32a1df008ed285a230301 to your computer and use it in GitHub Desktop.
Save vivek081166/5960469060d32a1df008ed285a230301 to your computer and use it in GitHub Desktop.
mlbox-auto-ml-house-prices.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "mlbox-auto-ml-house-prices.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"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.7.2"
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/vivek081166/5960469060d32a1df008ed285a230301/mlbox-auto-ml-house-prices.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"_cell_guid": "b7f978a7-ac20-4d0a-b3fe-a9ebe997c14d",
"_uuid": "c6b4f386aae196ddfccc4eaa5eb20bb7aa9c3ea0",
"id": "Xx4JzmVUrJW1",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Inputs & imports : 必要があるのはそれだけです!\n"
]
},
{
"metadata": {
"_cell_guid": "58c96d5f-d0b2-43b7-a415-eb6e69d8cca7",
"_uuid": "f60077090ed42fb68274932a478121d027536b48",
"id": "8M3C4B_IrJW3",
"colab_type": "code",
"outputId": "0ff5eb97-65ae-4f49-bf6b-0c86a2ef0ac4",
"colab": {}
},
"cell_type": "code",
"source": [
"from mlbox.preprocessing import *\n",
"from mlbox.optimisation import *\n",
"from mlbox.prediction import *"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Using Theano backend.\n"
],
"name": "stderr"
}
]
},
{
"metadata": {
"_cell_guid": "b50d061d-fe5d-479d-9754-14a3a9fa5f7f",
"_uuid": "fe7d96120efaff4ae8a9cb51818f393f63ad1373",
"id": "GTUuBdxmrJW8",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"paths = [\"../input/train.csv\",\"../input/test.csv\"]\n",
"target_name = \"SalePrice\""
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"_cell_guid": "a74fcd51-5f8d-4283-a041-75bbb31ac10a",
"_uuid": "60b5abc85d4b14ee05ad309fec17432c93af5d1d",
"id": "zfF6o99OrJW-",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# MLBox に任せてください。。。"
]
},
{
"metadata": {
"_cell_guid": "c8bbd2bc-abea-4020-82e2-bfb2f689f93b",
"_uuid": "08955d0a1e8abb49d3ce975c95916d00aafdca15",
"id": "b9k7ZYTvrJW-",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"## ... ファイルの読み込み"
]
},
{
"metadata": {
"_cell_guid": "fcf95b6e-a149-458a-a224-2e3b9945d281",
"_uuid": "59ecd874d452bba5cd2f29a07e675b6ca899dc93",
"collapsed": true,
"id": "M9q9gj7frJW-",
"colab_type": "code",
"outputId": "278772f5-c433-487a-9169-7996e358d783",
"colab": {}
},
"cell_type": "code",
"source": [
"rd = Reader(sep = \",\")\n",
"df = rd.train_test_split(paths, target_name) #reading and preprocessing (dates, ...)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
"reading csv : train.csv ...\n",
"cleaning data ...\n",
"CPU time: 1.150022268295288 seconds\n",
"\n",
"reading csv : test.csv ...\n",
"cleaning data ...\n",
"CPU time: 1.1377265453338623 seconds\n",
"\n",
"> Number of common features : 80\n",
"\n",
"gathering and crunching for train and test datasets ...\n",
"reindexing for train and test datasets ...\n",
"dropping training duplicates ...\n",
"dropping constant variables on training set ...\n",
"\n",
"> Number of categorical features: 43\n",
"> Number of numerical features: 37\n",
"> Number of training samples : 1460\n",
"> Number of test samples : 1459\n",
"\n",
"> Top sparse features (% missing values on train set):\n",
"PoolQC 99.5\n",
"MiscFeature 96.3\n",
"Alley 93.8\n",
"Fence 80.8\n",
"FireplaceQu 47.3\n",
"dtype: float64\n",
"\n",
"> Task : regression\n",
"count 1460.000000\n",
"mean 180921.195890\n",
"std 79442.502883\n",
"min 34900.000000\n",
"25% 129975.000000\n",
"50% 163000.000000\n",
"75% 214000.000000\n",
"max 755000.000000\n",
"Name: SalePrice, dtype: float64\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"_cell_guid": "7f362b5e-8ace-4a0a-9adc-9cdd883b06bf",
"_uuid": "8ea8a0f79c8e7ed3f7c76078ec8cf1bfa60fa433",
"collapsed": true,
"id": "ceGH-he8rJXB",
"colab_type": "code",
"outputId": "0e95367c-b523-4efb-fe4f-185747c0217a",
"colab": {}
},
"cell_type": "code",
"source": [
"dft = Drift_thresholder()\n",
"df = dft.fit_transform(df) #removing non-stable features (like ID,...)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
"computing drifts ...\n",
"CPU time: 1.1901113986968994 seconds\n",
"\n",
"> Top 10 drifts\n",
"\n",
"('Id', 1.0)\n",
"('2ndFlrSF', 0.043727406089464349)\n",
"('FireplaceQu', 0.042353711516121217)\n",
"('Exterior1st', 0.040058391064138776)\n",
"('HeatingQC', 0.037907300453223325)\n",
"('GrLivArea', 0.034105310873727035)\n",
"('TotRmsAbvGrd', 0.030938611129773586)\n",
"('BsmtFinType1', 0.030811329215275407)\n",
"('FullBath', 0.029647240388988916)\n",
"('MSSubClass', 0.028765488729139754)\n",
"\n",
"> Deleted variables : ['Id']\n",
"> Drift coefficients dumped into directory : save\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"_cell_guid": "1da1eadc-e421-4fbe-846f-0c57d7413777",
"_uuid": "c7d3d2d92f50ae18e5a5a562ef774d0ef44ab2b2",
"id": "w242QL01rJXD",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"## ...ハイパーパラメータを調整する"
]
},
{
"metadata": {
"_cell_guid": "29c585f0-da65-4795-a297-d2b6d1b98bf3",
"_uuid": "5d6875be21ef7afca613fec2f5c579e9fd92c8b8",
"collapsed": true,
"id": "Wj5T0_NqrJXD",
"colab_type": "code",
"outputId": "4c47c813-318e-4ce8-c67c-9ec1876abb6f",
"colab": {}
},
"cell_type": "code",
"source": [
"rmse = make_scorer(lambda y_true, y_pred: np.sqrt(np.sum((y_true - y_pred)**2)/len(y_true)), greater_is_better=False, needs_proba=False)\n",
"opt = Optimiser(scoring = rmse, n_folds = 3)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.6/site-packages/mlbox/optimisation/optimiser.py:78: UserWarning: Optimiser will save all your fitted models into directory 'save/joblib'. Please clear it regularly.\n",
" +str(self.to_path)+\"/joblib'. Please clear it regularly.\")\n"
],
"name": "stderr"
}
]
},
{
"metadata": {
"_cell_guid": "03b216a4-4d1f-43e6-919a-7a9af8447554",
"_uuid": "43bd3715a80ae549b7e427719061263304f0da7e",
"id": "O5H8EGGWrJXF",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"**LightGBM**"
]
},
{
"metadata": {
"_cell_guid": "ee947f01-7ae6-4e10-842f-4d3161a3d300",
"_uuid": "385c4731320701b4eaacaa1ed89ac811de9e6b01",
"collapsed": true,
"id": "2gsZRPhhrJXG",
"colab_type": "code",
"outputId": "cb95ca1d-d6d9-4bce-af3e-a629f28185b3",
"colab": {}
},
"cell_type": "code",
"source": [
"space = {\n",
" \n",
" 'est__strategy':{\"search\":\"choice\",\n",
" \"space\":[\"LightGBM\"]}, \n",
" 'est__n_estimators':{\"search\":\"choice\",\n",
" \"space\":[150]}, \n",
" 'est__colsample_bytree':{\"search\":\"uniform\",\n",
" \"space\":[0.8,0.95]},\n",
" 'est__subsample':{\"search\":\"uniform\",\n",
" \"space\":[0.8,0.95]},\n",
" 'est__max_depth':{\"search\":\"choice\",\n",
" \"space\":[5,6,7,8,9]},\n",
" 'est__learning_rate':{\"search\":\"choice\",\n",
" \"space\":[0.07]} \n",
" \n",
" }\n",
"\n",
"params = opt.optimise(space, df,15)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.8137091996089085, 'learning_rate': 0.07, 'max_depth': 9, 'n_estimators': 150, 'subsample': 0.9324125554458768, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70031.2767813\n",
"VARIANCE : 3134.28444012 (fold 1 = -74463.7952605, fold 2 = -67801.1115712, fold 3 = -67828.9235122)\n",
"CPU time: 271.8608019351959 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9418201179272242, 'learning_rate': 0.07, 'max_depth': 9, 'n_estimators': 150, 'subsample': 0.9480673023232556, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70008.8290912\n",
"VARIANCE : 3154.33850911 (fold 1 = -74469.7285774, fold 2 = -67786.0589077, fold 3 = -67770.6997884)\n",
"CPU time: 253.32535767555237 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9180800003765482, 'learning_rate': 0.07, 'max_depth': 9, 'n_estimators': 150, 'subsample': 0.9234361035287161, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70010.1431083\n",
"VARIANCE : 3151.68515498 (fold 1 = -74467.2984189, fold 2 = -67783.534551, fold 3 = -67779.5963551)\n",
"CPU time: 121.50654983520508 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9023451928192011, 'learning_rate': 0.07, 'max_depth': 5, 'n_estimators': 150, 'subsample': 0.8911450106210692, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70136.4872727\n",
"VARIANCE : 3104.28930042 (fold 1 = -74526.594676, fold 2 = -67929.778905, fold 3 = -67953.088237)\n",
"CPU time: 74.49110388755798 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9080209022062069, 'learning_rate': 0.07, 'max_depth': 8, 'n_estimators': 150, 'subsample': 0.8185595300825068, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -69997.8220034\n",
"VARIANCE : 3134.80299946 (fold 1 = -74431.0487482, fold 2 = -67800.1886131, fold 3 = -67762.2286488)\n",
"CPU time: 195.2304494380951 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.8766988693756298, 'learning_rate': 0.07, 'max_depth': 5, 'n_estimators': 150, 'subsample': 0.9434962590100372, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70145.4558177\n",
"VARIANCE : 3106.69556773 (fold 1 = -74538.9635004, fold 2 = -67936.3041191, fold 3 = -67961.0998334)\n",
"CPU time: 85.50592613220215 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9461942628512395, 'learning_rate': 0.07, 'max_depth': 8, 'n_estimators': 150, 'subsample': 0.9024391020410172, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70019.5589279\n",
"VARIANCE : 3145.24398135 (fold 1 = -74467.5755006, fold 2 = -67809.727385, fold 3 = -67781.3738981)\n",
"CPU time: 110.08434128761292 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.8314611711199553, 'learning_rate': 0.07, 'max_depth': 5, 'n_estimators': 150, 'subsample': 0.8565561506831961, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70156.9445756\n",
"VARIANCE : 3095.88473192 (fold 1 = -74535.100098, fold 2 = -67944.0114986, fold 3 = -67991.7221302)\n",
"CPU time: 70.14835977554321 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.8211304539554622, 'learning_rate': 0.07, 'max_depth': 7, 'n_estimators': 150, 'subsample': 0.8729118255474302, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70032.3697673\n",
"VARIANCE : 3126.37912114 (fold 1 = -74453.7307698, fold 2 = -67828.3808773, fold 3 = -67814.9976548)\n",
"CPU time: 238.7316792011261 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.829877690177056, 'learning_rate': 0.07, 'max_depth': 5, 'n_estimators': 150, 'subsample': 0.8403614519519063, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70168.5931155\n",
"VARIANCE : 3105.07616509 (fold 1 = -74559.7761367, fold 2 = -67953.4889836, fold 3 = -67992.5142262)\n",
"CPU time: 40.285968542099 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9164633585666616, 'learning_rate': 0.07, 'max_depth': 7, 'n_estimators': 150, 'subsample': 0.8243304425719699, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70008.2567805\n",
"VARIANCE : 3134.5730596 (fold 1 = -74441.2036792, fold 2 = -67799.4478162, fold 3 = -67784.1188462)\n",
"CPU time: 49.79308104515076 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9204704365088157, 'learning_rate': 0.07, 'max_depth': 8, 'n_estimators': 150, 'subsample': 0.9387439874102184, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70016.3784659\n",
"VARIANCE : 3158.61644948 (fold 1 = -74483.3288258, fold 2 = -67775.6455919, fold 3 = -67790.1609801)\n",
"CPU time: 68.811443567276 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.9099840750281214, 'learning_rate': 0.07, 'max_depth': 7, 'n_estimators': 150, 'subsample': 0.8043191395996018, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70013.2162867\n",
"VARIANCE : 3130.79747006 (fold 1 = -74440.8323976, fold 2 = -67800.3453697, fold 3 = -67798.4710927)\n",
"CPU time: 71.00030493736267 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.8031637063022484, 'learning_rate': 0.07, 'max_depth': 9, 'n_estimators': 150, 'subsample': 0.9399595575279052, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70034.5769383\n",
"VARIANCE : 3133.15396435 (fold 1 = -74465.4794982, fold 2 = -67801.5892795, fold 3 = -67836.6620371)\n",
"CPU time: 72.4679946899414 seconds\n",
"\n",
"\n",
"##################################################### testing hyper-parameters... #####################################################\n",
"\n",
">>> NA ENCODER :{'numerical_strategy': 'mean', 'categorical_strategy': '<NULL>'}\n",
"\n",
">>> CA ENCODER :{'strategy': 'label_encoding'}\n",
"\n",
">>> ESTIMATOR :{'strategy': 'LightGBM', 'colsample_bytree': 0.8534578560312139, 'learning_rate': 0.07, 'max_depth': 5, 'n_estimators': 150, 'subsample': 0.8507021204316042, 'boosting_type': 'gbdt', 'max_bin': 255, 'min_child_samples': 10, 'min_child_weight': 5, 'min_split_gain': 0, 'nthread': -1, 'num_leaves': 31, 'objective': 'regression', 'reg_alpha': 0, 'reg_lambda': 0, 'seed': 0, 'silent': True, 'subsample_for_bin': 50000, 'subsample_freq': 1}\n",
"\n",
"\n",
"MEAN SCORE : make_scorer(<lambda>, greater_is_better=False) = -70157.9191645\n",
"VARIANCE : 3102.90538823 (fold 1 = -74546.0823235, fold 2 = -67956.7073456, fold 3 = -67970.9678245)\n",
"CPU time: 43.82064723968506 seconds\n",
"\n",
"\n",
"\n",
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BEST HYPER-PARAMETERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
"\n",
"{'est__colsample_bytree': 0.9080209022062069, 'est__learning_rate': 0.07, 'est__max_depth': 8, 'est__n_estimators': 150, 'est__strategy': 'LightGBM', 'est__subsample': 0.8185595300825068}\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"_cell_guid": "5a3f84b2-3b27-45ed-a3a4-d0ac704147de",
"_uuid": "b4dc424c89f195730cceacb89a421fc30b7d5dd4",
"id": "c-BKb0X1rJXI",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"ただし、Pipeline全体を調整することもできます。\n",
"\n"
]
},
{
"metadata": {
"_cell_guid": "e2ebc865-aff8-44c0-8c99-c5c68979e9c0",
"_uuid": "846449eb6bd211e7923b64a5302870e0036d3f5e",
"id": "YC3Yv8dDrJXJ",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"## ... 予測する"
]
},
{
"metadata": {
"_cell_guid": "996573f8-c1d9-4168-8f55-b4a684232986",
"_uuid": "cdff913ca3ddd5211870df3e0996da3f32af772b",
"collapsed": true,
"id": "aIpqMnBqrJXK",
"colab_type": "code",
"outputId": "12ffa0f1-f14f-4a65-dea5-1a8e078e23d7",
"colab": {}
},
"cell_type": "code",
"source": [
"prd = Predictor()\n",
"prd.fit_predict(params, df)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
"fitting the pipeline ...\n",
"CPU time: 27.68521022796631 seconds\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nJEmSJKkk/w+vjaRyl/GfrgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f93eeefdfd0>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"\n",
"> Feature importances dumped into directory : save\n",
"\n",
"predicting...\n",
"CPU time: 0.09216570854187012 seconds\n",
"\n",
"> Overview on predictions : \n",
"\n",
" SalePrice_predicted\n",
"0 165921.195890\n",
"1 167701.648928\n",
"2 175319.175272\n",
"3 177518.368928\n",
"4 192895.614810\n",
"5 176685.509650\n",
"6 170356.903631\n",
"7 174661.891858\n",
"8 181593.424964\n",
"9 165921.195890\n",
"\n",
"dumping predictions into directory : save ...\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<mlbox.prediction.predictor.Predictor at 0x7f9430dd2780>"
]
},
"metadata": {
"tags": []
},
"execution_count": 7
}
]
},
{
"metadata": {
"_cell_guid": "242102b7-174a-4c97-9eb0-9875b085ea2b",
"_uuid": "caeee1581dda9444d9d519051a77fd1e73b41f2d",
"id": "JDNoU7mSrJXM",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"### 提出用のフォーマット\n"
]
},
{
"metadata": {
"_cell_guid": "7668891c-cabc-45d3-bbd6-a0465a037eff",
"_uuid": "1706dac719a20b006d903db219065ec78ebeccb6",
"id": "01C20ZihrJXN",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"submit = pd.read_csv(\"../input/sample_submission.csv\",sep=',')\n",
"preds = pd.read_csv(\"save/\"+target_name+\"_predictions.csv\")\n",
"\n",
"submit[target_name] = preds[target_name+\"_predicted\"].values\n",
"\n",
"submit.to_csv(\"mlbox.csv\", index=False)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"_cell_guid": "2c0c568e-2de8-4a09-a985-1548bfa4fb7f",
"_uuid": "a2dcc9ee8edc83f6b90eb751a71db5554a0f098e",
"id": "mBA1LVX-rJXO",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# **それで完成!**"
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment