Understand the idea
Dropping one category gives an explicit reference for linear coefficients with an intercept. Category coefficients compare with that reference, conditional on other inputs.
Python skill: Omits one category indicator so coefficients compare other categories with that reference.
Meet the syntax
OneHotEncoder(drop='first')
prepare.get_feature_names_out()drop='first'- Omits one category indicator so coefficients compare other categories with that reference.
prepare.get_feature_names_out()- Returns names in the transformed-column order so coefficients can be labelled correctly.
Follow the code
Use the numbered comments to connect each Python block to the workflow above.
encoder=model.named_steps['prepare'].named_transformers_['service']
answer=encoder.categories_[0][encoder.drop_idx_[0]]
This practice: Read and run the Python. Next: Change · Read coefficients after encoding.
Given data · MIX60
60 observations. One synthetic delivery observation generated for practice. The dataframe df is supplied afresh for each Run.
| distance | weight | service | weekend | duration |
|---|---|---|---|---|
| 15.7052 | 6.75035 | standard | 0 | 61.7704 |
| 9.33869 | 4.81674 | express | 1 | 35.1694 |
| 17.3134 | 5.73931 | economy | 0 | 59.0766 |
| 14.25 | 7.69699 | standard | 1 | 56.5785 |
| 2.78937 | 6.42024 | express | 0 | 19.5577 |
| 19.5368 | 5.62508 | economy | 1 | 77.0289 |
| 15.4617 | 5.68023 | standard | 0 | 56.8109 |
| 15.9352 | 3.17871 | express | 1 | 52.08 |
Column meanings and units
Distance, weight and duration use the fixture’s numeric units; no kilometres, kilograms, minutes or other physical units are specified. RMSE is reported in the same synthetic duration units as the target.
These deterministic teaching observations do not describe real deliveries. Service effects and the alternating weekend flag are built into the generated response; they do not establish real-world causal effects.
distancefloat64- Numeric delivery-distance inputUnit / values: Synthetic distance units; physical unit unspecified
weightfloat64- Numeric parcel-weight inputUnit / values: Synthetic weight units; physical unit unspecified
servicestr- Delivery-service categoryUnit / values: standard / express / economy
weekendint64- Binary weekend input, alternating in the fixtureUnit / values: 0 / 1 indicator
durationfloat64- Numeric delivery-duration targetUnit / values: Synthetic duration units; physical unit unspecified
Supplied setup · available if you need to inspect it
This code runs before your editor on every Run. These are the objects your exercise uses.
from sklearn.model_selection import train_test_split
X = df[['distance','weight','service','weekend']]
y = df['duration']
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=.2,random_state=42)
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
prepare=ColumnTransformer([('numeric','passthrough',['distance','weight']),('service',OneHotEncoder(drop='first',handle_unknown='ignore',sparse_output=False),['service'])])
model=Pipeline([('prepare',prepare),('model',LinearRegression())]).fit(X_train,y_train)
Your task · Follow
Identify the omitted service reference from the fitted encoder.
Hint 1 — Think
The omitted indicator establishes the category against which the encoded coefficient is compared.
Hint 2 — Tools
named_transformers_, categories_ and drop_idx_.
Hint 3 — Approach
Reach the fitted service encoder and use its dropped-position metadata to identify the reference.
Explained solution
encoder=model.named_steps['prepare'].named_transformers_['service']
answer=encoder.categories_[0][encoder.drop_idx_[0]]
Reading fitted metadata avoids assuming an alphabetical reference or guessing from input order.
Helpful prior knowledge: Several predictors, conditional comparisons · Encode categories without inventing order These links are guidance, not locks.
Sources and API context
Examples run with this Playground’s scikit-learn 1.4.2 / Pyodide 0.26.4 runtime.