ﺑﺴﻤﻪ ﺗﻌﺎﻟ ﯾﺎدﮔﯿﺮی ﻣﺎﺷﯿﻦ ﻧﯿﻤﺴﺎل اول ٩٢-٩٣ دﮐﺘﺮ ﺳﻠﯿﻤﺎﻧ داﻧﺸ ﺪه ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺑﻪ ﻧ ﺎت زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ: • ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ اﯾﻦ ﭘﺮوژه ١ ،ﺑﻬﻤﻦ ١٣٩٢اﺳﺖ. • ﺧﺮوﺟ ﭘﺮوژه ﺷﻤﺎ ،ﻓﺎﯾﻞﻫﺎی ﻣﺮﺑﻮط ﺑﻪ ﮐﺪﻫﺎ و ﻓﺎﯾﻞ ﺷﺎﻣﻞ ﮔﺰارش ﻧﺘﺎﯾ ﻫﻤﻪ ﺑﺨﺶﻫﺎ اﺳﺖ. • ﺑﺮای ﭘﯿﺎدهﺳﺎزیﻫﺎی ﺧﻮد ﺗﻨﻬﺎ از Matlabاﺳﺘﻔﺎده ﮐﻨﯿﺪ. • ﮔﺰارش ﺷﻤﺎ ﺑﺎﯾﺪ ﮐﺎﻣﻞ و ﺟﺎﻣ ﺑﻮده و ﺗﻤﺎﻣ ﻓﻌﺎﻟﯿﺖﻫﺎی ﺷﻤﺎ را ﭘﻮﺷﺶ دﻫﺪ .ﻧﺘﺎﯾ ﻣﻘﺎﯾﺴﺎت و ﺗﺤﻠﯿﻞﻫﺎ ﻧﻘﺶ ﻣﻬﻤ در ارزﯾﺎﺑ ﻓﻌﺎﻟﯿﺖ ﺷﻤﺎ دارﻧﺪ. اﻫﺪاف ﭘﺮوژه ﻣﻮﺿﻮع اﯾﻦ ﭘﺮوژه ،روﯾﺎروﯾ ﺑﺎ ﻣﺴﺌﻠﻪ دﺳﺘﻪﻫﺎی ﻧﺎﻣﺘﻮازن ١اﺳﺖ .اﯾﻦ ﻣﺴﺌﻠﻪ زﻣﺎﻧ ﺑﻪ وﺟﻮد ﻣ آﯾﺪ ﮐﻪ در ﯾ ﻓﺮاﯾﻨﺪ ﯾﺎدﮔﯿﺮی ﺑﻪ وﯾﮋه دﺳﺘﻪﺑﻨﺪی ،ﯾ ﯾﺎ ﺗﻌﺪادی دﺳﺘﻪ از دادهﻫﺎی ﻣﻮﺟﻮد )ﮐﻪ ﻣﻌﻤﻮﻻ دﺳﺘﻪ ﻣﻮرد ﺗﻮﺟﻪ ﯾ ﮐﺎرﺑﺮد ﺧﺎص ﻫﺴﺘﻨﺪ ﻣﺎﻧﻨﺪ دﺳﺘﻪ دادهﻫﺎی وﻗﻮع ﺟﺮم( دارای ﺗﻌﺪاد ﮐﻤﺘﺮی ﻧﺴﺒﺖ ﺑﻪ ﺳﺎﯾﺮ دﺳﺘﻪﻫﺎ ﻫﺴﺘﻨﺪ .ﺑﺮای درک ﺑﻬﺘﺮ ﻣﺴﺌﻠﻪ و ﭼﺎﻟﺶﻫﺎی آن ،ﯾ ﻣﺠﻤﻮﻋﻪ داده را ﮐﻪ ﻓﻘﻂ ﯾ درﺻﺪ آن دادهﻫﺎی ﮐﻼس ﻣﺜﺒﺖ و ﺑﻘﯿﻪ دادهﻫﺎی ﮐﻼس ﻣﻨﻔ ﻫﺴﺘﻨﺪ، در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ.اﮔﺮ ﺑﺪون ﻫﯿ ﮔﻮﻧﻪ ﯾﺎدﮔﯿﺮﯾ ﻫﻤﻪ دادهﻫﺎی ﺗﺴﺖ در اﯾﻦ ﻣﺠﻤﻮﻋﻪ داده ﮐﻼس ﻣﻨﻔ ﺗﺸﺨﯿﺺ داده ﺷﻮﻧﺪ، Accuracyدﺳﺘﻪﺑﻨﺪ ﻣﺬﮐﻮر ٩٩٪ﺧﻮاﻫﺪ ﺑﻮد ﮐﻪ ﺑﻪ ﻇﺎﻫﺮ دﻗﺖ ﻣﻄﻠﻮﺑ اﺳﺖ .ﺑﻨﺎﺑﺮاﯾﻦ در اﯾﻦ ﻣﺴﺌﻠﻪ ﻧﯿﺎزﻣﻨﺪ ﺗﺸﺨﯿﺺ ﻫﺮ ﭼﻪ ﺑﻬﺘﺮ دادهﻫﺎی ﮐﻼس ﻣﺜﺒﺖ ﻫﺴﺘﯿﻢ ﺗﺎ ﻣﻨﻔ )اﻟﺒﺘﻪ ﻧﻪ ﺑﻪ اﯾﻦ ﻣﻌﻨ ﮐﻪ ﺧﻄﺎ و ﺗﺴﺖ ﻓﻘﻂ ﺑﺮ روی دادهﻫﺎی ﮐﻼس ﻣﺜﺒﺖ اﻧﺠﺎم ﺷﻮد(. ﺗﻮزﯾ داده ﻧﻘﺶ ﮐﻠﯿﺪی در ﻓﺮاﯾﻨﺪ دﺳﺘﻪﺑﻨﺪی ﺑﺮ ﻋﻬﺪه دارد؛ ﻫﺮ ﭼﻨﺪ ﺻﺮﻓﺎ ﻧﺴﺒﺖ ﺗﻌﺪاد دادهﻫﺎ در اﯾﻦ ﻣﺴﺌﻠﻪ ﻣﺸ ﻞ اﯾﺠﺎد ﻧﻤ ﮐﻨﺪ .ﺑﻪ ﻃﻮر دﻗﯿﻖﺗﺮ ،ﺣﺘ ﺑﺎ وﺟﻮد ﻋﺪم ﺗﻮازن ﺑﺴﯿﺎر زﯾﺎد ،اﮔﺮ دادهﻫﺎ ﺟﺪاﭘﺬﯾﺮ ﺑﺎﺷﻨﺪ ،اﺳﺘﻔﺎده از اﮐﺜﺮ دﺳﺘﻪﺑﻨﺪﻫﺎ ﻣﺎﻧﻨﺪ ﻣﺎﺷﯿﻦ ﺑﺮدار ﭘﺸﺘﯿﺒﺎن دﺳﺘﻪﺑﻨﺪی را ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ اﻧﺠﺎم ﺧﻮاﻫﺪ داد .ﻋﻮاﻣﻞ دﯾ ﺮی ﻫﻤﭽﻮن ﻫﻤﭙﻮﺷﺎﻧ ﮐﻼسﻫﺎ ﻧﯿﺰ در ﻣﺸ ﻞ ﺷﺪن دﺳﺘﻪﺑﻨﺪی در ﻋﺪم ﺗﻮازن ﻧﻘﺶ دارﻧﺪ. در اﯾﻦ ﭘﺮوژه ﺑﻪ ﺑﺮرﺳ ﺑﺮﺧ روشﻫﺎی ﻣﻮﺟﻮد ﺑﺮای روﯾﺎروﯾ ﺑﺎ ﻣﺴﺎﻟﻪ دﺳﺘﻪ ﻫﺎی ﻧﺎﻣﺘﻮازن ﺑﺎ ﺗﻤﺮﮐﺰ ﺑﺮ روﯾ ﺮدﻫﺎی ﺟﻤﻌ ﻣ ﭘﺮدازﯾﻢ و ﻧﻘﺎط ﻗﻮت و ﺿﻌﻒ ﻫﺮ ﯾ را ﺗﺤﻠﯿﻞ ﺧﻮاﻫﯿﻢ ﮐﺮد. ﺗﻨﻈﯿﻤﺎت ﭘﯿﺎدهﺳﺎزی ٣ﻧﺴﺨﻪ ﻣﺘﻔﺎوت از ﻣﺠﻤﻮﻋﻪدادهﻫﺎی Yeastﺑﺎ ﻧﺴﺒﺖﻫﺎی ﮐﻼس ﻣﻨﻔ و ﻣﺜﺒﺖ ﻣﺘﻔﺎوت ﺑﺮای اﯾﻦ ﭘﺮوژه در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪهاﻧﺪ ﮐﻪ آنﻫﺎ را ﻣ ﺗﻮاﻧﯿﺪ از ﺳﺎﯾﺖ درس داﻧﻠﻮد ﮐﻨﯿﺪ .ﻫﺮ ٣ﻣﺠﻤﻮﻋﻪ داده دارای ١۴٨۴ﻧﻤﻮﻧﻪ ﺑﺎ ٨وﯾﮋﮔ ﻫﺴﺘﻨﺪ و در دو ﮐﻼس ﻣﻨﻔ و ﻣﺜﺒﺖ )ﮐﻼس ﻣﺜﺒﺖ ﮐﻼس اﻗﻠﯿﺖ اﺳﺖ( ﻗﺮار ﮔﺮﻓﺘﻪاﻧﺪ .ﻧﺘﺎﯾ ﻫﻤﻪ روشﻫﺎی ﺧﻮاﺳﺘﻪ ﺷﺪه در اﯾﻦ Imbalanced Classes١ ١ ﭘﺮوژه ﺑﺎﯾﺴﺘ ﺑﺮ روی اﯾﻦ ٣ﻣﺠﻤﻮﻋﻪ داده ﮔﺰارش ﺷﻮﻧﺪ .ﻫﻤﻪ آزﻣﺎﯾﺶﻫﺎ ﺑﺎﯾﺴﺘ ﺑﻪ ﺻﻮرت اﻋﺘﺒﺎرﺳﻨﺠ ۵ﮔﺎﻧﻪ اﻧﺠﺎم ﺷﻮد و ﻫﻤﻪ دادهﻫﺎی آﻣﻮزش و ﺗﺴﺖ ﺑﺮای ﻫﺮ ﻓﻮﻟﺪ ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ در ﻓﺎﯾﻞﻫﺎی ﺳﺎﯾﺖ درس ﻣﺸﺨﺺ ﺷﺪهاﻧﺪ. دﺳﺘﻪﺑﻨﺪ ﭘﺎﯾﻪ در اﯾﻦ ﭘﺮوژه ،درﺧﺖ ﺗﺼﻤﯿﻢ از ﻧﻮع CARTﻣ ﺑﺎﺷﺪ و ﻫﻤﻪ وﯾﮋﮔ ﻫﺎی ﻣﺠﻤﻮﻋﻪ دادهﻫﺎ ﭘﯿﻮﺳﺘﻪ ﻫﺴﺘﻨﺪ. ﻣ ﺗﻮاﻧﯿﺪ از ﭘﯿﺎدهﺳﺎزی classregtreeﯾﺎ ClassificationTreeدر ﻣﺘﻠﺐ اﺳﺘﻔﺎده ﮐﻨﯿﺪ .ﻫﻤﭽﻨﯿﻦ درﺧﺖ را ﺑﺮ اﺳﺎس ﻣﻌﯿﺎر Gini Indexو ﺑﺪون ﻫﯿ ﮔﻮﻧﻪ ﻫﺮسﮐﺮدن ٢ﺗﺸ ﯿﻞ دﻫﯿﺪ. ﯾ Decision Stumpﯾ درﺧﺖ ﺗﺼﻤﯿﻢ ﺑﺎ ﻋﻤﻖ ١اﺳﺖ .ﺑﻨﺎﺑﺮاﯾﻦ اﯾﻦ درﺧﺖ ﻓﻘﻂ ﺑﺮ روی ﯾ ﻣﺘﻐﯿﺮ ﺷﺎﺧﻪ ﻣ زﻧﺪ و ﺗﺼﻤﯿﻢﮔﯿﺮی ﻣ ﮐﻨﺪ .ﭘﺎراﻣﺘﺮﻫﺎی ﭘﯿﺎدهﺳﺎزی ﻣﺘﻠﺐ را ﺑﻪ ﻧﺤﻮی ﺗﻌﯿﯿﻦ ﮐﻨﯿﺪ ﮐﻪ ﭼﻨﯿﻦ درﺧﺘ ﻧﯿﺰ ﺑﺘﻮاﻧﺪ ﺗﺸ ﯿﻞ ﺷﻮد .اﯾﻦ ﭘﯿﺎدهﺳﺎزی در ﺑﺨﺶ Boostingدر ﻫﻤﯿﻦ ﭘﺮوژه ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ. در ﮔﺰارش ﺧﻮد ﭘﯿﺶ از ﻫﺮ ﭼﯿﺰ ،ﻧﺘﺎﯾ دﺳﺘﻪﺑﻨﺪی ﺑﺮ روی دﺳﺘﻪﺑﻨﺪ ﭘﺎﯾﻪ را ﮔﺰارش ﮐﻨﯿﺪ .ﺑﺮای ﻧﻤﺎﯾﺶ ﺑﻬﺘﺮ ،ﻧﺘﺎﯾ اﯾﻦ دﺳﺘﻪﺑﻨﺪ را ﺑﺎ ﻧﺎم T reeﻣﺘﻤﺎﯾﺰ ﻧﻤﺎﯾﯿﺪ. ﺑﺮای ﺳﻨﺠﺶ دﻗﺖ ﻫﻤﺎن ﻃﻮری ﮐﻪ ﭘﯿﺶﺗﺮ ذﮐﺮ ﺷﺪ ،ﻣﻌﯿﺎر Accuracyﺑﺮای ﺳﻨﺠﺶ دﻗﺖ ﻣﻨﺎﺳﺐ ﻧﯿﺴﺖ .ﻣ ﺗﻮان دﯾﺪ ﮐﻪ ﺑﻘﯿﻪ ﻣﻌﯿﺎرﻫﺎﯾ ﮐﻪ از Confusion Matrixﺑﺪﺳﺖ ﻣ آﯾﻨﺪ ﺑﻪ ﺗﻨﻬﺎﯾ ﻣﻌﯿﺎرﻫﺎی ﻣﻨﺎﺳﺒ ﻧﯿﺴﺘﻨﺪ .از اﯾﻦ رو از ﺗﺮﮐﯿﺐ اﯾﻦ ﻣﻌﯿﺎرﻫﺎ اﺳﺘﻔﺎده ﺧﻮاﻫﯿﻢ ﮐﺮد .ﯾ ﻣﻌﯿﺎر ﻣﻨﺎﺳﺐ ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر AUCاﺳﺖ ﮐﻪ در اﯾﻨﺠﺎ ﻓﻘﻂ آن را ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ: 1 + TPR − FPR 2 = AU C P TP و ۴ TPR ﮐﻪ در آن ٣ T P R F PF+Tاﺳﺖ TP .و TNﺑﻪ ﺗﺮﺗﯿﺐ ﺗﻌﺪاد دادهﻫﺎﯾ اﺳﺖ ﮐﻪ ﺑﻪ ﺑﺮاﺑﺮ N ﺑﺮاﺑﺮ T P +F N درﺳﺘ ﻣﺜﺒﺖ و ﻣﻨﻔ ﭘﯿﺶﺑﯿﻨ ﺷﺪهاﻧﺪ FP .و FNﺑﻪ ﺗﺮﺗﯿﺐ ﺗﻌﺪاد دادهﻫﺎﯾ اﺳﺖ ﮐﻪ ﺑﻪ ﻏﻠﻂ ﻣﺜﺒﺖ و ﻣﻨﻔ ﭘﯿﺶﺑﯿﻨ ﺷﺪهاﻧﺪ۵ . ﺑﺨﺶ اول -اﺳﺘﻔﺎده از روشﻫﺎی ﻣﺒﺘﻨ ﺑﺮ ﻧﻤﻮﻧﻪﺑﺮداری از دادهﻫﺎ ١ ﯾ روش ﺳﺎده ﺑﺮای ﺣﻞ ﻣﺸ ﻞ ﻋﺪم ﺗﻮازن ،ﮐﭙ دادهﻫﺎی دﺳﺘﻪ اﻗﻠﯿﺖ ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓ اﺳﺖ ﺗﺎ زﻣﺎﻧ ﮐﻪ ﺗﻌﺪاد دادهﻫﺎی ﻫﺮ دو دﺳﺘﻪ ﺑﺮاﺑﺮ ﺷﻮﻧﺪ .ﭘﺲ از اﯾﻦ ﮐﺎر ،دﺳﺘﻪﺑﻨﺪی ﻣﻌﻤﻮل را اﻧﺠﺎم دﻫﯿﻢ .اﯾﻦ روش ﮐﻪ ﻣﻮﺳﻮم ﺑﻪ Random Oversamplingاﺳﺖ را ﺑﺎ دﺳﺘﻪﺑﻨﺪ ﭘﺎﯾﻪ ﭘﯿﺎده ﮐﻨﯿﺪ. روش دﯾ ﺮ Random Undersamplingاﺳﺖ ﮐﻪ در آن دادهﻫﺎی دﺳﺘﻪ اﮐﺜﺮﯾﺖ ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓ ﺣﺬف ﻣ ﺷﻮﻧﺪ ﺗﺎ زﻣﺎﻧ ﮐﻪ ﺗﻌﺪاد دادهﻫﺎی ﻫﺮ دو دﺳﺘﻪ ﺑﺮاﺑﺮ ﺷﻮﻧﺪ .ﭘﺲ از اﯾﻦ ﮐﺎر ،دﺳﺘﻪﺑﻨﺪی ﻣﻌﻤﻮل را اﻧﺠﺎم دﻫﯿﻢ. اﯾﻦ روش را ﻧﯿﺰ ﺑﺎ دﺳﺘﻪﺑﻨﺪ ﭘﺎﯾﻪ ﭘﯿﺎده ﮐﻨﯿﺪ .ﺑﺮای ﻧﻤﺎﯾﺶ ﺑﻬﺘﺮ ،ﻧﺘﺎﯾ Random Oversamplingو Random Undersamplingرا ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺎ ﻧﺎم OverSampو UnderSampﻣﺘﻤﺎﯾﺰ ﻧﻤﺎﯾﯿﺪ. ١.١ ﺳﻮاﻻت .١ﺗﻮﺿﯿ دﻫﯿﺪ ﻫﺮ ﮐﺪام از اﯾﻦ روشﻫﺎ ﺗﺎﺛﯿﺮی ﺑﺮ دﺳﺘﻪﺑﻨﺪی ﭘﺎﯾﻪ دارﻧﺪ؟ .٢ﻣﻌﺎﯾﺐ ﻫﺮ روش را ذﮐﺮ ﮐﻨﯿﺪ. Pruning٢ True Positive Ratio٣ False Positive Ratio۴ TP: True Positive، TN: True Negative، FP: False Positive، FN: False Negative ۵ ٢ ٢ ﺑﺨﺶ دوم -اﺳﺘﻔﺎده از Bagging در اﯾﻦ ﻣﺮﺣﻠﻪ ﻗﺼﺪ دارﯾﻢ اﯾﺪهﻫﺎی روشﻫﺎی ﻣﺒﺘﻨ ﺑﺮ ﻧﻤﻮﻧﻪﺑﺮداری داده را در روش Baggingاﺳﺘﻔﺎده ﮐﻨﯿﻢ .ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر اﺑﺘﺪا روش Baggingرا ﺑﻪ ﺻﻮرت ﮐﻠ در ﺷ ﻞ ١ﻣ ﺑﯿﻨﯿﻢ: ﺷ ﻞ :١روش Bagging اﺑﺘﺪا ﺑﺎ روش Baggingو دﺳﺘﻪﺑﻨﺪ ﭘﺎﯾﻪ دادهﻫﺎ را دﺳﺘﻪﺑﻨﺪی ﮐﻨﯿﺪ و ﻧﺘﺎﯾ را ﮔﺰارش ﮐﻨﯿﺪ .ﺑﺮای ﻧﻤﺎﯾﺶ ﺑﻬﺘﺮ ،ﻧﺘﺎﯾ اﯾﻦ دﺳﺘﻪﺑﻨﺪ را ﺑﺎ ﻧﺎم T reeBagﻣﺘﻤﺎﯾﺰ ﻧﻤﺎﯾﯿﺪ .در ﭘﯿﺎدهﺳﺎزی اﯾﻦ روش ﻣﻄﺎﺑﻖ ﺷ ﻞ T ،١را ﺑﺮاﺑﺮ ٢٠و nرا ﺑﺮاﺑﺮ ﻧﺼﻒ ﺗﻌﺪاد ﮐﻞ دادهﻫﺎی آﻣﻮزش ﻗﺮار دﻫﯿﺪ. ﯾ ﭘﯿﺎدهﺳﺎزی ﮐﻠ ﺗﺮ از روش ﻓﻮق ﮐﻪ ﺑﺎ ﻧﺎم Random Forestﺷﻨﺎﺧﺘﻪ ﻣ ﺷﻮد ،ﺑﺪﯾﻦ ﮔﻮﻧﻪ اﺳﺖ ﮐﻪ در ﻫﺮ ﺗ ﺮار و ﻫﻨ ﺎم ﺗﺸ ﯿﻞ درﺧﺖ ،در ﻫﺮ ﮔﺮه ﺑﻪ ﺟﺎی اﯾﻦﮐﻪ از ﺑﯿﻦ ﺗﻤﺎﻣ وﯾﮋﮔ ﻫﺎ ﺑﻬﺘﺮﯾﻦ splitاﻧﺘﺨﺎب ﺷﻮد ،ﺗﻌﺪاد mوﯾﮋﮔ ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓ اﻧﺘﺨﺎب ﺷﺪه و ﺳﭙﺲ از ﻣﯿﺎن اﯾﻦ وﯾﮋﮔ ﻫﺎ ﺑﻬﺘﺮﯾﻦ splitاﻧﺘﺨﺎب ﺷﻮد .اﯾﻦ ﺣﺎﻟﺖ را ﺑﻪ ازای m = 3 ﭘﯿﺎدهﺳﺎزی ﮐﺮده و ﻧﺘﺎﯾ آن را ﺑﺎ T reeRandForestﻣﺘﻤﺎﯾﺰ ﮐﻨﯿﺪ. ﺑﺎ ﮐﻤ دﻗﺖ ﻣ ﺗﻮان درﯾﺎﻓﺖ ﮐﻪ در روش Baggingﻣ ﺗﻮان در ﻫﺮ ﻣﺮﺣﻠﻪ ﻧﻤﻮﻧﻪﮔﯿﺮی )ﺧﻂ ٢ﺷ ﻞ ،(١ ﻧﻤﻮﻧﻪﺑﺮداری را ﺑﻪ ﺻﻮرت Oversamplingﯾﺎ Undersamplingاﻧﺠﺎم دﻫﯿﻢ .اﯾﻦ دو روش را اﺻﻄﻼﺣﺎ Over- Baggingو Under-Baggingﻣ ﻧﺎﻣﯿﻢ. ﺑﺮای Over-Baggingﯾ اﯾﺪه ﺳﺎده ﮐﭙ دادهﻫﺎی اﻗﻠﯿﺖ ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓ و ﺳﭙﺲ اﻧﺠﺎم Baggingﺑﻪ ﺻﻮرت ﻣﻌﻤﻮل اﺳﺖ .ﺑﺮای Under-Baggingﻧﯿﺰ در ﻫﺮ ﻣﺮﺣﻠﻪ از Baggingﻣﻌﻤﻮﻟ ،ﺑﺎﯾﺴﺘ ﺗﻌﺪادی از دادهﻫﺎی دﺳﺘﻪ اﮐﺜﺮﯾﺖ درﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻧﺸﻮﻧﺪ ﺗﺎ ﺑﺎ ﺗﻌﺪاد آنﻫﺎ ﺑﺎ دﺳﺘﻪ اﻗﻠﯿﺖ ﺑﺮاﺑﺮ ﺷﻮد. اﯾﻦ دو روش را ﺑﺎ دﺳﺘﻪﺑﻨﺪ ﭘﺎﯾﻪ ﺑﺎ ﻫﻤﺎن ﭘﺎراﻣﺘﺮﻫﺎی ﺑﺨﺶ Baggingﭘﯿﺎده ﮐﻨﯿﺪ .ﺑﺮای ﻧﻤﺎﯾﺶ ﺑﻬﺘﺮ ،ﻧﺘﺎﯾ Over- Baggingو Under-Baggingرا ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺎ ﻧﺎم T reeOverBagو T reeUnderBagﻣﺘﻤﺎﯾﺰ ﻧﻤﺎﯾﯿﺪ. ٣ اﺳﺘﻔﺎده از Boosting در اﯾﻦ ﻣﺮﺣﻠﻪ ﻗﺼﺪ دارﯾﻢ روشﻫﺎی ﻣﺒﺘﻨ ﺑﺮ Boostingرا ﺑﺮای دﺳﺘﻪﺑﻨﺪی دادهﻫﺎی اﯾﻦ ﭘﺮوژه ﺑﻪ ﮐﺎر ﺑ ﯿﺮﯾﻢ .ﺑﺮای اﯾﻦ ﻣﻨﻈﻮر ٣ﺣﺎﻟﺖ ﺟﺪﯾﺪ از اﻟ ﻮرﯾﺘﻢ AdaBoostرا ﺑﺮرﺳ ﺧﻮاﻫﯿﻢ ﮐﺮد. اﺑﺘﺪا اﻟ ﻮرﯾﺘﻢ AdaBoostرا ﮐﻪ در ﺷﺒﻪ ﮐﺪ ﺷ ﻞ ٢ﻧﺸﺎن داده ﺷﺪه ﺑﺎ دﺳﺘﻪﺑﻨﺪ ﭘﺎﯾﻪ و Decision Stumpﭘﯿﺎده ﮐﺮده و ﻧﺘﺎﯾ آن را ﺑﺎ ﻧﺎم T reeAdaBoostو DecStpAdaBoostﻣﺘﻤﺎﯾﺰ ﻧﻤﺎﯾﯿﺪ Dt (i) .در اﻟ ﻮرﯾﺘﻢ ﺷ ﻞ ٢وزن ﻣﺮﺑﻮط ﺑﻪ داده -iام در ﺗ ﺮار -tام اﻟ ﻮرﯾﺘﻢ اﺳﺖ .ﺗﻌﺪاد ﺗ ﺮارﻫﺎ ) (Tرا ﺑﺮاﺑﺮ ١٠ﻗﺮار دﻫﯿﺪ. ٣ ﺷ ﻞ :٢روش AdaBoost ١.٣ ﺳﻮاﻻت .١اﮔﺮ در ﺧﻂ ١١اﻟ ﻮرﯾﺘﻢ ﺷ ﻞ ٢ﻧﺮﻣﺎلﺳﺎزی ) Dt+1 (iﺑﺎ ﺗﻘﺴﯿﻢ ﺑﺮ ﯾ ﺑﺎﺷﺪ ،ﯾﻌﻨ در ﺧﻂ ١١داﺷﺘﻪ ﺑﺎﺷﯿﻢ: )) Dt (i) exp(−αt yi ht (xi Zt ﻓﺎﮐﺘﻮر ﻧﺮﻣﺎلﺳﺎزی ﻣﺎﻧﻨﺪ Ztاﻧﺠﺎم ﺷﺪه = )Dt+1 (i ، ϵtrainﺧﻮاﻫﯿﻢ داﺷﺖ: ﺛﺎﺑﺖ ﮐﻨﯿﺪ ،ﺑﺮای ﺧﻄﺎی ﻣﺮﺣﻠﻪ آﻣﻮزش ) Hدﺳﺘﻪﺑﻨﺪ ﺧﺮوﺟ ( ، H ∏ 1 train ϵ ≤ Zt N H T t=1 .٢ﺣﺎل اﯾﻦ ﺳﻮال ﺑﻪ ذﻫﻦ ﻣ رﺳﺪ ﮐﻪ ﭼ ﻮﻧﻪ ﻣ ﺗﻮان اﯾﻦ ﺣﺪ ﺑﺎﻻ روی ﺧﻄﺎی آﻣﻮزش را ﻣﯿﻨﯿﻤﻢ ﮐﺮد .ﺑﻪ ﻧﻈﺮ ﻣ رﺳﺪ ﻣﯿﻨﯿﻤﻢ ﺳﺎزی Ztدر ﻫﺮ ﻣﺮﺣﻠﻪ از اﻟ ﻮرﯾﺘﻢ راه ﻣﻌﻘﻮﻟ ﺑﺎﺷﺪ .از اﯾﻦ اﯾﺪه ﻣ ﺗﻮان ﺑﺮای اﻧﺘﺨﺎب αtدر ﻫﺮ ﻣﺮﺣﻠﻪ اﺳﺘﻔﺎده ﮐﺮد. )آ( اﺑﺘﺪا ﻧﺸﺎن دﻫﯿﺪ: )) Dt (i) exp(−αt yi ht (xi ∑ = Zt i )ب( ﻧﺸﺎن دﻫﯿﺪ Ztﺑﺮ ﺣﺴﺐ αtﺗﻨﻬﺎ ﯾ ﻣﯿﻨﯿﻤﻢ دارد) .راﻫﻨﻤﺎﯾ :اﺑﺘﺪا ﺑﺎ اﺳﺘﻔﺎده از ﻣﺸﺘﻖ دوم وﺟﻮد ﺣﺪاﻗﻞ Ztو ﻣﻘﺎدﯾﺮ ﻣﺨﺘﻠﻒ آن ﺑﺮ ﺣﺴﺐ ، αtﺛﺎﺑﺖ ﯾ ﻣﯿﻨﯿﻤﻢ را ﺛﺎﺑﺖ ﮐﻨﯿﺪ .ﺳﭙﺲ ﺑﺎ اﺳﺘﻔﺎده از ﭘﯿﻮﺳﺘ ﮐﻨﯿﺪ ﻣﺸﺘﻖ Ztﺣﺪاﮐﺜﺮ ﯾ رﯾﺸﻪ ﺧﻮاﻫﺪ داﺷﺖ (.ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﺑﺎ اﺛﺒﺎت اﯾﻦ ﻣﻮﺿﻮع ﻣ ﺗﻮان از روشﻫﺎی ﻋﺪدی αtﺑﻬﯿﻨﻪ را ﺑﻪ راﺣﺘ ﭘﯿﺪا ﻧﻤﻮد. )ج( ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ آﯾﺎ دﺳﺘﻪﺑﻨﺪﻫﺎی ﺗﻮﻟﯿﺪ ﺷﺪه از روش AdaBoostﻣ ﺗﻮاﻧﻨﺪ دﺳﺘﻪﺑﻨﺪﻫﺎی ﻣﻨﺎﺳﺒ ﺑﺮای ﺣﺎﻟﺖ ﻋﺪم ﺗﻮازن ﮐﻼسﻫﺎ ﺑﺎﺷﻨﺪ؟ آﯾﺎ ﻣ ﺗﻮاﻧﯿﺪ ﺑﻪ دﻟﯿﻞ اﯾﻦ اﻣﺮ اﺷﺎره ﮐﻨﯿﺪ؟ ۴ Boostingﻣﺒﺘﻨ ﺑﺮ ﻫﺰﯾﻨﻪ ۴ ﯾ اﯾﺪه ﺑﺮای اﻧﺠﺎم دﺳﺘﻪﺑﻨﺪی ﺑﻬﺘﺮ در ﺣﺎﻟﺖ ﻋﺪم ﺗﻮازن ﮐﻼسﻫﺎ ،اﺧﺘﺼﺎص ﻫﺰﯾﻨﻪ ﺑﺮای دﺳﺘﻪﺑﻨﺪی دادهﻫﺎی ﮐﻼسﻫﺎی ﻣﺨﺘﻠﻒ اﺳﺖ .ﺑﻪ اﯾﻦ ﻣﻌﻨ ﮐﻪ ﻋﺪم دﺳﺘﻪﺑﻨﺪی درﺳﺖ دادهﻫﺎی ﮐﻼس اﻗﻠﯿﺖ ﻫﺰﯾﻨﻪ ﺑﯿﺸﺘﺮی ﺧﻮاﻫﺪ داﺷﺖ. ﺑﺮای اﻋﻤﺎل ﻫﺰﯾﻨﻪ در اﻟ ﻮرﯾﺘﻢ AdaBoostﺳﻪ ﺗﻐﯿﯿﺮ زﯾﺮ را در ﻓﺮﻣﻮل ﺗﻐﯿﯿﺮ وزن دادهﻫﺎ اﻋﻤﺎل ﻣ ﮐﻨﯿﻢ ) Ciﻫﺰﯾﻨﻪ ﻧﺴﺒﺖ داده ﺷﺪه ﺑﻪ داده -iام اﺳﺖ و Ztﺟﻤﻠﻪ ﻧﺮﻣﺎلﺳﺎزی اﺳﺖ: ( . .١ ) Dt (i) exp(−αt Ci ht (xi )yi Zt = )Dt+1 (i .٢ ) Ci Dt (i) exp(−αt ht (xi )yi Zt = )Dt+1 (i .٣ ) Ci Dt (i) exp(−αt Ci ht (xi )yi Zt = )Dt+1 (i ﻫﻤﭽﻨﯿﻦ ﺑﺮای ﻫﺮ ﮐﺪام از ﺗﻐﯿﯿﺮات ﻓﻮق ،ﻣ ﺗﻮان ﻧﺤﻮه ﺑﻪروزرﺳﺎﻧ αtرا ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﻪ ﺻﻮرت زﯾﺮ در ﻓﺮم ﺑﺴﺘﻪ ﻧﻮﺷﺖ: .١ ∑ )Ci Dt (i)− i,y ̸=h (x ) Ci Dt (i ∑ i t i )) Ci Dt (i)+ i,y ̸=h (x ) Ci Dt (i ) i =hy (xi i t i i,yi =hy (xi ∑ )Ci Dt (i log ∑i,yi =ht (xi ) Ci Dt (i) .٢ ) i,yi ̸=ht (xi .٣ ∑ 1+ i,y ∑log 1− 1 2 = αt 1 2 = αt ∑ )Ci Dt (i)+ i,y =h (x ) Ci2 Dt (i)− i,y ̸=h (x ) Ci2 Dt (i ∑i ∑ i t i 2 ∑ i t i 2 )i Ci Dt (i)− i,y =h (x ) Ci Dt (i)+ i,y ̸=h (x ) Ci Dt (i ∑ i t i i t ∑ log i 1 2 = αt ﺳﻪ ﺗﻐﯿﯿﺮ ﻓﻮق را ﻓﻘﻂ ﺑﺎ Decision Stumpﭘﯿﺎدهﺳﺎزی ﮐﻨﯿﺪ .ﻧﺘﺎﯾ را ﺑﺮای ٣ﺗﻐﯿﯿﺮ ﺑﺎ ﻧﺎمﻫﺎی ، M١AdaBoost M٢AdaBoostو M٣AdaBoostﻣﺘﻤﺎﯾﺰ ﻧﻤﺎﯾﯿﺪ .ﺗﻌﺪاد ﺗ ﺮارﻫﺎ را ﺑﺮاﺑﺮ ١٠ﻗﺮار دﻫﯿﺪ. ﻧﺘﺎﯾ را ﺑﻪ ازای ﻫﺰﯾﻨﻪﻫﺎی ﻣﺨﺘﻠﻒ ﺑﺮای دادهﻫﺎی دو دﺳﺘﻪ ﺑﺪﺳﺖ آورﯾﺪ .ﻫﺰﯾﻨﻪ دادهﻫﺎی ﮐﻼس اﻗﻠﯿﺖ را ﻫﻤﻮاره ١در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ و ﻫﺰﯾﻨﻪ دادهﻫﺎی دﺳﺘﻪ اﮐﺜﺮﯾﺖ را ﺑﻪ ﺗﺮﺗﯿﺐ در ﺳﻪ آزﻣﺎﯾﺶ ﺟﺪاﮔﺎﻧﻪ ٠/۵ ،٠/١و ٠/٩درﻧﻈﺮ ﺑ ﯿﺮﯾﺪ. )واﺿ اﺳﺖ ﺑﻪ ازای وزن ١ﺑﺮای دادهﻫﺎی اﮐﺜﺮﯾﺖ ،ﻫﺮ ﺳﻪ اﻟ ﻮرﯾﺘﻢ ﺗﺒﺪﯾﻞ ﺑﻪ AdaBoostﺧﻮاﻫﻨﺪ ﺷﺪ(. ١.۴ ﺳﻮاﻻت .١ﺛﺎﺑﺖ ﻣ ﺷﻮد ﻧﺎﻣﺴﺎوی زﯾﺮ ﺑﺮای ﺗﻐﯿﯿﺮ اول ﺑﺮﻗﺮار اﺳﺖ. ) 1 + Ci yi ht (xi ) −αt 1 − Ci yi ht (xi ) αt e + e 2 2 ( )Dt (i ∑ ≤ )) Dt (i) exp(−αt Ci yi ht (xi i ∑ i ﺑﺎ ﻣﯿﻨﯿﻤﻢﺳﺎزی ﺣﺪ ﺑﺎﻻی ﻓﻮق ،ﻓﺮﻣﻮل ﺑﻪ روزرﺳﺎﻧ αtﺑﺮای ﺗﻐﯿﯿﺮ اول را ﺑﻪ دﺳﺖ آورﯾﺪ. .٢ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﺣﺪ ﺑﺎﻻی ﺧﻄﺎی آﻣﻮزش ﺑﺮای دو ﺗﻐﯿﯿﺮ اول ﻋﺒﺎرت ﺧﻮاﻫﺪ ﺑﻮد از: ∏ )آ( N t Zt )∑ Ci Dt (i )ب( i Ci t+1 ∏ t Zt Ci t+1 ) Nﺗﻮان -t+١ام Ciاﺳﺖ( . ﻣﻮﻓﻖ ﺑﺎﺷﯿﺪ. ۵
© Copyright 2025 Paperzz