How to find coefficient function names using linear scikit regression?

#training the model model_1_features = ['sqft_living', 'bathrooms', 'bedrooms', 'lat', 'long'] model_2_features = model_1_features + ['bed_bath_rooms'] model_3_features = model_2_features + ['bedrooms_squared', 'log_sqft_living', 'lat_plus_long'] model_1 = linear_model.LinearRegression() model_1.fit(train_data[model_1_features], train_data['price']) model_2 = linear_model.LinearRegression() model_2.fit(train_data[model_2_features], train_data['price']) model_3 = linear_model.LinearRegression() model_3.fit(train_data[model_3_features], train_data['price']) # extracting the coef print model_1.coef_ print model_2.coef_ print model_3.coef_ 

If I change the order of the functions, the dresser is still printed in the same order, so I would like to know that the function display with a coefficient

+6
source share
1 answer

The trick is that immediately after you have trained your model, you know the order of the coefficients:

 model_1 = linear_model.LinearRegression() model_1.fit(train_data[model_1_features], train_data['price']) print(list(zip(model_1.coef_, model_1_features))) 

This will print the coefficients and the correct function. (Tested with pandas DataFrame)

If you want to reuse coefficients later, you can also put them in a dictionary:

 coef_dict = {} for coef, feat in zip(model_1.coef_,model_1_features): coef_dict[feat] = coef 

(You can test it yourself by training two models with the same functions, but as you said, you shuffled the order of the functions.)

+5
source

All Articles