529 строки
96 KiB
Plaintext
529 строки
96 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# NimbusML Column Selection Syntax - Flight Schedule\n",
|
|
"\n",
|
|
"In this example, we will present the column syntax introduced by NimbusML. While buiding the pipeline, users are allowed to introduce different transformations executing on different columns sequentially. Very similar to buiding deep learning models, the users can add \"layer\" after \"layers\" by indicating the input and output (column) names for each operator to avoid confusion. The computation graph can be clearly visualized.\n",
|
|
"\n",
|
|
"The problem we are solving in this example is a binary classificaiton to predict if the flight will be delayed. The training/testing data was manually created."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import time\n",
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"from IPython.display import display,IFrame,Image\n",
|
|
"from nimbusml.feature_extraction.categorical import OneHotVectorizer\n",
|
|
"from nimbusml.ensemble import LightGbmBinaryClassifier\n",
|
|
"from nimbusml.preprocessing import missing_values\n",
|
|
"from nimbusml.preprocessing.schema import ColumnConcatenator\n",
|
|
"from nimbusml import Pipeline, FileDataStream \n",
|
|
"from nimbusml.datasets import get_dataset"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"In this tutorial, we create the model using NimbusML pipelines trained with nimbusml FileDataStream."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Loading Data"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Getting data file path \n",
|
|
"train_file = get_dataset('fstrain').as_filepath()\n",
|
|
"test_file = get_dataset('fstest').as_filepath()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The input data consists of both categorical variables ('UniqueCarrier', 'Origin', 'Dest') and numeric variables ('Month', 'DayOfMonth', 'DayOfWeek', 'DepTime', 'Distance', 'DepDelay').\n",
|
|
"\n",
|
|
"|Month|DayOfMonth|DayOfWeek|DepTime|Distance|UniqueCarrier|Origin|Dest|DepDelay|Label|\n",
|
|
"|-----|----------|---------|-------|--------|-------------|------|----|--------|-----|\n",
|
|
"|1|2|2|1525|293|WN|DAL|LBB|12|0|\n",
|
|
"|1|2|2|940|192|WN|HOU|SAT|-4|0|\n",
|
|
"|1|2|2|700|1044|WN|MCI|PHX|0|0|"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We hope to:\n",
|
|
" 1. Applying missing_values.Handler to \"UniqueCarrier\"\n",
|
|
" 2. Applying OneHotVectorizer to all raw categorical columns, including column \"UniqueCarrier\" after step (1)\n",
|
|
" 3. Applying missing_values.Handler to all numeric features, i.e. (\"Month\", \"DayOfMonth\", \"DayOfWeek\", \"DepTime\", \"Distance\", \"DepDelay\")."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The following figure indicates the above steps. Each item corresponds to a column and the arrow transformation/learner."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<IPython.core.display.Image object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(Image(filename='images/FDFigure.png'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Using the new NimbusML column syntax, a pipeline described in the above figure can be easily implemented. Users can define the input/output column names for each operator using **columns = {\"output_column_name\": \"input_column_name(s)\"}** or the new syntax \"<<\"."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Training"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"categorical_columns = ['UniqueCarrier', 'Origin', 'Dest']\n",
|
|
"numeric_columns = ['Month', 'DayOfMonth', 'DayOfWeek', 'DepTime', 'Distance', 'DepDelay']\n",
|
|
"\n",
|
|
"ppl = Pipeline([\n",
|
|
" OneHotVectorizer(columns = categorical_columns),\n",
|
|
" missing_values.Handler(columns = {'UniqueCarrier_Handler':'UniqueCarrier'}), \n",
|
|
" missing_values.Handler(columns = numeric_columns), \n",
|
|
"\n",
|
|
" # After the feature transformation, we add a LightGbm learner.\n",
|
|
" LightGbmBinaryClassifier(feature = categorical_columns + numeric_columns + ['UniqueCarrier_Handler'],\n",
|
|
" label = 'Label') \n",
|
|
" ])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Syntax for Transform: Dictionary"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"When initializing a transform, the users can specify both the input and the output column names for the execution. For instance, \n",
|
|
"\n",
|
|
" missing_values.Handler(columns = {'UniqueCarrier_Handler':'UniqueCarrier'})\n",
|
|
"or\n",
|
|
" \n",
|
|
" missing_values.Handler() << {'UniqueCarrier_Handler':'UniqueCarrier'}\n",
|
|
"\n",
|
|
"indicates that:\n",
|
|
"1. The missing_values.Handler will select column \"UniqueCarrier\" for the execution, i.e. **input = 'UniqueCarrier'**\n",
|
|
"2. The transformed data will be saved to a new column named \"UniqueCarrier_Handler\", i.e. **output = 'UniqueCarrier_Handler'**\n",
|
|
"\n",
|
|
"Notice that, in most cases, we don't allow a dictionary with a string as key and list as value, such as {\"num_features\": numeric_columns}, except for ColumnConcatenator, which concatenates multiple columns into a new column. \n",
|
|
"\n",
|
|
"After this transform, in addition to the origin columns in the input dataset, a new column named \"UniqueCarrier_Handler\" will be generated. If user specifies the same output name as the input, the column will be overwritten.\n",
|
|
"\n",
|
|
"One special feature of NimbusML is that columns are allowed to include an array (vector) instead of one single value. For instance, a dataset with three columns in nimbusml may look like:\n",
|
|
"\n",
|
|
"|Month,DayOfMonth,DayOfWeek|Origin,Dest|Features|\n",
|
|
"|----------------------------|-------------|----------|\n",
|
|
"|1,2,2,1525,293 |WN,DAL |12,0 |\n",
|
|
"|1,2,2,940,192 |WN,HOU |-4,0 |\n",
|
|
"|1,2,2,700,1044 |WN,MCI |0,0 |\n",
|
|
"\n",
|
|
"In this sense, the output(s) from OneHotVectorizer(columns = [\"UniqueCarrier\"]) are concatenated into one column named \"UniqueCarrier\" with vectors, e.g. [0,0,0,1]. The output with vector values can be further used in the next step with its column name as input.\n",
|
|
"\n",
|
|
"Note: In NimbusML, some transformations, such as ColumnDropper, don't allow renaming, as there are no new columns being generated. In that case, dictionary is not allowed. A few transformations need more than two columns to generate a new column, such as ColumnConcatenator, a dictionary with list as values will be allowed, e.g. {'new_col':[concate_col1, concate_col2]}. For more details about the usage of each transformation, please refer to the documentation for API. "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Syntax for Transform: List"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Users can also specify the column names using a list. For instance,\n",
|
|
"\n",
|
|
" OneHotVectorizer(columns = ['UniqueCarrier', 'Origin', 'Dest'])\n",
|
|
"indicates that:\n",
|
|
"1. The OneHotVectorizer will select columns ['UniqueCarrier', 'Origin', 'Dest'] for the execution, i.e. **input = ['UniqueCarrier', 'Origin', 'Dest']**\n",
|
|
"2. The transformed data will be saved to the same column with the same name (overwrite the origin input columns).\n",
|
|
"\n",
|
|
"For case 2, all the output columns will have the same names as the input, i.e. replacing the input columns in the origin data frame. Thus, the above syntax is equivalent to:\n",
|
|
"\n",
|
|
" OneHotVectorizer(columns = {'UniqueCarrier':'UniqueCarrier' , 'Origin':'Origin', 'Dest':'Dest'})\n",
|
|
"\n",
|
|
"For each operator, just like creating a neural network, the input and output is specified in a dictionary/list. If the input column names are not specified, all the input columns from previous transformation will be used. \n",
|
|
"\n",
|
|
"For more details about the column operations for transforms, please refer to our [documentation](https://docs.microsoft.com/en-us/nimbusml/concepts/columns)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Syntax for Learner: Role"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"For most learners, NimbusML introduces a class **Role**. Users can specify the roles for different columns in the column syntax using a dictionary, for example:\n",
|
|
"\n",
|
|
" from nimbusml import Role\n",
|
|
" LightGbmBinaryClassifier(columns = {Role.Feature: categorical_columns + numeric_columns, Role.Label:'Label'})\n",
|
|
" \n",
|
|
"or\n",
|
|
"\n",
|
|
" LightGbmBinaryClassifier(feature = categorical_columns + numeric_columns, label = 'Label')\n",
|
|
"\n",
|
|
"Indicates that the input features for LightGbmBinaryClassifier are columns categorical_columns + numeric_columns, and the label column is the column named 'Label'. Other roles are Role.GroupId, Role.Weight, etc.. If the label role was specified, user can use ppl.fit(data) directly without setting the y. \n",
|
|
"\n",
|
|
"For more details about the column operations for learners, please refer to our [documentation](https://docs.microsoft.com/en-us/nimbusml/concepts/roles)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Creating FileDataStream\n",
|
|
"data_stream_train = FileDataStream.read_csv(train_file, sep=',', numeric_dtype=np.float32)\n",
|
|
"data_stream_test = FileDataStream.read_csv(test_file, sep=',', numeric_dtype=np.float32)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:03.7730095\n",
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:02.7034011\n",
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:02.5283012\n",
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:02.4300194\n",
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:02.4320082\n",
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:02.3711266\n",
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:02.3977217\n",
|
|
"Not adding a normalizer.\n",
|
|
"Auto-tuning parameters: UseCat = False\n",
|
|
"Auto-tuning parameters: LearningRate = 0.2\n",
|
|
"Auto-tuning parameters: NumLeaves = 20\n",
|
|
"Auto-tuning parameters: MinDataPerLeaf = 20\n",
|
|
"LightGBM objective=binary\n",
|
|
"Not training a calibrator because it is not needed.\n",
|
|
"Elapsed time: 00:00:02.4655428\n",
|
|
"2.49 s ± 104 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Training with NimbusML file stream\n",
|
|
"%timeit ppl.fit(data_stream_train) "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Testing"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Similarly, we can call pipeline.test() to generate prediction and performance metrics."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Wall time: 1.86 s\n",
|
|
"Prediction for first 5 rows:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>PredictedLabel</th>\n",
|
|
" <th>Probability</th>\n",
|
|
" <th>Score</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.000176</td>\n",
|
|
" <td>-17.291693</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.000172</td>\n",
|
|
" <td>-17.333096</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.000168</td>\n",
|
|
" <td>-17.378891</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.000175</td>\n",
|
|
" <td>-17.305880</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.000171</td>\n",
|
|
" <td>-17.343319</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" PredictedLabel Probability Score\n",
|
|
"0 0.0 0.000176 -17.291693\n",
|
|
"1 0.0 0.000172 -17.333096\n",
|
|
"2 0.0 0.000168 -17.378891\n",
|
|
"3 0.0 0.000175 -17.305880\n",
|
|
"4 0.0 0.000171 -17.343319"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Evaluation of the model using .test(): \n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>AUC</th>\n",
|
|
" <th>Accuracy</th>\n",
|
|
" <th>Positive precision</th>\n",
|
|
" <th>Positive recall</th>\n",
|
|
" <th>Negative precision</th>\n",
|
|
" <th>Negative recall</th>\n",
|
|
" <th>Log-loss</th>\n",
|
|
" <th>Log-loss reduction</th>\n",
|
|
" <th>Test-set entropy (prior Log-Loss/instance)</th>\n",
|
|
" <th>F1 Score</th>\n",
|
|
" <th>AUPRC</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>0.754464</td>\n",
|
|
" <td>0.86</td>\n",
|
|
" <td>0.75</td>\n",
|
|
" <td>0.1875</td>\n",
|
|
" <td>0.864583</td>\n",
|
|
" <td>0.988095</td>\n",
|
|
" <td>1.739584</td>\n",
|
|
" <td>-174.248426</td>\n",
|
|
" <td>0.63431</td>\n",
|
|
" <td>0.3</td>\n",
|
|
" <td>0.337565</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" AUC Accuracy Positive precision Positive recall \\\n",
|
|
"0 0.754464 0.86 0.75 0.1875 \n",
|
|
"\n",
|
|
" Negative precision Negative recall Log-loss Log-loss reduction \\\n",
|
|
"0 0.864583 0.988095 1.739584 -174.248426 \n",
|
|
"\n",
|
|
" Test-set entropy (prior Log-Loss/instance) F1 Score AUPRC \n",
|
|
"0 0.63431 0.3 0.337565 "
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Testing using file stream\n",
|
|
"%time metrics, scores = ppl.test(data_stream_test,\"Label\", output_scores = True) \n",
|
|
"\n",
|
|
"print(\"Prediction for first 5 rows:\")\n",
|
|
"display(scores[0:5])\n",
|
|
"\n",
|
|
"print(\"Evaluation of the model using .test(): \")\n",
|
|
"display(metrics)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"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.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|