Project-2.pdf

‫ﺑﺴﻤﻪ ﺗﻌﺎﻟ‬
‫ﯾﺎدﮔﯿﺮی ﻣﺎﺷﯿﻦ‬
‫ﻧﯿﻤﺴﺎل اول ‪٩٢-٩٣‬‬
‫دﮐﺘﺮ ﺳﻠﯿﻤﺎﻧ‬
‫داﻧﺸ ﺪه ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﺑﻪ ﻧ ﺎت زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ‪:‬‬
‫• ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ اﯾﻦ ﭘﺮوژه‪ ١ ،‬ﺑﻬﻤﻦ ‪ ١٣٩٢‬اﺳﺖ‪.‬‬
‫• ﺧﺮوﺟ ﭘﺮوژه ﺷﻤﺎ‪ ،‬ﻓﺎﯾﻞﻫﺎی ﻣﺮﺑﻮط ﺑﻪ ﮐﺪﻫﺎ و ﻓﺎﯾﻞ ﺷﺎﻣﻞ ﮔﺰارش ﻧﺘﺎﯾ ﻫﻤﻪ ﺑﺨﺶﻫﺎ اﺳﺖ‪.‬‬
‫• ﺑﺮای ﭘﯿﺎدهﺳﺎزیﻫﺎی ﺧﻮد ﺗﻨﻬﺎ از ‪ 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‬اﺳﺖ‪( .‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﯿﺪ‪.‬‬
‫‪۵‬‬