#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_
如果我更改特征的顺序,coef仍然以相同的顺序打印,因此我想知道特征与coef的映射
这是我在Jupyter中用来打印系数的工具。我不知道为什么顺序是一个问题-据我所知,系数的顺序应该与您给出的输入数据的顺序相匹配。
请注意,第一行假设您有一个名为df的Pandas数据帧,在将其转换为numpy数组进行回归之前,您最初将数据存储在该数据帧中:
诀窍在于,在训练完模型之后,您就知道了系数的顺序:
这将打印系数和正确的特征。(用熊猫数据框测试)
如果以后要重用系数,也可以将其放入字典中:
(您可以通过培训具有相同功能的两个模型来测试它,但正如您所说的,功能顺序是无序的。)
@Robin给出了一个很好的答案,但对我来说,我必须对它做一个调整,才能按照我想要的方式工作,这是指我想要的“coef”np.array的维度,即修改为:model_1.coef_0,:],如下所示:
然后,按照我的想象创建了dict,它有{feature_name':coefficient_value}对。
相关问题 更多 >
编程相关推荐