2016-01-07 6 views
6
#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 अभी भी उसी क्रम में मुद्रित कर रहे हैं, इसलिए मैं coeffscikit रैखिक प्रतिगमन का उपयोग कर गुणांक के सुविधाओं के नाम कैसे खोजें?

+0

आप सुविधाओं का क्रम कैसे बदलेंगे? मैं आमतौर पर इसे सही ढंग से मुद्रित करने के लिए कुछ ज़िप (कोफ, फीचर नाम) का उपयोग करता हूं। –

+0

@RobinSpiess उदाहरण model_e_features = [ 'bedrooms_squared', 'log_sqft_living', 'lat_plus_long'] model_2_features – amehta

उत्तर

5

चाल के साथ सुविधा की मैपिंग जानना चाहूंगा आपके पास सही होने के बाद कि है

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))) 

यह गुणांक और सही सुविधा प्रिंट होगा: अपने मॉडल प्रशिक्षित, आप गुणांकों के क्रम में पता है। (पांडा DataFrame साथ परीक्षण किया गया)

आप बाद में गुणांकों का पुन: उपयोग करना चाहते हैं तो आप भी एक शब्दकोश में डाल कर सकते हैं: एक ही सुविधाओं के साथ दो मॉडल प्रशिक्षण के द्वारा

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

(तुम खुद के लिए परीक्षण कर सकते हैं लेकिन जैसा कि आपने कहा, सुविधाओं के शफल आदेश।)

+0

मुझे लगता है कि यह 'होना चाहिए प्रिंट (सूची (ज़िप (model_1.coef_, model_1_features)))', यानी coef_ बजाय coef_ [0]। अन्यथा ज़िप के पास फिर से शुरू करने के लिए कुछ भी नहीं है। –

+0

@AlexFedulov आह हाँ, धन्यवाद। मुझे लगता है कि कोड का परीक्षण करने के लिए उदाहरण में इस्तेमाल किए गए डेटाफ्रेम ने स्लेलेर्न को यह सोचने के लिए प्रेरित किया है कि मैंने कई लक्ष्य प्रदान किए हैं। और यदि एकाधिक लक्ष्य दिए जाने पर coef_ 2 डी सरणी लौटाएगा, तो मुझे coef_ [0] का उपयोग करना पड़ा। लेकिन आम तौर पर coef_ सही परिणाम देना चाहिए। –

+0

जब मैं प्रिंट करता हूं (सूची (ज़िप (model_1.coef_, model_1_features))) Jupyter में परिणाम मुझे प्राप्त करना आसान नहीं है। (सह-कुशल सरणी पहले प्रदर्शित की गई सुविधाओं के साथ पहले प्रदर्शित की गई)। जब मैं इसे दूसरी तरफ बनाने के लिए दोबारा दोहराता हूं, तो मेरे प्रिंटआउट में कुछ फ्लाफ शामिल होते हैं जो इसे पढ़ने में मुश्किल बनाता है। उदाहरण: 'dtype = ' user1761806

संबंधित मुद्दे