निर्णय झाडे - एक कसे तयार करावे?

आपणास हे एकदा व सर्वसाठी प्राप्त व्हावे यासाठी आम्ही गणना आणि व्हिज्युअलायझेशनसह पूर्ण केलेले वास्तविक उदाहरण वापरू.

मशीन-लर्निंगमधील अनेक उद्योगांमध्ये निर्णय घेणारी झाडे महत्त्वपूर्ण अल्गोरिदम आहेत. या पोस्टमध्ये आम्ही निर्णय वृक्ष कसे तयार करावे यावर लक्ष केंद्रित करू. असे केल्याने आम्ही वृक्ष वाढविण्यात गुंतलेल्या यांत्रिक गणना करू आणि त्यादृष्टीने झाडाच्या बांधणीत सामील असलेल्या मुख्य संकल्पना समजून घेऊ. आपल्‍याला नवशिक्याकडून काही मिनिटांत तज्ञ मिळविण्यासाठी आम्ही संपूर्ण गणनेसह वास्तविक उदाहरण वापरू.

मी मुद्दाम आपल्याला तपशीलवार गणना दिली आहे कारण मला या विषयावरील इतर पोस्ट बर्‍याच थोडक्यात सांगू लागल्या आहेत. झाडावरील प्रत्येक नोड कशासाठी आणि का तयार केला गेला हे आपण समजून घ्यावे आणि आत्मविश्वास घ्यावा अशी माझी इच्छा आहे. आपण हे !!! माझ्यावर विश्वास ठेवा, मी तुला झाकून टाकले.

शिकण्याचे निकालः

तर, या पोस्टच्या शेवटी आपण शिकाल:

(i) निर्णय वृक्ष म्हणजे काय, त्याचे स्पष्टीकरण कसे करावे आणि

(ii) निर्णय वृक्ष कसे तयार करावे.

चला तर मग यापर्यंत जाऊ… .. वाईट, प्रथम आपण निर्णय घेणाrees्या झाडाची थोडक्यात ओळख करून घेऊ

निर्णय घेणार्‍या वृक्षांची मूलभूत ओळख:

पर्यवेक्षी शिक्षणात वापरलेले तंत्र आणि निर्णय घेण्यात मदत करण्यासाठी एकतर वर्गीकरण किंवा रीग्रेशनसाठी वापरले जाऊ शकते. तेथे शाखा आणि नोड्स (रूट-प्रथम नोड, निर्णय नोड - लीफ नोड्स वगळता सर्व पाने) शेवटचे नोड) यासारख्या वृक्षांसारखे वैशिष्ट्ये असलेली पदानुक्रमित मॉडेल्स आहेत आणि अर्थ लावण्यास सोपे आणि अंतर्ज्ञानी आहेत (त्याच्या विस्तृत वापराचे मुख्य ड्रायव्हर) .

निर्णय वृक्ष कसे कार्य करते?

आधीच बांधलेल्या निर्णय वृक्षाचे स्पष्टीकरण कसे करावे यावरील सोपी उदाहरण

पिवळ्या रंगाचे हायलाइट्स आपल्यास लीफ नोडच्या उजव्या मार्गावर मार्गदर्शन करते जेथे लक्ष्य विशेषता मूल्य संचयित केले जाते, म्हणजेच जेथे अंदाज आहे. तर, आम्ही मूळ नोडवरुन प्रारंभ करतो आणि प्रश्न विचारतो “टॉम 40 वर्षांचा आहे का?” उत्तर "होय" असे दिलेला डेटा आपल्याला दिसतो म्हणून आपण “होय” असे चिन्हांकित केलेल्या फांद्याच्या झाडाच्या उजवीकडे जाऊ. त्यानंतर आम्ही दुसर्‍या निर्णय नोडवर पोहोचतो. “टॉम भरपूर व्यायाम करतो?”. पुन्हा आम्ही आपला डेटा तपासतो आणि उत्तर “नाही” म्हणून दिलेले असते जेणेकरून “नाही” असे लेबल डाव्या शाखेत दिसेल. आम्ही शेवटी झाडाच्या त्या भागाच्या शेवटच्या नोडवर पोहोचतो (लीफ नोड) जेथे लक्ष्य गुणधर्म मूल्य आहे. तर आमचा अंदाज आहे “टॉम वजन जास्त आहे”.

