## Exemple de Preprocessing Simple (Encoding + Normalisation)
```python
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, OrdinalEncoder
```
## Data
```python
df = sns.load_dataset('diamonds')
df.head()
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>carat</th>
<th>cut</th>
<th>color</th>
<th>clarity</th>
<th>depth</th>
<th>table</th>
<th>price</th>
<th>x</th>
<th>y</th>
<th>z</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0.23</td>
<td>Ideal</td>
<td>E</td>
<td>SI2</td>
<td>61.5</td>
<td>55.0</td>
<td>326</td>
<td>3.95</td>
<td>3.98</td>
<td>2.43</td>
</tr>
<tr>
<th>1</th>
<td>0.21</td>
<td>Premium</td>
<td>E</td>
<td>SI1</td>
<td>59.8</td>
<td>61.0</td>
<td>326</td>
<td>3.89</td>
<td>3.84</td>
<td>2.31</td>
</tr>
<tr>
<th>2</th>
<td>0.23</td>
<td>Good</td>
<td>E</td>
<td>VS1</td>
<td>56.9</td>
<td>65.0</td>
<td>327</td>
<td>4.05</td>
<td>4.07</td>
<td>2.31</td>
</tr>
<tr>
<th>3</th>
<td>0.29</td>
<td>Premium</td>
<td>I</td>
<td>VS2</td>
<td>62.4</td>
<td>58.0</td>
<td>334</td>
<td>4.20</td>
<td>4.23</td>
<td>2.63</td>
</tr>
<tr>
<th>4</th>
<td>0.31</td>
<td>Good</td>
<td>J</td>
<td>SI2</td>
<td>63.3</td>
<td>58.0</td>
<td>335</td>
<td>4.34</td>
<td>4.35</td>
<td>2.75</td>
</tr>
</tbody>
</table>
</div>
## Train Test Split
```python
train_set, test_set = train_test_split(df, test_size=0.2, random_state=0)
```
```python
print("train_set:", train_set.shape)
print("test_set:", test_set.shape)
```
train_set: (43152, 10)
test_set: (10788, 10)
## Encoding
```python
cut_order = ['Fair', 'Good', 'Very Good', 'Premium', 'Ideal']
clarity_order = ['I1', 'SI2', 'SI1', 'VS2', 'VS1', 'VVS2', 'VVS1', 'IF']
color_order = ['E', 'I', 'J', 'H', 'F', 'G', 'D']
encoder = OrdinalEncoder(categories=[cut_order, color_order, clarity_order])
encoding_result = encoder.fit_transform(train_set[['cut', 'color', 'clarity']])
encoding_result
```
array([[4., 5., 4.],
[4., 5., 3.],
[4., 0., 5.],
...,
[3., 1., 4.],
[4., 5., 7.],
[4., 4., 1.]])
```python
train_set[['cut', 'color', 'clarity']] = encoding_result
train_set
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>carat</th>
<th>cut</th>
<th>color</th>
<th>clarity</th>
<th>depth</th>
<th>table</th>
<th>price</th>
<th>x</th>
<th>y</th>
<th>z</th>
</tr>
</thead>
<tbody>
<tr>
<th>26250</th>
<td>1.63</td>
<td>4.0</td>
<td>5.0</td>
<td>4.0</td>
<td>61.7</td>
<td>55.0</td>
<td>15697</td>
<td>7.56</td>
<td>7.60</td>
<td>4.68</td>
</tr>
<tr>
<th>31510</th>
<td>0.34</td>
<td>4.0</td>
<td>5.0</td>
<td>3.0</td>
<td>62.2</td>
<td>57.0</td>
<td>765</td>
<td>4.47</td>
<td>4.44</td>
<td>2.77</td>
</tr>
<tr>
<th>40698</th>
<td>0.40</td>
<td>4.0</td>
<td>0.0</td>
<td>5.0</td>
<td>61.7</td>
<td>56.0</td>
<td>1158</td>
<td>4.73</td>
<td>4.77</td>
<td>2.93</td>
</tr>
<tr>
<th>42634</th>
<td>0.58</td>
<td>3.0</td>
<td>3.0</td>
<td>2.0</td>
<td>62.1</td>
<td>55.0</td>
<td>1332</td>
<td>5.38</td>
<td>5.35</td>
<td>3.33</td>
</tr>
<tr>
<th>47714</th>
<td>0.63</td>
<td>2.0</td>
<td>6.0</td>
<td>2.0</td>
<td>62.8</td>
<td>57.0</td>
<td>1885</td>
<td>5.40</td>
<td>5.46</td>
<td>3.41</td>
</tr>
<tr>
<th>...</th>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<th>45891</th>
<td>0.52</td>
<td>3.0</td>
<td>4.0</td>
<td>3.0</td>
<td>60.7</td>
<td>59.0</td>
<td>1720</td>
<td>5.18</td>
<td>5.14</td>
<td>3.13</td>
</tr>
<tr>
<th>52416</th>
<td>0.70</td>
<td>1.0</td>
<td>6.0</td>
<td>2.0</td>
<td>63.6</td>
<td>60.0</td>
<td>2512</td>
<td>5.59</td>
<td>5.51</td>
<td>3.51</td>
</tr>
<tr>
<th>42613</th>
<td>0.32</td>
<td>3.0</td>
<td>1.0</td>
<td>4.0</td>
<td>61.3</td>
<td>58.0</td>
<td>505</td>
<td>4.35</td>
<td>4.39</td>
<td>2.68</td>
</tr>
<tr>
<th>43567</th>
<td>0.41</td>
<td>4.0</td>
<td>5.0</td>
<td>7.0</td>
<td>61.0</td>
<td>57.0</td>
<td>1431</td>
<td>4.81</td>
<td>4.79</td>
<td>2.93</td>
</tr>
<tr>
<th>2732</th>
<td>0.91</td>
<td>4.0</td>
<td>4.0</td>
<td>1.0</td>
<td>61.1</td>
<td>55.0</td>
<td>3246</td>
<td>6.24</td>
<td>6.19</td>
<td>3.80</td>
</tr>
</tbody>
</table>
<p>43152 rows × 10 columns</p>
</div>
## Normalisation
```python
normalizer = MinMaxScaler()
train_set = normalizer.fit_transform(train_set)
train_set
```
array([[0.2972973 , 1. , 0.83333333, ..., 0.70391061, 0.12903226,
0.14716981],
[0.02910603, 1. , 0.83333333, ..., 0.41620112, 0.075382 ,
0.08710692],
[0.04158004, 1. , 0. , ..., 0.44040968, 0.08098472,
0.09213836],
...,
[0.02494802, 0.75 , 0.16666667, ..., 0.40502793, 0.07453311,
0.08427673],
[0.04365904, 1. , 0.83333333, ..., 0.44785847, 0.08132428,
0.09213836],
[0.14760915, 1. , 0.66666667, ..., 0.58100559, 0.10509338,
0.11949686]])
```python
pd.DataFrame(train_set, columns=df.columns)
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>carat</th>
<th>cut</th>
<th>color</th>
<th>clarity</th>
<th>depth</th>
<th>table</th>
<th>price</th>
<th>x</th>
<th>y</th>
<th>z</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0.297297</td>
<td>1.00</td>
<td>0.833333</td>
<td>0.571429</td>
<td>0.519444</td>
<td>0.333333</td>
<td>0.830990</td>
<td>0.703911</td>
<td>0.129032</td>
<td>0.147170</td>
</tr>
<tr>
<th>1</th>
<td>0.029106</td>
<td>1.00</td>
<td>0.833333</td>
<td>0.428571</td>
<td>0.533333</td>
<td>0.388889</td>
<td>0.023681</td>
<td>0.416201</td>
<td>0.075382</td>
<td>0.087107</td>
</tr>
<tr>
<th>2</th>
<td>0.041580</td>
<td>1.00</td>
<td>0.000000</td>
<td>0.714286</td>
<td>0.519444</td>
<td>0.361111</td>
<td>0.044929</td>
<td>0.440410</td>
<td>0.080985</td>
<td>0.092138</td>
</tr>
<tr>
<th>3</th>
<td>0.079002</td>
<td>0.75</td>
<td>0.500000</td>
<td>0.285714</td>
<td>0.530556</td>
<td>0.333333</td>
<td>0.054336</td>
<td>0.500931</td>
<td>0.090832</td>
<td>0.104717</td>
</tr>
<tr>
<th>4</th>
<td>0.089397</td>
<td>0.50</td>
<td>1.000000</td>
<td>0.285714</td>
<td>0.550000</td>
<td>0.388889</td>
<td>0.084234</td>
<td>0.502793</td>
<td>0.092699</td>
<td>0.107233</td>
</tr>
<tr>
<th>...</th>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<th>43147</th>
<td>0.066528</td>
<td>0.75</td>
<td>0.666667</td>
<td>0.428571</td>
<td>0.491667</td>
<td>0.444444</td>
<td>0.075314</td>
<td>0.482309</td>
<td>0.087267</td>
<td>0.098428</td>
</tr>
<tr>
<th>43148</th>
<td>0.103950</td>
<td>0.25</td>
<td>1.000000</td>
<td>0.285714</td>
<td>0.572222</td>
<td>0.472222</td>
<td>0.118134</td>
<td>0.520484</td>
<td>0.093548</td>
<td>0.110377</td>
</tr>
<tr>
<th>43149</th>
<td>0.024948</td>
<td>0.75</td>
<td>0.166667</td>
<td>0.571429</td>
<td>0.508333</td>
<td>0.416667</td>
<td>0.009624</td>
<td>0.405028</td>
<td>0.074533</td>
<td>0.084277</td>
</tr>
<tr>
<th>43150</th>
<td>0.043659</td>
<td>1.00</td>
<td>0.833333</td>
<td>1.000000</td>
<td>0.500000</td>
<td>0.388889</td>
<td>0.059689</td>
<td>0.447858</td>
<td>0.081324</td>
<td>0.092138</td>
</tr>
<tr>
<th>43151</th>
<td>0.147609</td>
<td>1.00</td>
<td>0.666667</td>
<td>0.142857</td>
<td>0.502778</td>
<td>0.333333</td>
<td>0.157818</td>
<td>0.581006</td>
<td>0.105093</td>
<td>0.119497</td>
</tr>
</tbody>
</table>
<p>43152 rows × 10 columns</p>
</div>
## Transformation du Test Set
```python
encoding_result = encoder.transform(test_set[['cut', 'color', 'clarity']]) #attention surtout pas fit_transform !!
test_set[['cut', 'color', 'clarity']] = encoding_result
test_set = normalizer.transform(test_set)
pd.DataFrame(test_set, columns=df.columns)
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>carat</th>
<th>cut</th>
<th>color</th>
<th>clarity</th>
<th>depth</th>
<th>table</th>
<th>price</th>
<th>x</th>
<th>y</th>
<th>z</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0.187110</td>
<td>1.00</td>
<td>0.500000</td>
<td>0.142857</td>
<td>0.527778</td>
<td>0.333333</td>
<td>0.238214</td>
<td>0.615456</td>
<td>0.112903</td>
<td>0.129245</td>
</tr>
<tr>
<th>1</th>
<td>0.226611</td>
<td>1.00</td>
<td>0.500000</td>
<td>0.285714</td>
<td>0.544444</td>
<td>0.361111</td>
<td>0.329639</td>
<td>0.648045</td>
<td>0.117657</td>
<td>0.136792</td>
</tr>
<tr>
<th>2</th>
<td>0.207900</td>
<td>0.75</td>
<td>0.166667</td>
<td>0.285714</td>
<td>0.502778</td>
<td>0.416667</td>
<td>0.280223</td>
<td>0.640596</td>
<td>0.115450</td>
<td>0.131447</td>
</tr>
<tr>
<th>3</th>
<td>0.270270</td>
<td>1.00</td>
<td>0.666667</td>
<td>0.285714</td>
<td>0.497222</td>
<td>0.361111</td>
<td>0.456477</td>
<td>0.691806</td>
<td>0.124958</td>
<td>0.141509</td>
</tr>
<tr>
<th>4</th>
<td>0.145530</td>
<td>0.50</td>
<td>0.666667</td>
<td>0.428571</td>
<td>0.519444</td>
<td>0.388889</td>
<td>0.225238</td>
<td>0.574488</td>
<td>0.105433</td>
<td>0.120126</td>
</tr>
<tr>
<th>...</th>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<th>10783</th>
<td>0.066528</td>
<td>0.25</td>
<td>0.500000</td>
<td>0.428571</td>
<td>0.572222</td>
<td>0.388889</td>
<td>0.052011</td>
<td>0.470205</td>
<td>0.086587</td>
<td>0.101572</td>
</tr>
<tr>
<th>10784</th>
<td>0.147609</td>
<td>0.50</td>
<td>0.833333</td>
<td>0.142857</td>
<td>0.483333</td>
<td>0.500000</td>
<td>0.168036</td>
<td>0.578212</td>
<td>0.106621</td>
<td>0.118553</td>
</tr>
<tr>
<th>10785</th>
<td>0.182952</td>
<td>0.50</td>
<td>0.666667</td>
<td>0.142857</td>
<td>0.566667</td>
<td>0.333333</td>
<td>0.190311</td>
<td>0.608007</td>
<td>0.110357</td>
<td>0.129874</td>
</tr>
<tr>
<th>10786</th>
<td>0.170478</td>
<td>1.00</td>
<td>0.833333</td>
<td>0.857143</td>
<td>0.513889</td>
<td>0.388889</td>
<td>0.423929</td>
<td>0.599628</td>
<td>0.109847</td>
<td>0.124843</td>
</tr>
<tr>
<th>10787</th>
<td>0.062370</td>
<td>0.25</td>
<td>0.000000</td>
<td>0.714286</td>
<td>0.605556</td>
<td>0.416667</td>
<td>0.085965</td>
<td>0.462756</td>
<td>0.084890</td>
<td>0.101572</td>
</tr>
</tbody>
</table>
<p>10788 rows × 10 columns</p>
</div>
## Simplifier te tout avec une Pipeline
```python
from sklearn.pipeline import Pipeline, make_pipeline
```
```python
df = sns.load_dataset('diamonds')
df.head()
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>carat</th>
<th>cut</th>
<th>color</th>
<th>clarity</th>
<th>depth</th>
<th>table</th>
<th>price</th>
<th>x</th>
<th>y</th>
<th>z</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0.23</td>
<td>Ideal</td>
<td>E</td>
<td>SI2</td>
<td>61.5</td>
<td>55.0</td>
<td>326</td>
<td>3.95</td>
<td>3.98</td>
<td>2.43</td>
</tr>
<tr>
<th>1</th>
<td>0.21</td>
<td>Premium</td>
<td>E</td>
<td>SI1</td>
<td>59.8</td>
<td>61.0</td>
<td>326</td>
<td>3.89</td>
<td>3.84</td>
<td>2.31</td>
</tr>
<tr>
<th>2</th>
<td>0.23</td>
<td>Good</td>
<td>E</td>
<td>VS1</td>
<td>56.9</td>
<td>65.0</td>
<td>327</td>
<td>4.05</td>
<td>4.07</td>
<td>2.31</td>
</tr>
<tr>
<th>3</th>
<td>0.29</td>
<td>Premium</td>
<td>I</td>
<td>VS2</td>
<td>62.4</td>
<td>58.0</td>
<td>334</td>
<td>4.20</td>
<td>4.23</td>
<td>2.63</td>
</tr>
<tr>
<th>4</th>
<td>0.31</td>
<td>Good</td>
<td>J</td>
<td>SI2</td>
<td>63.3</td>
<td>58.0</td>
<td>335</td>
<td>4.34</td>
<td>4.35</td>
<td>2.75</td>
</tr>
</tbody>
</table>
</div>
```python
train_set, test_set = train_test_split(df, test_size=0.2, random_state=0)
```
```python
# on utilise soit la fonction pipeline :
pipeline = make_pipeline(OrdinalEncoder(), MinMaxScaler())
# soit la classe Pipeline :
pipeline = Pipeline([('encoder', OrdinalEncoder()), ('scaler', MinMaxScaler())])
```
```python
pipeline
```
<style>#sk-container-id-7 {
/* Definition of color scheme common for light and dark mode */
--sklearn-color-text: black;
--sklearn-color-line: gray;
/* Definition of color scheme for unfitted estimators */
--sklearn-color-unfitted-level-0: #fff5e6;
--sklearn-color-unfitted-level-1: #f6e4d2;
--sklearn-color-unfitted-level-2: #ffe0b3;
--sklearn-color-unfitted-level-3: chocolate;
/* Definition of color scheme for fitted estimators */
--sklearn-color-fitted-level-0: #f0f8ff;
--sklearn-color-fitted-level-1: #d4ebff;
--sklearn-color-fitted-level-2: #b3dbfd;
--sklearn-color-fitted-level-3: cornflowerblue;
/* Specific color for light theme */
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
--sklearn-color-icon: #696969;
@media (prefers-color-scheme: dark) {
/* Redefinition of color scheme for dark theme */
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
--sklearn-color-icon: #878787;
}
}
#sk-container-id-7 {
color: var(--sklearn-color-text);
}
#sk-container-id-7 pre {
padding: 0;
}
#sk-container-id-7 input.sk-hidden--visually {
border: 0;
clip: rect(1px 1px 1px 1px);
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
#sk-container-id-7 div.sk-dashed-wrapped {
border: 1px dashed var(--sklearn-color-line);
margin: 0 0.4em 0.5em 0.4em;
box-sizing: border-box;
padding-bottom: 0.4em;
background-color: var(--sklearn-color-background);
}
#sk-container-id-7 div.sk-container {
/* jupyter's `normalize.less` sets `[hidden] { display: none; }`
but bootstrap.min.css set `[hidden] { display: none !important; }`
so we also need the `!important` here to be able to override the
default hidden behavior on the sphinx rendered scikit-learn.org.
See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
display: inline-block !important;
position: relative;
}
#sk-container-id-7 div.sk-text-repr-fallback {
display: none;
}
div.sk-parallel-item,
div.sk-serial,
div.sk-item {
/* draw centered vertical line to link estimators */
background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
background-size: 2px 100%;
background-repeat: no-repeat;
background-position: center center;
}
/* Parallel-specific style estimator block */
#sk-container-id-7 div.sk-parallel-item::after {
content: "";
width: 100%;
border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
flex-grow: 1;
}
#sk-container-id-7 div.sk-parallel {
display: flex;
align-items: stretch;
justify-content: center;
background-color: var(--sklearn-color-background);
position: relative;
}
#sk-container-id-7 div.sk-parallel-item {
display: flex;
flex-direction: column;
}
#sk-container-id-7 div.sk-parallel-item:first-child::after {
align-self: flex-end;
width: 50%;
}
#sk-container-id-7 div.sk-parallel-item:last-child::after {
align-self: flex-start;
width: 50%;
}
#sk-container-id-7 div.sk-parallel-item:only-child::after {
width: 0;
}
/* Serial-specific style estimator block */
#sk-container-id-7 div.sk-serial {
display: flex;
flex-direction: column;
align-items: center;
background-color: var(--sklearn-color-background);
padding-right: 1em;
padding-left: 1em;
}
/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
clickable and can be expanded/collapsed.
- Pipeline and ColumnTransformer use this feature and define the default style
- Estimators will overwrite some part of the style using the `sk-estimator` class
*/
/* Pipeline and ColumnTransformer style (default) */
#sk-container-id-7 div.sk-toggleable {
/* Default theme specific background. It is overwritten whether we have a
specific estimator or a Pipeline/ColumnTransformer */
background-color: var(--sklearn-color-background);
}
/* Toggleable label */
#sk-container-id-7 label.sk-toggleable__label {
cursor: pointer;
display: block;
width: 100%;
margin-bottom: 0;
padding: 0.5em;
box-sizing: border-box;
text-align: center;
}
#sk-container-id-7 label.sk-toggleable__label-arrow:before {
/* Arrow on the left of the label */
content: "▸";
float: left;
margin-right: 0.25em;
color: var(--sklearn-color-icon);
}
#sk-container-id-7 label.sk-toggleable__label-arrow:hover:before {
color: var(--sklearn-color-text);
}
/* Toggleable content - dropdown */
#sk-container-id-7 div.sk-toggleable__content {
max-height: 0;
max-width: 0;
overflow: hidden;
text-align: left;
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-0);
}
#sk-container-id-7 div.sk-toggleable__content.fitted {
/* fitted */
background-color: var(--sklearn-color-fitted-level-0);
}
#sk-container-id-7 div.sk-toggleable__content pre {
margin: 0.2em;
border-radius: 0.25em;
color: var(--sklearn-color-text);
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-0);
}
#sk-container-id-7 div.sk-toggleable__content.fitted pre {
/* unfitted */
background-color: var(--sklearn-color-fitted-level-0);
}
#sk-container-id-7 input.sk-toggleable__control:checked~div.sk-toggleable__content {
/* Expand drop-down */
max-height: 200px;
max-width: 100%;
overflow: auto;
}
#sk-container-id-7 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
content: "▾";
}
/* Pipeline/ColumnTransformer-specific style */
#sk-container-id-7 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
color: var(--sklearn-color-text);
background-color: var(--sklearn-color-unfitted-level-2);
}
#sk-container-id-7 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
background-color: var(--sklearn-color-fitted-level-2);
}
/* Estimator-specific style */
/* Colorize estimator box */
#sk-container-id-7 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-2);
}
#sk-container-id-7 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
/* fitted */
background-color: var(--sklearn-color-fitted-level-2);
}
#sk-container-id-7 div.sk-label label.sk-toggleable__label,
#sk-container-id-7 div.sk-label label {
/* The background is the default theme color */
color: var(--sklearn-color-text-on-default-background);
}
/* On hover, darken the color of the background */
#sk-container-id-7 div.sk-label:hover label.sk-toggleable__label {
color: var(--sklearn-color-text);
background-color: var(--sklearn-color-unfitted-level-2);
}
/* Label box, darken color on hover, fitted */
#sk-container-id-7 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
color: var(--sklearn-color-text);
background-color: var(--sklearn-color-fitted-level-2);
}
/* Estimator label */
#sk-container-id-7 div.sk-label label {
font-family: monospace;
font-weight: bold;
display: inline-block;
line-height: 1.2em;
}
#sk-container-id-7 div.sk-label-container {
text-align: center;
}
/* Estimator-specific */
#sk-container-id-7 div.sk-estimator {
font-family: monospace;
border: 1px dotted var(--sklearn-color-border-box);
border-radius: 0.25em;
box-sizing: border-box;
margin-bottom: 0.5em;
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-0);
}
#sk-container-id-7 div.sk-estimator.fitted {
/* fitted */
background-color: var(--sklearn-color-fitted-level-0);
}
/* on hover */
#sk-container-id-7 div.sk-estimator:hover {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-2);
}
#sk-container-id-7 div.sk-estimator.fitted:hover {
/* fitted */
background-color: var(--sklearn-color-fitted-level-2);
}
/* Specification for estimator info (e.g. "i" and "?") */
/* Common style for "i" and "?" */
.sk-estimator-doc-link,
a:link.sk-estimator-doc-link,
a:visited.sk-estimator-doc-link {
float: right;
font-size: smaller;
line-height: 1em;
font-family: monospace;
background-color: var(--sklearn-color-background);
border-radius: 1em;
height: 1em;
width: 1em;
text-decoration: none !important;
margin-left: 1ex;
/* unfitted */
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
color: var(--sklearn-color-unfitted-level-1);
}
.sk-estimator-doc-link.fitted,
a:link.sk-estimator-doc-link.fitted,
a:visited.sk-estimator-doc-link.fitted {
/* fitted */
border: var(--sklearn-color-fitted-level-1) 1pt solid;
color: var(--sklearn-color-fitted-level-1);
}
/* On hover */
div.sk-estimator:hover .sk-estimator-doc-link:hover,
.sk-estimator-doc-link:hover,
div.sk-label-container:hover .sk-estimator-doc-link:hover,
.sk-estimator-doc-link:hover {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-3);
color: var(--sklearn-color-background);
text-decoration: none;
}
div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
.sk-estimator-doc-link.fitted:hover,
div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
.sk-estimator-doc-link.fitted:hover {
/* fitted */
background-color: var(--sklearn-color-fitted-level-3);
color: var(--sklearn-color-background);
text-decoration: none;
}
/* Span, style for the box shown on hovering the info icon */
.sk-estimator-doc-link span {
display: none;
z-index: 9999;
position: relative;
font-weight: normal;
right: .2ex;
padding: .5ex;
margin: .5ex;
width: min-content;
min-width: 20ex;
max-width: 50ex;
color: var(--sklearn-color-text);
box-shadow: 2pt 2pt 4pt #999;
/* unfitted */
background: var(--sklearn-color-unfitted-level-0);
border: .5pt solid var(--sklearn-color-unfitted-level-3);
}
.sk-estimator-doc-link.fitted span {
/* fitted */
background: var(--sklearn-color-fitted-level-0);
border: var(--sklearn-color-fitted-level-3);
}
.sk-estimator-doc-link:hover span {
display: block;
}
/* "?"-specific style due to the `<a>` HTML tag */
#sk-container-id-7 a.estimator_doc_link {
float: right;
font-size: 1rem;
line-height: 1em;
font-family: monospace;
background-color: var(--sklearn-color-background);
border-radius: 1rem;
height: 1rem;
width: 1rem;
text-decoration: none;
/* unfitted */
color: var(--sklearn-color-unfitted-level-1);
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
}
#sk-container-id-7 a.estimator_doc_link.fitted {
/* fitted */
border: var(--sklearn-color-fitted-level-1) 1pt solid;
color: var(--sklearn-color-fitted-level-1);
}
/* On hover */
#sk-container-id-7 a.estimator_doc_link:hover {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-3);
color: var(--sklearn-color-background);
text-decoration: none;
}
#sk-container-id-7 a.estimator_doc_link.fitted:hover {
/* fitted */
background-color: var(--sklearn-color-fitted-level-3);
}
</style><div id="sk-container-id-7" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>Pipeline(steps=[('encoder', OrdinalEncoder()), ('scaler', MinMaxScaler())])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item sk-dashed-wrapped"><div class="sk-label-container"><div class="sk-label sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-25" type="checkbox" ><label for="sk-estimator-id-25" class="sk-toggleable__label sk-toggleable__label-arrow "> Pipeline<a class="sk-estimator-doc-link " rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.pipeline.Pipeline.html">?<span>Documentation for Pipeline</span></a><span class="sk-estimator-doc-link ">i<span>Not fitted</span></span></label><div class="sk-toggleable__content "><pre>Pipeline(steps=[('encoder', OrdinalEncoder()), ('scaler', MinMaxScaler())])</pre></div> </div></div><div class="sk-serial"><div class="sk-item"><div class="sk-estimator sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-26" type="checkbox" ><label for="sk-estimator-id-26" class="sk-toggleable__label sk-toggleable__label-arrow "> OrdinalEncoder<a class="sk-estimator-doc-link " rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.preprocessing.OrdinalEncoder.html">?<span>Documentation for OrdinalEncoder</span></a></label><div class="sk-toggleable__content "><pre>OrdinalEncoder()</pre></div> </div></div><div class="sk-item"><div class="sk-estimator sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-27" type="checkbox" ><label for="sk-estimator-id-27" class="sk-toggleable__label sk-toggleable__label-arrow "> MinMaxScaler<a class="sk-estimator-doc-link " rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.preprocessing.MinMaxScaler.html">?<span>Documentation for MinMaxScaler</span></a></label><div class="sk-toggleable__content "><pre>MinMaxScaler()</pre></div> </div></div></div></div></div></div>
Attention, ici l'encoder va encoder toutes les variables, ce qui n'a pas de sens -> il faut préciser les colonnes que l'on veut encoder en créant des pipelines composées (*Column Transformer*).
## Pipeline Composée
```python
from sklearn.compose import ColumnTransformer
```
```python
categorical_cols = ['cut', 'color', 'clarity']
```
```python
Column_transformer = ColumnTransformer(transformers=[('encoder', OrdinalEncoder(), categorical_cols)], remainder='passthrough')
```
```python
pipeline = make_pipeline(Column_transformer, MinMaxScaler())
pipeline
```
<style>#sk-container-id-8 {
/* Definition of color scheme common for light and dark mode */
--sklearn-color-text: black;
--sklearn-color-line: gray;
/* Definition of color scheme for unfitted estimators */
--sklearn-color-unfitted-level-0: #fff5e6;
--sklearn-color-unfitted-level-1: #f6e4d2;
--sklearn-color-unfitted-level-2: #ffe0b3;
--sklearn-color-unfitted-level-3: chocolate;
/* Definition of color scheme for fitted estimators */
--sklearn-color-fitted-level-0: #f0f8ff;
--sklearn-color-fitted-level-1: #d4ebff;
--sklearn-color-fitted-level-2: #b3dbfd;
--sklearn-color-fitted-level-3: cornflowerblue;
/* Specific color for light theme */
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
--sklearn-color-icon: #696969;
@media (prefers-color-scheme: dark) {
/* Redefinition of color scheme for dark theme */
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
--sklearn-color-icon: #878787;
}
}
#sk-container-id-8 {
color: var(--sklearn-color-text);
}
#sk-container-id-8 pre {
padding: 0;
}
#sk-container-id-8 input.sk-hidden--visually {
border: 0;
clip: rect(1px 1px 1px 1px);
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
#sk-container-id-8 div.sk-dashed-wrapped {
border: 1px dashed var(--sklearn-color-line);
margin: 0 0.4em 0.5em 0.4em;
box-sizing: border-box;
padding-bottom: 0.4em;
background-color: var(--sklearn-color-background);
}
#sk-container-id-8 div.sk-container {
/* jupyter's `normalize.less` sets `[hidden] { display: none; }`
but bootstrap.min.css set `[hidden] { display: none !important; }`
so we also need the `!important` here to be able to override the
default hidden behavior on the sphinx rendered scikit-learn.org.
See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
display: inline-block !important;
position: relative;
}
#sk-container-id-8 div.sk-text-repr-fallback {
display: none;
}
div.sk-parallel-item,
div.sk-serial,
div.sk-item {
/* draw centered vertical line to link estimators */
background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
background-size: 2px 100%;
background-repeat: no-repeat;
background-position: center center;
}
/* Parallel-specific style estimator block */
#sk-container-id-8 div.sk-parallel-item::after {
content: "";
width: 100%;
border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
flex-grow: 1;
}
#sk-container-id-8 div.sk-parallel {
display: flex;
align-items: stretch;
justify-content: center;
background-color: var(--sklearn-color-background);
position: relative;
}
#sk-container-id-8 div.sk-parallel-item {
display: flex;
flex-direction: column;
}
#sk-container-id-8 div.sk-parallel-item:first-child::after {
align-self: flex-end;
width: 50%;
}
#sk-container-id-8 div.sk-parallel-item:last-child::after {
align-self: flex-start;
width: 50%;
}
#sk-container-id-8 div.sk-parallel-item:only-child::after {
width: 0;
}
/* Serial-specific style estimator block */
#sk-container-id-8 div.sk-serial {
display: flex;
flex-direction: column;
align-items: center;
background-color: var(--sklearn-color-background);
padding-right: 1em;
padding-left: 1em;
}
/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
clickable and can be expanded/collapsed.
- Pipeline and ColumnTransformer use this feature and define the default style
- Estimators will overwrite some part of the style using the `sk-estimator` class
*/
/* Pipeline and ColumnTransformer style (default) */
#sk-container-id-8 div.sk-toggleable {
/* Default theme specific background. It is overwritten whether we have a
specific estimator or a Pipeline/ColumnTransformer */
background-color: var(--sklearn-color-background);
}
/* Toggleable label */
#sk-container-id-8 label.sk-toggleable__label {
cursor: pointer;
display: block;
width: 100%;
margin-bottom: 0;
padding: 0.5em;
box-sizing: border-box;
text-align: center;
}
#sk-container-id-8 label.sk-toggleable__label-arrow:before {
/* Arrow on the left of the label */
content: "▸";
float: left;
margin-right: 0.25em;
color: var(--sklearn-color-icon);
}
#sk-container-id-8 label.sk-toggleable__label-arrow:hover:before {
color: var(--sklearn-color-text);
}
/* Toggleable content - dropdown */
#sk-container-id-8 div.sk-toggleable__content {
max-height: 0;
max-width: 0;
overflow: hidden;
text-align: left;
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-0);
}
#sk-container-id-8 div.sk-toggleable__content.fitted {
/* fitted */
background-color: var(--sklearn-color-fitted-level-0);
}
#sk-container-id-8 div.sk-toggleable__content pre {
margin: 0.2em;
border-radius: 0.25em;
color: var(--sklearn-color-text);
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-0);
}
#sk-container-id-8 div.sk-toggleable__content.fitted pre {
/* unfitted */
background-color: var(--sklearn-color-fitted-level-0);
}
#sk-container-id-8 input.sk-toggleable__control:checked~div.sk-toggleable__content {
/* Expand drop-down */
max-height: 200px;
max-width: 100%;
overflow: auto;
}
#sk-container-id-8 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
content: "▾";
}
/* Pipeline/ColumnTransformer-specific style */
#sk-container-id-8 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
color: var(--sklearn-color-text);
background-color: var(--sklearn-color-unfitted-level-2);
}
#sk-container-id-8 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
background-color: var(--sklearn-color-fitted-level-2);
}
/* Estimator-specific style */
/* Colorize estimator box */
#sk-container-id-8 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-2);
}
#sk-container-id-8 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
/* fitted */
background-color: var(--sklearn-color-fitted-level-2);
}
#sk-container-id-8 div.sk-label label.sk-toggleable__label,
#sk-container-id-8 div.sk-label label {
/* The background is the default theme color */
color: var(--sklearn-color-text-on-default-background);
}
/* On hover, darken the color of the background */
#sk-container-id-8 div.sk-label:hover label.sk-toggleable__label {
color: var(--sklearn-color-text);
background-color: var(--sklearn-color-unfitted-level-2);
}
/* Label box, darken color on hover, fitted */
#sk-container-id-8 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
color: var(--sklearn-color-text);
background-color: var(--sklearn-color-fitted-level-2);
}
/* Estimator label */
#sk-container-id-8 div.sk-label label {
font-family: monospace;
font-weight: bold;
display: inline-block;
line-height: 1.2em;
}
#sk-container-id-8 div.sk-label-container {
text-align: center;
}
/* Estimator-specific */
#sk-container-id-8 div.sk-estimator {
font-family: monospace;
border: 1px dotted var(--sklearn-color-border-box);
border-radius: 0.25em;
box-sizing: border-box;
margin-bottom: 0.5em;
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-0);
}
#sk-container-id-8 div.sk-estimator.fitted {
/* fitted */
background-color: var(--sklearn-color-fitted-level-0);
}
/* on hover */
#sk-container-id-8 div.sk-estimator:hover {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-2);
}
#sk-container-id-8 div.sk-estimator.fitted:hover {
/* fitted */
background-color: var(--sklearn-color-fitted-level-2);
}
/* Specification for estimator info (e.g. "i" and "?") */
/* Common style for "i" and "?" */
.sk-estimator-doc-link,
a:link.sk-estimator-doc-link,
a:visited.sk-estimator-doc-link {
float: right;
font-size: smaller;
line-height: 1em;
font-family: monospace;
background-color: var(--sklearn-color-background);
border-radius: 1em;
height: 1em;
width: 1em;
text-decoration: none !important;
margin-left: 1ex;
/* unfitted */
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
color: var(--sklearn-color-unfitted-level-1);
}
.sk-estimator-doc-link.fitted,
a:link.sk-estimator-doc-link.fitted,
a:visited.sk-estimator-doc-link.fitted {
/* fitted */
border: var(--sklearn-color-fitted-level-1) 1pt solid;
color: var(--sklearn-color-fitted-level-1);
}
/* On hover */
div.sk-estimator:hover .sk-estimator-doc-link:hover,
.sk-estimator-doc-link:hover,
div.sk-label-container:hover .sk-estimator-doc-link:hover,
.sk-estimator-doc-link:hover {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-3);
color: var(--sklearn-color-background);
text-decoration: none;
}
div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
.sk-estimator-doc-link.fitted:hover,
div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
.sk-estimator-doc-link.fitted:hover {
/* fitted */
background-color: var(--sklearn-color-fitted-level-3);
color: var(--sklearn-color-background);
text-decoration: none;
}
/* Span, style for the box shown on hovering the info icon */
.sk-estimator-doc-link span {
display: none;
z-index: 9999;
position: relative;
font-weight: normal;
right: .2ex;
padding: .5ex;
margin: .5ex;
width: min-content;
min-width: 20ex;
max-width: 50ex;
color: var(--sklearn-color-text);
box-shadow: 2pt 2pt 4pt #999;
/* unfitted */
background: var(--sklearn-color-unfitted-level-0);
border: .5pt solid var(--sklearn-color-unfitted-level-3);
}
.sk-estimator-doc-link.fitted span {
/* fitted */
background: var(--sklearn-color-fitted-level-0);
border: var(--sklearn-color-fitted-level-3);
}
.sk-estimator-doc-link:hover span {
display: block;
}
/* "?"-specific style due to the `<a>` HTML tag */
#sk-container-id-8 a.estimator_doc_link {
float: right;
font-size: 1rem;
line-height: 1em;
font-family: monospace;
background-color: var(--sklearn-color-background);
border-radius: 1rem;
height: 1rem;
width: 1rem;
text-decoration: none;
/* unfitted */
color: var(--sklearn-color-unfitted-level-1);
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
}
#sk-container-id-8 a.estimator_doc_link.fitted {
/* fitted */
border: var(--sklearn-color-fitted-level-1) 1pt solid;
color: var(--sklearn-color-fitted-level-1);
}
/* On hover */
#sk-container-id-8 a.estimator_doc_link:hover {
/* unfitted */
background-color: var(--sklearn-color-unfitted-level-3);
color: var(--sklearn-color-background);
text-decoration: none;
}
#sk-container-id-8 a.estimator_doc_link.fitted:hover {
/* fitted */
background-color: var(--sklearn-color-fitted-level-3);
}
</style><div id="sk-container-id-8" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>Pipeline(steps=[('columntransformer',
ColumnTransformer(remainder='passthrough',
transformers=[('encoder', OrdinalEncoder(),
['cut', 'color',
'clarity'])])),
('minmaxscaler', MinMaxScaler())])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item sk-dashed-wrapped"><div class="sk-label-container"><div class="sk-label sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-28" type="checkbox" ><label for="sk-estimator-id-28" class="sk-toggleable__label sk-toggleable__label-arrow "> Pipeline<a class="sk-estimator-doc-link " rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.pipeline.Pipeline.html">?<span>Documentation for Pipeline</span></a><span class="sk-estimator-doc-link ">i<span>Not fitted</span></span></label><div class="sk-toggleable__content "><pre>Pipeline(steps=[('columntransformer',
ColumnTransformer(remainder='passthrough',
transformers=[('encoder', OrdinalEncoder(),
['cut', 'color',
'clarity'])])),
('minmaxscaler', MinMaxScaler())])</pre></div> </div></div><div class="sk-serial"><div class="sk-item sk-dashed-wrapped"><div class="sk-label-container"><div class="sk-label sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-29" type="checkbox" ><label for="sk-estimator-id-29" class="sk-toggleable__label sk-toggleable__label-arrow "> columntransformer: ColumnTransformer<a class="sk-estimator-doc-link " rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.compose.ColumnTransformer.html">?<span>Documentation for columntransformer: ColumnTransformer</span></a></label><div class="sk-toggleable__content "><pre>ColumnTransformer(remainder='passthrough',
transformers=[('encoder', OrdinalEncoder(),
['cut', 'color', 'clarity'])])</pre></div> </div></div><div class="sk-parallel"><div class="sk-parallel-item"><div class="sk-item"><div class="sk-label-container"><div class="sk-label sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-30" type="checkbox" ><label for="sk-estimator-id-30" class="sk-toggleable__label sk-toggleable__label-arrow ">encoder</label><div class="sk-toggleable__content "><pre>['cut', 'color', 'clarity']</pre></div> </div></div><div class="sk-serial"><div class="sk-item"><div class="sk-estimator sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-31" type="checkbox" ><label for="sk-estimator-id-31" class="sk-toggleable__label sk-toggleable__label-arrow "> OrdinalEncoder<a class="sk-estimator-doc-link " rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.preprocessing.OrdinalEncoder.html">?<span>Documentation for OrdinalEncoder</span></a></label><div class="sk-toggleable__content "><pre>OrdinalEncoder()</pre></div> </div></div></div></div></div><div class="sk-parallel-item"><div class="sk-item"><div class="sk-label-container"><div class="sk-label sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-32" type="checkbox" ><label for="sk-estimator-id-32" class="sk-toggleable__label sk-toggleable__label-arrow ">remainder</label><div class="sk-toggleable__content "><pre></pre></div> </div></div><div class="sk-serial"><div class="sk-item"><div class="sk-estimator sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-33" type="checkbox" ><label for="sk-estimator-id-33" class="sk-toggleable__label sk-toggleable__label-arrow ">passthrough</label><div class="sk-toggleable__content "><pre>passthrough</pre></div> </div></div></div></div></div></div></div><div class="sk-item"><div class="sk-estimator sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-34" type="checkbox" ><label for="sk-estimator-id-34" class="sk-toggleable__label sk-toggleable__label-arrow "> MinMaxScaler<a class="sk-estimator-doc-link " rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.preprocessing.MinMaxScaler.html">?<span>Documentation for MinMaxScaler</span></a></label><div class="sk-toggleable__content "><pre>MinMaxScaler()</pre></div> </div></div></div></div></div></div>
```python
pipeline.fit_transform(train_set)
```
array([[0.5 , 0.5 , 0.57142857, ..., 0.70391061, 0.12903226,
0.14716981],
[0.5 , 0.5 , 0.71428571, ..., 0.41620112, 0.075382 ,
0.08710692],
[0.5 , 0.16666667, 1. , ..., 0.44040968, 0.08098472,
0.09213836],
...,
[0.75 , 0.83333333, 0.57142857, ..., 0.40502793, 0.07453311,
0.08427673],
[0.5 , 0.5 , 0.14285714, ..., 0.44785847, 0.08132428,
0.09213836],
[0.5 , 0.33333333, 0.42857143, ..., 0.58100559, 0.10509338,
0.11949686]])
```python
pipeline.transform(test_set)
```
array([[0.5 , 0.66666667, 0.42857143, ..., 0.61545624, 0.11290323,
0.12924528],
[0.5 , 0.66666667, 0.28571429, ..., 0.64804469, 0.11765705,
0.13679245],
[0.75 , 0.83333333, 0.28571429, ..., 0.6405959 , 0.11544992,
0.13144654],
...,
[1. , 0.33333333, 0.42857143, ..., 0.60800745, 0.11035654,
0.12987421],
[0.5 , 0.5 , 0.85714286, ..., 0.59962756, 0.1098472 ,
0.12484277],
[0.25 , 0.16666667, 1. , ..., 0.46275605, 0.08488964,
0.10157233]])