हां, आप सही हैं।
यह प्रतिनिधित्व निश्चित रूप से vowpal wabbit साथ काम करेंगे, लेकिन कुछ शर्तों के तहत, नहीं इष्टतम हो सकता है (यह निर्भर करता है)।
गैर आदेश दिया, स्पष्ट चर (असतत मूल्यों के साथ) का प्रतिनिधित्व करने के लिए, मानक vowpal wabbit चाल प्रत्येक संभव (नाम, मूल्य) संयोजन (उदा person_is_good, color_blue, color_red
) के लिए तार्किक/बूलियन मूल्यों का प्रयोग है। इसका कारण यह है कि vw
स्पष्ट रूप से 1
व्हीवर का मान मानता है जो एक मान गुम है। स्मृति में हैश स्थानों को छोड़कर color_red, color=red
, , या (color,red)
और color_red:1
के बीच कोई व्यावहारिक अंतर नहीं है। वेरिएबल नाम में आप जिन अक्षरों का उपयोग नहीं कर सकते वे विशेष विभाजक (:
और |
) और सफेद-स्थान हैं।
शब्दावली ध्यान दें: एक अलग सुविधा में प्रत्येक (फीचर + मूल्य) जोड़ी परिवर्तित करने की यह चाल कभी कभी कहा जाता है "एक गर्म एन्कोडिंग"।
लेकिन इस मामले में चर-मान "सख्ती से स्पष्ट" नहीं हो सकते हैं। वे हो सकता है:
- कड़ाई, जैसे (
low < basic < high < v_high
)
- मुमकिन है अगर आप तक
भविष्यवाणी करने के लिए कोशिश कर रहे हैं लेबल के साथ एक monotonic संबंध है का आदेश दिया उन्हें "सख्त स्पष्ट" बनाते हैं (एक चरम सीमा के साथ एक चर के लिए मेरा शब्द जिसमें ऊपर दो गुण नहीं हैं) आप कुछ जानकारी खो सकते हैं टोपी सीखने में मदद कर सकता है।
अपने विशेष मामले में, आप मूल्यों को संख्यात्मक रूप से परिवर्तित करके बेहतर परिणाम प्राप्त कर सकते हैं, उदा। (1, 2, 3, 4
) शिक्षा के लिए। मैं।ई आप की तरह कुछ इस्तेमाल कर सकते हैं:
1 |person education:2 income:1 social_standing:2
0 |person education:1 income:2 social_standing:3
1 |person education:3 income:1 social_standing:1
0 |person education:4 income:2 social_standing:2
प्रश्न में प्रशिक्षण सेट, ठीक से काम करना चाहिए क्योंकि तब भी जब आप बूलियन चर में अपने सभी खंडित चर परिवर्तित जैसे तुमने किया था, vw
दोनों आदेश और स्वयं की खोज करना चाहिए डेटा से लेबल के साथ monotonicity, जब तक उपरोक्त दो गुण सत्य हैं, और उन्हें कम करने के लिए पर्याप्त डेटा है।
Variable type How to encode readable example
------------- ------------- ----------------
boolean only encode the true case is_alive
categorical append value to name color=green
ordinal+monotonic :approx_value education:2
numeric :actual_value height:1.85
अंतिम नोट:
संपादित करें: क्या बारे में नाम-रिक्त स्थान?
नाम रिक्त स्थान एक विशेष-चार विभाजक के साथ नामों के नाम पर प्रीपेड किए गए हैं ताकि वे अलग-अलग हैश स्थानों पर समान सुविधाओं को मानचित्र बना सकें। उदाहरण:
|E low |I low
अनिवार्य रूप से (कोई नाम रिक्त स्थान फ्लैट उदाहरण) के बराबर है:
| E^low:1 I^low:1
नाम-रिक्त स्थान का मुख्य उपयोग आसानी से कुछ और करने के लिए एक नाम अंतरिक्ष के सभी सदस्यों को फिर से परिभाषित करने के लिए है , सुविधाओं का एक पूर्ण नाम स्थान, किसी अन्य स्थान के साथ नाम स्थान की क्रॉस फीचर्स को अनदेखा करें। (-q
, --cubic
, --redefine
, --ignore
, --keep
विकल्प देखें)।
धन्यवाद। बहुत बहुत स्पष्ट सिवाय इसके कि बुलियन (धोखाधड़ी की पहली पंक्ति) द्वारा मैं तार्किक या बाइनरी समझने के लिए हूं? यही है, यदि यह द्विआधारी है (किसी भी दो मानों के साथ और सत्य/गलत के अर्थ में जरूरी नहीं है), मुझे कॉलम नाम का उपसर्ग नहीं करना पड़ेगा, लेकिन केवल वैल्यू लिखना होगा, लेकिन अन्य तीन मामलों में कॉलम नामों को करना होगा कुछ रूपों में मूल्यों से पहले। – user3282777
पहली पंक्ति 'बूलियन' का तार्किक अर्थ है: या तो सत्य या गलत (0 या 1)। दूसरी पंक्ति: वर्गीकृत 2. – arielf
धन्यवाद सहित कई अलग-अलग मूल्यों को मान सकते हैं। ये सभी स्पष्टीकरण वाउपल वैबिट का उपयोग करके अधिक आसान बनाते हैं। – user3282777