पुरेसे सोपे, बरोबर? आणि आता मुख्य कोर्ससाठी, या लेखाचे स्टीक आणि बटाटे. पहिल्या चाव्याव्दारे सज्ज आहात?

आपण निर्णय वृक्ष कसा तयार कराल?

टॉप-डाऊन, लोभी दृष्टिकोन (स्थानिक पातळीवर चांगल्या निर्णयावर) नेमणूक करुन, विशेषता स्प्लिटच्या आधारे आम्ही इनपुट स्पेसला रिकर्सिवपणे सबसेट (विभाजित) करतो.

निर्णय वृक्ष तयार करताना आम्हाला विचारायला हवे असे काही महत्त्वपूर्ण प्रश्न येथे आहेतः

(i) कोणत्या विशेषतेवर विभाजन करावे हे आम्हाला कसे कळेल? आम्हाला सर्वोत्कृष्ट उमेदवाराचे गुणधर्म ओळखले पाहिजेत पण नेमके कसे?

(ii) आपण “फाळणीची चांगुलपणा” कशी चाचणी करू? आणि कोणते उपाय / मेट्रिक? अशुद्धता चाचणी वापरा उदा. एंट्रोपी (किंवा गीनी इंडेक्स)

(iii) झाडाचे बांधकाम / वाढणे आपण कधी थांबवावे? जेव्हा सर्व उदाहरणे एकाच वर्गात असतात, तेव्हा नोडमध्ये किंवा लवकर थांबण्याच्या निकषाची पूर्तता होईपर्यंत वर्गांचे मिश्रण होत नाही (उदा. एका पानात किमान # घटना इ.)

तर, विभाजित करण्यासाठी आम्ही सर्वोत्कृष्ट उमेदवार विशेषता कशी ओळखावी?

आम्ही माहितीच्या अभ्यासाची गणना करुन प्रत्येक उमेदवाराच्या विशेषतांचे मूल्यांकन करणे आवश्यक आहे. काय म्हणू? “डेटा सायन्स” म्हणजे माहिती मिळवणे म्हणजे काय? गुणधर्मात विभाजनानंतर वि. होण्यापूर्वी वर्गाच्या अपवित्रतेच्या पातळीतील बदल म्हणजे माहिती मिळवणे. मूलभूतपणे, हे सांगते की एखादे गुणधर्म आम्हाला (एखाद्या विशिष्ट वर्गाचे) भविष्यवाणी करण्यात किती उपयुक्त ठरेल.

पण अपवित्र म्हणजे नक्की काय?

अशुद्धता ही वर्गातील भिन्न घटनांच्या भिन्नता (भिन्नता) चे एक उपाय आहे. “हेटो काय आता”? चला ते आणखी खाली करूया…. या प्रकरणातील सर्व विवादास्पद अर्थ असा आहे की विशिष्ट गुण दिले गेले आहेत, ही सर्व उदाहरणे भिन्न वर्गाच्या गुणधर्म (नंतर अशुद्धता> 0) आहेत किंवा ती सर्व समान वर्गातील आहेत (त्या प्रकरणात अशुद्धता = 0 कारण तेथे असेल सर्व उदाहरणे फक्त एकाच वर्गात असल्याने वर्गांमध्ये भिन्नता किंवा फरक नाही).

आपले ध्येय आहे: शून्य अशुद्धता (कारण आम्ही नंतर भाकीत करू शकतो), म्हणून त्यास याची तपासणी करण्याची आवश्यकता आहे.

अशुद्धता एंट्रोपी (वैकल्पिक गिनी इंडेक्स) यासारख्या उपायांचा वापर करून “विभाजनाची चांगुलपणा” प्रमाणित करते.

विभाजनापूर्वी विरूद्ध नंतर अशुद्धतेची पदवी सुधारली असल्यास (म्हणजेच वर्गांमध्ये कमी अशुद्धता आहे) विभाजन चांगले आहे. अंतिम उपाय म्हणजे "माहिती मिळवणे" जे आधी आणि नंतरच्या अशुद्धतेत बदल घडवून आणते. म्हणूनच, आता आम्ही जास्तीत जास्त माहिती मिळविण्यासह गुणधर्म म्हणून सर्वोत्कृष्ट उमेदवार गुणधर्म निवडू शकतो जिथे माहिती विभाजनानंतर विरूद्ध होण्यापूर्वी एंटरॉपी (अशुद्धता उपाय) असते.

या सर्व संकल्पनांच्यामागील सूत्रांमध्ये आपण आणखी खोल बुडवून घेऊ. आपण करुया?

एन्टरॉपी वक्र आम्हाला अशुद्धपणा कसे प्राप्त होते याबद्दल एक चांगली अंतर्ज्ञान देते. एन्टरॉपी (अशुद्धता) च्या मूल्यांची श्रेणी ० ते १ आहे. दोन वर्गांमधील उदाहरणामध्ये अशुद्धता / विविधतेची जास्तीत जास्त डिग्री असते तेव्हा 1 चे जास्तीत जास्त मूल्य मिळवले जाते. उदाहरणार्थ, जर आपल्याकडे 10 उदाहरणे असतील (डेटाची पंक्ती) आणि 5 ओळींमध्ये एका वर्गासाठी लेबले असतील आणि 5 दुसर्‍या वर्गासाठी लेबले असतील तर आपण जितके मिळवू तितके वैविध्यपूर्ण आहोत म्हणूनच जास्तीत जास्त अशुद्धता स्कोअर 1 नियुक्त केला आहे. हे पी = 0.5 (वर्गात असण्याची 50% संभाव्यता / वारंवारता) शी संबंधित आहे. हे पहा वक्रांचे शिखर.

P = 1 किंवा p = 0 असल्यास एंटरॉपी किमान शून्य आहे.

- आपण दोन्ही विचारता का?

बरं, मलाही सुरुवातीला शंका होती, काळजी करू नकोस, मला असं वाटतं. मला समजावून सांगा… p = 1 झाल्यावर याचा अर्थ असा होतो की सर्व उदाहरणे एकाच वर्गाची आहेत, आणि म्हणूनच अशुद्धता नाही म्हणून शून्य अशुद्धता किंवा एंट्रोपी स्कोअर आहे. जेव्हा p = 0 सर्व उदाहरणे केवळ इतर वर्गाशी संबंधित असतात आणि म्हणून आपल्याकडे अद्याप शून्य अशुद्धता किंवा एन्ट्रोपी असते. आता, <<0.5 &> 0 किंवा p> 0.5 आणि <1 बद्दल काय आहे? बरं, एन्ट्रोपी वर्ग 1 मधील 3 आणि वर्ग 2 मधील 7 उदाहरणांच्या विरूद्ध, वर्ग 1 मधील 7 घटनांमध्ये आणि वर्ग 2 मधील 3 उदाहरणांमध्ये समान असेल. यात काही फरक पडत नाही, तरीही ते अशुद्धता / विविधता समान आहे.

तथापि लक्षात ठेवा, एन्ट्रोपी गणनाचे दोन (2) प्रकार आहेत:

त्यास प्रत्यक्षात उदाहरणादाखल तडका देऊया ..... आपण करू का?

मला हे उदाहरण आवडते, या गोष्टी अगदी सोपी केलेल्या डेटासेटसाठी सर्व श्रेय माझ्या माणस, सयद सयादला (खाली संदर्भित) जाते. मी स्पष्टीकरणांवर मोठ्या प्रमाणात बदल केले आणि स्पष्ट केले जेणेकरून प्रत्येक चाव्याव्दारे गिळणे सोपे होईल. मी देखील उमेदवारांच्या गुणधर्मांच्या मूल्यांकनासाठी संपूर्ण गणना दिली. या सर्व डेटा सायन्स सामग्रीमधून आपणास सोपी चाल देण्यास काहीही .

हे आमचे डेटासेट आहे:

मूलत :, हा टायपिंग टाइगर वुड्स इच्छित आहे की नाही हे ठरवण्यासाठी आम्ही निर्णय वृक्ष तयार करू.

आमचा निर्णय वृक्ष तयार करण्यासाठी डेटासेटचा वापर केला जात आहे

आम्ही सर्वोत्कृष्ट उमेदवार विशेषता म्हणून आउटलुकच्या मूल्यांकनसह प्रारंभ करतो:

आम्ही आउटलुकसाठी माहिती मिळवण्याची गणना केली पाहिजे. विभाजनापूर्वी आणि नंतर एंट्रोपीमधील फरक मोजून आम्ही हे करतो (वरील सूत्रे पहा).

आठवणे:

स्प्लिटसाठी एंट्रॉपी = एंट्रोपी स्प्लिट करण्यापूर्वी माहिती मिळणे-स्प्लिट नंतर एन्ट्रोपी

आउटलुकवर स्प्लिट होण्यापूर्वी इन्टरोपीची माहिती काढणे म्हणजे माहिती मिळविण्याच्या प्रथम चरणांची गणना करणे.

लक्षात घ्या की आम्ही सर्व उदाहरणे मोजली आणि प्रत्येक वर्गातील उदाहरणांची संख्या मोजली. लक्ष द्या विशेषता गुणधर्मांशी याचा काही संबंध नव्हता. आम्ही झाडाच्या सुरूवातीस असल्याने, सर्व प्रथम निर्णय नोड (रूट नोड) निश्चित करण्याचा प्रयत्न करीत आहोत आम्ही सर्व घटना पाहतो आणि वर्ग असाइनमेंट्स तपासतो. याचा अर्थ झाडाच्या सुरूवातीला विभाजित होण्यापूर्वी सर्व गुणधर्मांमध्ये समान एंट्रोपी असेल.

आता स्प्लिटनंतर एन्ट्रोपीसाठीः

आम्ही प्रत्येक गुणधर्म मूल्यासाठी एन्ट्रॉपी मूल्य मोजतो आणि या सर्व एन्ट्रोपी मूल्यांची व्हॅट बेरीज आपल्याला स्प्लिटनंतर त्या विशेषताची एंट्रोपी प्रदान करते. खाली लक्ष द्या, आम्ही संबंधित गुणधर्म वारंवारितेद्वारे एन्ट्रॉपी मूल्यांचे वजन करतो. उदाहरणार्थ, आउटलुक गुणधर्म “सनी” साठी (डावीकडील खाली पहा), सर्व 14 घटनांपैकी, फक्त 5 मधील सनीचे वजन 5/14 इतके आहे, फक्त 5 मध्ये सनी म्हणून आउटलुक आहे.

येथे लक्षात घेण्यासारख्या काही मनोरंजक गोष्टी…

प्रथम, आम्हाला ओव्हरकास्टसाठी एन्ट्रॉपीसाठी शून्य मिळाले. अस का ???? आपल्याला दोन वर्गांसाठीची आमची एन्ट्रॉपी वक्र आठवते? वर पहा. जरी आपल्याला वक्र आठवत नसेल, तरीही अंतर्ज्ञानाने आम्हाला हे माहित असले पाहिजे की अशुद्धता / एन्ट्रोपी शून्य असेल. आम्ही पूर्वी नमूद केलेले आठवते, अपवित्रता विविधतेचे मोजमाप करते, जर सर्व उदाहरणे सर्व एका वर्गाची आहेत (म्हणून सर्व मूल्ये असलेल्या दृष्टिकोन = "ओव्हरकास्ट" वर्गाशी संबंधित आहे "होय") तर तेथे कोणतेही भिन्नता / अपवित्रता नाही, अशुद्धता / एंट्रोपी शून्य आहे. हा !!! मस्त आहे ना?

दुसरे म्हणजे, पावसाळ्यासाठी एन्टरॉपी मूल्य सनीसाठी एन्ट्रोपी मूल्यासारखेच आहे. कोणतीही गणना करणे देखील आवश्यक नव्हते. का ? - तू विचार. उत्तर देऊन आनंद झाला !!! 2: 3 चे गुणोत्तर 3: 2 च्या प्रमाणात समान आहे या प्रकरणात, विविधतेची डिग्री दोन्ही प्रकारे एकसारखीच आहे. जर हे आपल्यात बुडत असेल तर आपल्या मार्गावर जात असेल… नसल्यास काळजी करू नका की यास आणखी एक मिनिट द्या आणि ते होईल

आउटलुकवर माहिती मिळवणे:

आता माहिती प्राप्तीची गणना करण्यासाठी आमच्याकडे दोन प्रमुख घटक आहेत ज्यामुळे आपण मूल्यासह पुढे जाऊ शकतो:

आउटलुक वर माहिती मिळवणे = एंट्रोपी बी / एफ स्प्लिट-स्प्लिटनंतर एन्ट्रोपी

=> 0.946–0.694 = 0.252

परंतु, विभाजन करण्यासाठी आउटलुक सर्वोत्तम गुणधर्म आहे का?

जर त्यात जास्तीत जास्त असेल तर ते सर्वोत्कृष्ट आहे. माहिती मिळवली. तर, इतर गुणधर्मांवरील माहिती मिळवण्याचे परीक्षण करूया आणि पाहुया की आउटलुक खरोखरच "सर्वोत्कृष्ट" आहे म्हणजेच जास्तीत जास्त माहिती मिळवण्याचे गुणधर्म.

प्रत्येक गुणधर्मांकडे लक्ष द्या, आम्ही विशिष्टतेच्या मूल्यांच्या संदर्भात डेटाच्या सबटच्या आधारावर गुणधर्मांच्या आधारे क्रमवारी लावली आहे, आम्ही एका वर्ग आणि दुसर्‍या वर्गाशी संबंधित / नियुक्त केलेल्या घटनांची नोंद घेत आहोत. ही विशेषता व्हॅल्यूज वारंवारित झाल्याने आपण देखील पाहू शकतो. उदाहरणार्थ, टेंप एट्रिब्युट व्हॅल्यू = "कूल" साठी ते 4/14 (फ्रीक.) येते आणि 4 उदाहरणांच्या उपसमधेमध्ये 1 उदाहरण वर्ग "नाही" संबंधित आहे आणि इतर 3 घटना "होय" वर्गातील आहेत.

डेटासीट टेम्प फॉर इन्फॉरमेशन गिनती गणितावर क्रमवारी लावलीमाहिती मिळविण्यासाठी गणनासाठी डेटासेटची गुणविशेष आर्द्रता यावर क्रमवारी लावलीमाहिती मिळविण्यासाठी गणितासाठी डेटाशीट विशेषता वाराटीवर क्रमवारी लावली

तर, आउटलुक वर स्प्लिट होण्याचे सर्वोत्तम गुणधर्म आहे कारण त्यास 0.25 चे माहिती मिळते जी इतर सर्व उमेदवारांच्या गुणधर्मांपेक्षा (वरील प्रमाणे दर्शविली आहे) जास्त आहे.

आम्ही झाडाच्या फक्त 0 पातळीवर आहोत. होय, सर्व कार्य फक्त प्रथम नोड (रूट नोड) निश्चित करण्यासाठी होते. आता, आम्हाला वृक्ष वाढविणे सुरू ठेवण्याची आवश्यकता आहे, हं खाली निर्णय नोड्समध्ये कोणते गुणधर्म असले पाहिजेत?

सनीच्या आउटलुकसह केवळ उदाहरणे दर्शविणार्‍या संपूर्ण डेटासेटचे सबसेट

सारांश

तर, हे आता सर्व लोकांसाठी आहे. चला आवश्यक मुद्दे परत घेऊया.

लवकरच येत आहे ...

आशा आहे की आपण या पोस्टमध्ये बरेच काही शिकलात. मी भाग करणार असलेल्या भाग २ साठी संपर्कात रहा:

- पायथन मध्ये अंमलबजावणी

- अति-फिटिंग टाळण्यासाठी तंत्र

- निर्णय घेणार्‍या वृक्षांचे साधक आणि बाधक आणि त्यांचा वापरण्यासाठी सर्वोत्तम वेळ

संदर्भ:

T एथेम अल्पेडिन: मशीन लर्निंगचा परिचय

Ed सैद सआद: निर्णय झाडे www.saedsayad.com/decision_tree.htm (उदाहरणार्थ “प्ले गोल्फ” डेटासेट)

  • मुखपृष्ठावरील प्रतिमा: https://www.publicdomainpictures.net/en/view-image.php?image=253258&picture=tree-clipart-illustration

माझ्याबद्दल :

खाली टिप्पणी मोकळ्या मनाने. Https://www.linkedin.com/in/kishataylor येथे मला लिंक्डिनवर टोक द्या, मला डेटा प्रेमींच्या या समुदायात कनेक्ट करणे आवडते.

मी एक फ्रीलान्स डेटा सायंटिस्ट आणि डेटा उत्साही आहे… .. त्या डेटा सायन्सवर प्रेम करा.