SVM-Project.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫ﭘﺮوژه ﺷﻤﺎره ‪ 1‬درس ﻳﺎدﮔﻴﺮي ﻣﺎﺷﻴﻦ‬
‫آﺷﻨﺎﻳﻲ ﺑﺎ ﻣﺎﺷﻴﻦ ﺑﺮدار ﭘﺸﺘﻴﺒﺎن )‪(SVM‬‬
‫ﺳﺠﺎد ﺷﻴﺮﻋﻠﻲ ﺷﻬﺮﺿﺎ‬
‫‪[email protected]‬‬
‫ﻣﻘﺪﻣﻪ‬
‫ﻣﺴﺌﻠﻪ دﺳﺘﻪﺑﻨﺪي )‪ (Classification‬ﻳﻜﻲ از ﻣﺴﺎﺋﻞ اﺻﻠﻲ ﻣﻄﺮح ﺷﺪه در ﻳﺎدﮔﻴﺮي ﻣﺎﺷﻴﻦ اﺳﺖ و ﺑﺴﻴﺎري از‬
‫ﻣﺴﺎﺋﻞ را ﻣﻲﺗﻮان ﺑﻪ ﺻﻮرت ﻳﻚ ﻣﺴﺌﻠﻪ دﺳﺘﻪﺑﻨﺪي ﻣﻄﺮح ﻛﺮده و ﺣﻞ ﻛﺮد‪ .‬از ﻃﺮﻓﻲ در ﻳﺎدﮔﻴﺮي ﻣﺎﺷﻴﻦ ﻧﻴﺰ‬
‫روشﻫﺎي ﻣﺨﺘﻠﻔﻲ ﺑﺮاي ﺣﻞ ﻣﺴﺌﻠﻪ دﺳﺘﻪﺑﻨﺪي ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ‪.‬‬
‫ﻳﻜﻲ از روشﻫﺎﻳﻲ ﻛﻪ در ﺣﺎل ﺣﺎﺿﺮ ﺑﻪ ﺻﻮرت ﮔﺴﺘﺮدهاي ﺑﺮاي ﻣﺴﺌﻠﻪ دﺳﺘﻪﺑﻨﺪي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮد‪،‬‬
‫روش ﻣﺎﺷﻴﻦ ﺑﺮدار ﭘﺸﺘﻴﺒﺎن )‪ (SVM‬اﺳﺖ‪ .‬ﺷﺎﻳﺪ ﺑﻪ ﮔﻮﻧﻪاي ﺑﺘﻮان ﻣﺤﺒﻮﺑﻴﺖ ﻛﻨﻮﻧﻲ روش ﻣﺎﺷﻴﻦ ﺑﺮدار ﭘﺸﺘﻴﺒﺎن را ﺑﺎ‬
‫ﻣﺤﺒﻮﺑﻴﺖ ﺷﺒﻜﻪﻫﺎي ﻋﺼﺒﻲ در دﻫﻪ ﮔﺬﺷﺘﻪ ﻣﻘﺎﻳﺴﻪ ﻛﺮد‪ .‬ﻋﻠﺖ اﻳﻦ ﻗﻀﻴﻪ ﻧﻴﺰ ﻗﺎﺑﻠﻴﺖ اﺳﺘﻔﺎده اﻳﻦ روش در ﺣﻞ ﻣﺴﺎﺋﻞ‬
‫ﮔﻮﻧﺎﮔﻮن ﻣﻲﺑﺎﺷﺪ‪ ،‬در ﺣﺎﻟﻴﻜﻪ روشﻫﺎﻳﻲ ﻣﺎﻧﻨﺪ درﺧﺖ ﺗﺼﻤﻴﻢﮔﻴﺮي را ﻧﻤﻲﺗﻮان ﺑﻪ را ﺣﺘﻲ در ﻣﺴﺎﺋﻞ ﻣﺨﺘﻠﻒ ﺑﻪ ﻛﺎر‬
‫ﺑﺮد‪ .‬ﻫﺪف از اﻧﺠﺎم اﻳﻦ ﭘﺮوژه ﻧﻴﺰ آﺷﻨﺎﻳﻲ داﻧﺸﺠﻮﻳﺎن ﺑﺎ ﻳﻜﻲ از اﺑﺰارﻫﺎي ﻣﻮﺟﻮد ﺑﺮاي اﺳﺘﻔﺎده از ﻣﺎﺷﻴﻦ ﺑﺮدار ﭘﺸﺘﻴﺒﺎن‬
‫اﺳﺖ‪.‬‬
‫ﻧﺮماﻓﺰار ‪LIBSVM‬‬
‫ﺑﺮاي ﻣﺎﺷﻴﻦ ﺑﺮدار ﭘﺸﺘﻴﺒﺎن ﭘﻴﺎدهﺳﺎزيﻫﺎي ﮔﻮﻧﺎﮔﻮﻧﻲ در ﻃﻮل ﺳﺎﻟﻴﺎن اﺧﻴﺮ ﺗﻬﻴﻪ ﺷﺪه اﺳﺖ‪ .‬اﻏﻠﺐ اﻳﻦ ﻧﺮماﻓﺰارﻫﺎ‬
‫در ﻣﺤﻴﻂﻫﺎي داﻧﺸﮕﺎﻫﻲ ﻃﺮاﺣﻲ و ﭘﻴﺎدهﺳﺎزي ﺷﺪهاﻧﺪ‪ ،‬اﻣﺎ در اﻳﻦ ﻣﻴﺎن ﻣﻲﺗﻮان ﻣﺤﺼﻮﻻت ﺗﺠﺎري را ﻧﻴﺰ ﭘﻴﺪا ﻛﺮد‪.‬‬
‫ﻧﺮماﻓﺰارﻫﺎي ﮔﻮﻧﺎﮔﻮن از ﻟﺤﺎظ ﺷﺮاﻳﻂ اﺳﺘﻔﺎده ﻧﻴﺰ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺗﻔﺎوت دارﻧﺪ ﺑﻪ ﮔﻮﻧﻪاي ﻛﻪ ﺑﺮﺧﻲ ﻓﻘﻂ ﺑﺮاي اﺳﺘﻔﺎدهﻫﺎي‬
‫داﻧﺸﮕﺎﻫﻲ و ﻋﻠﻤﻲ ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﻫﺴﺘﻨﺪ و از ﺑﺮﺧﻲ دﻳﮕﺮ در ﻛﺎرﺑﺮدﻫﺎي ﺗﺠﺎري ﻧﻴﺰ ﻣﻲﺗﻮان اﺳﺘﻔﺎده ﻛﺮد‪.‬‬
‫ﺑﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺗﻤﺎﻣﻲ ﻣﻮارد ﻓﻮق و ﻫﻤﭽﻨﻴﻦ ﻣﻮاردي ﻣﺎﻧﻨﺪ ﺳﻬﻮﻟﺖ اﺳﺘﻔﺎده و اﺳﺘﻔﺎده از روشﻫﺎي ﺟﺪﻳﺪ و ﺑﻪ‬
‫روي در ﭘﻴﺎدهﺳﺎزي و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﺠﺮﺑﻪ ﺷﺨﺼﻲ اﺳﺘﻔﺎده از ﭼﻨﺪﻳﻦ ﻧﺮماﻓﺰار ﻣﻮﺟﻮد‪ ،‬ﻧﺮماﻓﺰاري ﻛﻪ ﺑﺮاي اﺳﺘﻔﺎده در‬
‫اﻳﻦ ﭘﺮوژه اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ‪ ،‬ﻧﺮماﻓﺰار ‪ LIBSVM‬اﺳﺖ‪.‬‬
‫اﻳﻦ ﻧﺮماﻓﺰار در ﺣﻘﻴﻘﺖ ﺑﺎ ﻫﺪف ﻃﺮاﺣﻲ ﻳﻚ ﻛﺘﺎﺑﺨﺎﻧﻪ ﺑﺮاي اﻧﺠﺎم ﻋﻤﻠﻴﺎت ﻳﺎدﮔﻴﺮي و اﺳﺘﻔﺎده از ﻣﺎﺷﻴﻦ ﺑﺮدار‬
‫ﭘﺸﺘﻴﺒﺎن ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ‪ .‬اﻳﻦ ﻧﺮماﻓﺰار و ﺑﻪ ﻋﺒﺎرﺗﻲ ﻛﺘﺎﺑﺨﺎﻧﻪ در اﺻﻞ ﺑﺎ اﺳﺘﻔﺎده از زﺑﺎن ‪ C++‬ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ‪،‬‬
‫اﮔﺮﭼﻪ در ﺣﺎل ﺑﺎ اﺳﺘﻔﺎده از زﺑﺎن ‪ Java‬ﻧﻴﺰ ﭘﻴﺎدهﺳﺎزي ﺷﺪه اﺳﺖ و ﻫﻤﭽﻨﻴﻦ راﺑﻂﻫﺎي ﮔﻮﻧﺎﮔﻮﻧﻲ ﺑﺮاي اﺳﺘﻔﺎده از در‬
‫ﻣﺤﻴﻂﻫﺎ و زﺑﺎنﻫﺎي ﻣﺨﺘﻠﻒ از ﺟﻤﻠﻪ ‪ MATLAB‬وﺟﻮد دارد‪.‬‬
‫آدرس ﺻﻔﺤﻪ اﺻﻠﻲ اﻳﻦ ﻧﺮماﻓﺰار ﻋﺒﺎرت اﺳﺖ از‪:‬‬
‫‪http://www.csie.ntu.edu.tw/~cjlin/libsvm‬‬
‫در ﺻﻔﺤﻪ ذﻛﺮ ﺷﺪه در ﺑﺎﻻ اﻃﻼﻋﺎت ﻛﺎﻣﻠﻲ در ﻣﻮرد اﻳﻦ ﻧﺮماﻓﺰار وﺟﻮد دارد‪ .‬ﻳﻜﻲ از ﻣﺴﺘﻨﺪات ﻣﻮﺟﻮد در اﻳﻦ‬
‫ﺳﺎﻳﺖ ﻳﻚ راﻫﻨﻤﺎي ﻛﻮﺗﺎه ﺑﺮاي آﺷﻨﺎﻳﻲ ﺑﺎ ‪ SVM‬و ﻫﻤﭽﻨﻴﻦ اﺳﺘﻔﺎده از ‪ LIBSVM‬اﺳﺖ‪ .‬اﻳﻦ ﻣﺴﺘﻨﺪ را ﻣﻲﺗﻮان از‬
‫آدرس زﻳﺮ درﻳﺎﻓﺖ ﻛﺮد‪:‬‬
‫‪http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf‬‬
‫اﻳﻦ ﻣﺴﺘﻨﺪ ﻣﻲﺗﻮان ﺑﻪ ﻋﻨﻮان ﺧﻼﺻﻪاي از ﻣﻄﺎﻟﺐ اراﺋﻪ ﺷﺪه در ﺟﻠﺴﻪ ﻣﺮﺑﻮط ﺑﻪ ﻣﺎﺷﻴﻦ ﺑﺮدار ﭘﺸﺘﻴﺒﺎن و ﻫﻤﭽﻨﻴﻦ‬
‫ﺑﺮاي ﻳﺎدآوري ﺑﺮﺧﻲ ﻣﻔﺎﻫﻴﻢ اﺳﺘﻔﺎده ﺷﻮد‪.‬‬
‫ﺑﺮاي اﻧﺠﺎم اﻳﻦ ﭘﺮوژه ﺗﻤﺎﻣﻲ داﻧﺸﺠﻮﻳﺎن ﺑﺎﻳﺪ از ﻧﮕﺎرش ‪ 2.88‬اﻳﻦ ﻧﺮماﻓﺰار ﻛﻪ در ﺣﺎل ﺣﺎﺿﺮ آﺧﺮﻳﻦ ﻧﮕﺎرش اراﺋﻪ‬
‫ﺷﺪه ﻣﻲﺑﺎﺷﺪ و در آدرس ذﻛﺮ ﺷﺪه وﺟﻮد دارد‪ ،‬اﺳﺘﻔﺎده ﻛﻨﻨﺪ‪.‬‬
‫ﺷﺮح ﭘﺮوژه‬
‫ﻫﻤﺎنﻃﻮر ﻛﻪ در ﻣﻘﺪﻣﻪ ذﻛﺮ ﺷﺪ‪ ،‬ﻫﺪف از ﻃﺮاﺣﻲ اﻳﻦ ﭘﺮوژه آﺷﻨﺎﻳﻲ داﻧﺸﺠﻮﻳﺎن ﺑﺎ ﻳﻜﻲ از ﻧﺮماﻓﺰارﻫﺎي ﻣﻮﺟﻮد‬
‫ﺑﺮاي ﻣﺎﺷﻴﻦ ﺑﺮدار ﭘﺸﺘﻴﺒﺎن و ﭼﮕﻮﻧﮕﻲ اﺳﺘﻔﺎده از آن اﺳﺖ‪ .‬ﺑﻪ ﻫﻤﻴﻦ ﻣﻨﻈﻮر در اﻳﻦ ﭘﺮوژه ﺑﻪ ﻫﺮ داﻧﺸﺠﻮ ﻳﻚ‬
‫ﻣﺠﻤﻮﻋﻪ از دادهﻫﺎي ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻳﻚ ﻣﺴﺌﻠﻪ دﺳﺘﻪﺑﻨﺪي اراﺋﻪ ﻣﻲﺷﻮد‪ .‬داﻧﺸﺠﻮ ﺑﺎﻳﺪ اﻳﻦ دادهﻫﺎ را ﺑﻪ ﻓﺮﻣﺖ ﻗﺎﺑﻞ اﺳﺘﻔﺎده‬
‫ﺗﻮﺳﻂ ‪ LIBSVM‬ﺗﺒﺪﻳﻞ ﻛﺮده و ﺳﭙﺲ ﻧﺘﺎﻳﺞ ﺣﺎﺻﻞ از ﺣﺎﻟﺖﻫﺎي ﻣﺨﺘﻠﻒ )ﻫﺴﺘﻪﻫﺎي ﻣﺨﺘﻠﻒ( ﺑﺮاي ﺣﻞ ﻣﺴﺌﻠﻪ را ﺑﻪ‬
‫دﺳﺖ آورد‪.‬‬
‫ﻣﺠﻤﻮﻋﻪاي ﻛﻪ ﻫﺮ داﻧﺸﺠﻮ ﺑﺎﻳﺪ ﺑﺮاي اﻳﻦ ﭘﺮوژه اﺳﺘﻔﺎده ﻛﻨﺪ در ﺟﺪول ﻣﻮﺟﻮد در اﻧﺘﻬﺎي اﻳﻦ ﻣﺴﺘﻨﺪ ذﻛﺮ ﺷﺪه‬
‫اﺳﺖ‪ .‬اﻳﻦ ﻣﺠﻤﻮﻋﻪﻫﺎ از ﺑﻴﻦ ﻣﺠﻤﻮﻋﻪﻫﺎي ﻣﻮﺟﻮد در ‪ UC Irvine Machine Learning Repository‬اﻧﺘﺨﺎب ﺷﺪهاﻧﺪ‪.‬‬
‫در اﻧﺘﺨﺎب ﻣﺠﻤﻮﻋﻪﻫﺎ ﺳﻌﻲ ﺷﺪه اﺳﺖ ﺗﺎ ﻣﺠﻤﻮﻋﻪﻫﺎﻳﻲ اﻧﺘﺨﺎب ﺷﻮﻧﺪ ﻛﻪ داراي ﺗﻨﻬﺎ وﻳﮋﮔﻲﻫﺎي ﻋﺪدي ﻫﺴﺘﻨﺪ‪.‬‬
‫ﻫﻤﭽﻨﻴﻦ ﺳﻌﻲ ﺷﺪه اﺳﺖ ﺗﺎ ﻣﺠﻤﻮﻋﻪﻫﺎ ﺗﺎ ﺣﺪ اﻣﻜﺎن ﻣﺸﺎﺑﻪ ﺑﺎﺷﻨﺪ‪ ،‬ﻫﺮﭼﻨﺪ اﻳﻦ ﻛﺎر را ﻧﻤﻲﺗﻮان ﺑﻪ ﺻﻮرت ﺑﻬﻴﻨﻪ ﻛﺮد‪.‬‬
‫ﺑﻪ ﻫﻤﻴﻦ ﺧﺎﻃﺮ ﭼﻨﺎﻧﭽﻪ ﻛﺴﻲ در ﻫﻨﮕﺎم اﺳﺘﻔﺎده از ﻳﻚ ﻣﺠﻤﻮﻋﻪ‪ ،‬ﺑﺎ ﻣﺸﻜﻠﻲ ﻣﻮاﺟﻪ ﺷﺪ و ﻳﺎ ﻣﺘﻮﺟﻪ ﺷﺪ ﻛﻪ اﺳﺘﻔﺎده از‬
‫آن ﻣﺠﻤﻮﻋﻪ ﺧﻴﻠﻲ ﻣﺸﻜﻞ اﺳﺖ‪ ،‬ﺑﺎ ﻃﺮاﺣﻲ ﭘﺮوژه )‪ ([email protected]‬ﻣﻜﺎﺗﺒﻪ ﻛﻨﺪ ﺗﺎ ﻳﻚ ﻣﺠﻤﻮﻋﻪ دﻳﮕﺮ ﺑﺮاي‬
‫او در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮد‪.‬‬
‫ﻣﺠﻤﻮﻋﻪﻫﺎي در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه ﺑﻪ ﺻﻮرت ﻣﺴﺎﺋﻞ ﻃﺒﻘﻪﺑﻨﺪي دو ﻛﻼﺳﻪ و ﻳﺎ ﭼﻨﺪ ﻛﻼﺳﻪ ﻫﺴﺘﻨﺪ‪ .‬از آﻧﺠﺎﺋﻴﻜﻪ‬
‫‪ LIBSVM‬ﺣﺎﻟﺖ ﭼﻨﺪ ﻛﻼﺳﻪ را ﻧﻴﺰ ﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲﻛﻨﺪ‪ ،‬ﺑﻨﺎﺑﺮاﻳﻦ از ﻧﻈﺮ ﻣﻴﺰان دﺷﻮاري اﻧﺠﺎم ﭘﺮوژه‪ ،‬ﺗﻔﺎوﺗﻲ ﺑﻴﻦ‬
‫ﻣﺴﺎﺋﻞ دو ﻛﻼﺳﻪ و ﭼﻨﺪ ﻛﻼﺳﻪ وﺟﻮد دارد‪ .‬ﺗﻨﻬﺎ ﺗﻔﺎوت اﻳﻦ اﺳﺖ ﻛﻪ ﻣﺠﻤﻮﻋﻪﻫﺎي ﺑﺰرگﺗﺮ و ﻳﺎ ﺣﺎﻟﺖ ﭼﻨﺪ ﻛﻼﺳﻪ‬
‫ﻣﻤﻜﻦ اﺳﺖ ﺑﻪ زﻣﺎن ﺑﻴﺸﺘﺮي ﺑﺮاي آﻣﻮزش و آزﻣﺎﻳﺶ ﻧﻴﺎز داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬
‫در اﻳﻦ ﭘﺮوژه داﻧﺸﺠﻮ ﺑﺎﻳﺪ اﺑﺘﺪا ﻣﺠﻤﻮﻋﻪ ﻣﻮرد ﻧﻈﺮ را از اﻳﻨﺘﺮﻧﺖ ﺑﻪ ﺻﻮرت ﻛﺎﻣﻞ درﻳﺎﻓﺖ ﻛﻨﺪ‪ .‬ﺳﭙﺲ دادهﻫﺎ را ﺑﻪ‬
‫ﻓﺮﻣﺖ ﻣﻮرد اﺳﺘﻔﺎده ﺗﻮﺳﻂ ‪ LIBSVM‬ﺗﺒﺪﻳﻞ ﻛﻨﺪ‪ .‬در ﻧﻬﺎﻳﺖ ﻧﻴﺰ ﻣﺴﺌﻠﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻫﺴﺘﻪﻫﺎي )‪ (Kernel‬ﮔﻮﻧﺎﮔﻮن‬
‫و ﺑﺎ اﺳﺘﻔﺎده از ﭘﺎراﻣﺘﺮﻫﺎي ﮔﻮﻧﺎﮔﻮن ﺣﻞ ﺧﻮاﻫﻨﺪ ﺷﺪ و ﻧﺘﺎﻳﺞ اراﺋﻪ ﻣﻲﺷﻮﻧﺪ‪.‬‬
‫ﻧﺮماﻓﺰار ‪ LIBSVM‬دو ﺣﺎﻟﺖ ﻛﻠﻲ ﺑﺮاي ﺣﻞ ﻣﺴﺌﻠﻪ دﺳﺘﻪﺑﻨﺪي دارد‪ C-SVM :‬و ‪ .nu-SVM‬ﺗﻔﺎوت اﻳﻦ دو در‬
‫ﭼﮕﻮﻧﮕﻲ ﺑﻴﺎن ﻣﺴﺌﻠﻪ ﺑﻪ ﺻﻮرت ﻳﻚ ﻣﺴﺌﻠﻪ ﺑﻬﻴﻨﻪﺳﺎزي و ﻫﻤﭽﻨﻴﻦ ﭘﺎراﻣﺘﺮ ﻣﻮرد ﺗﻨﻈﻴﻢ اﺳﺖ‪ .‬در اﻳﻦ ﭘﺮوژه ﺑﺎﻳﺪ‬
‫ﻣﺴﺎﺋﻞ ﺑﺮاي ﻫﺴﺘﻪﻫﺎي ﻣﺨﺘﻠﻒ در ﻫﺮ دو ﺣﺎﻟﺖ ﺣﻞ ﺷﻮد‪ .‬ﺑﺮاي ﺣﺎﻟﺖ ‪ ،nu-SVM‬ﺑﺮاي ﭘﺎراﻣﺘﺮ ‪ nu‬ﻛﻪ ﺑﺎ ‪ –n‬ﻣﺸﺨﺺ‬
‫ﻣﻲﺷﻮد‪ ،‬از ﻣﻘﺎدﻳﺮ ‪ 0/9 ،0/75 ،0/5 ،0/25 ،0/1‬و ‪ 1/0‬اﺳﺘﻔﺎده ﺷﻮد‪ .‬ﺑﺮاي ﺣﺎﻟﺖ ‪ C-SVM‬ﻧﻴﺰ ﺑﺮاي ﭘﺎراﻣﺘﺮ ‪ C‬ﻛﻪ ﺑﺎ‬
‫‪ –c‬ﻣﺸﺨﺺ ﻣﻲﺷﻮد از ﻣﻘﺎدﻳﺮ ‪ 100 ،10 ،1 ،0/1 ،0/01 ،0/001‬و ‪ 1000‬اﺳﺘﻔﺎده ﺷﻮد‪.‬‬
‫اﻳﻦ ﻧﺮماﻓﺰار ﭼﻬﺎر ﻫﺴﺘﻪ ﻣﺨﺘﻠﻒ را ﺑﻪ ﺻﻮرت ﭘﻴﺶﻓﺮض ﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲﻛﻨﺪ ﻛﻪ ﻋﺒﺎرﺗﻨﺪ از ﻫﺴﺘﻪﻫﺎي ﺧﻄﻲ‪ ،‬ﭼﻨﺪ‬
‫ﺟﻤﻠﻪاي‪ RBF ،‬و ‪ .Sigmoid‬ﺷﻤﺎ ﺑﺎﻳﺴﺘﻲ ﻧﺘﺎﻳﺞ را ﺑﺮاي ﻫﺮ ﻫﺴﺘﻪ ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ ﺑﻪ دﺳﺖ آورﻳﺪ‪.‬‬
‫ﻫﺴﺘﻪ ﺧﻄﻲ ﻫﻴﭻ ﭘﺎراﻣﺘﺮي ﻧﺪارد و ﺑﻨﺎﺑﺮاﻳﻦ ﺗﻨﻬﺎ ﻳﻚ ﺣﺎﻟﺖ اﺟﺮا دارد‪.‬‬
‫ﻫﺴﺘﻪ ﭼﻨﺪ ﺟﻤﻠﻪاي داراي دو ﭘﺎراﻣﺘﺮ اﺳﺖ‪ .‬ﭘﺎراﻣﺘﺮ اول درﺟﻪ ﭼﻨﺪ ﺟﻤﻠﻪاي اﺳﺖ و ﺑﺎ ‪ –d‬ﻣﺸﺨﺺ ﻣﻲﺷﻮد‪ ،‬ﺑﻪ‬
‫ازاي ﻣﻘﺎدﻳﺮ ‪ 3 ،2 ،1‬و ‪ 4‬ﺑﺎﻳﺪ ﻣﺴﺌﻠﻪ را ﺣﻞ ﻛﺮد‪ .‬ﺑﺮاي ﭘﺎراﻣﺘﺮ دوم ﻧﻴﺰ ﻛﻪ ﻋﺪد ﺛﺎﺑﺖ ﺟﻤﻊ ﺷﻮﻧﺪه اﺳﺖ و ﺑﺎ ‪–r‬‬
‫ﻣﺸﺨﺺ ﻣﻲﺷﻮد‪ ،‬ﺳﻪ ﺣﺎﻟﺖ ‪ -1 ،0‬و ‪ +1‬را اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬
‫ﻫﺴﺘﻪ ‪ RBF‬ﺗﻨﻬﺎ ﻳﻚ ﭘﺎراﻣﺘﺮ ﮔﺎﻣﺎ دارد ﻛﻪ ﺑﺎ ‪ –g‬ﻣﺸﺨﺺ ﻣﻲﺷﻮد‪ .‬ﺑﺮاي اﻳﻦ ﭘﺎراﻣﺘﺮ ﻳﻚ ﺑﺎر ﻣﻘﺪار ﭘﻴﺶﻓﺮض‬
‫ﻳﻌﻨﻲ ‪ 1/k‬را )‪ k‬ﺗﻌﺪاد وﻳﮋﮔﻲﻫﺎ اﺳﺖ( اﺳﺘﻔﺎده ﻛﻨﻴﺪ )ﺑﻪ ﻋﺒﺎرﺗﻲ ﻫﻴﭻ ﻣﻘﺪاري را ﺑﺮاي ﮔﺎﻣﺎ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻧﺪﻫﻴﺪ( و ﺑﻪ‬
‫ﻋﻼوه ﻣﻘﺎدﻳﺮ ‪ 1/k2‬و ‪ 1‬را ﻧﻴﺰ ﺗﺴﺖ ﻛﻨﻴﺪ‪.‬‬
‫در ﻣﻮرد ﻫﺴﺘﻪ ‪ sigmoid‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﺴﺎﺋﻠﻲ ﻛﻪ ﻣﻌﻤﻮﻻ از ﻧﻈﺮ ﻫﻤﮕﺮاﻳﻲ ﺑﻪ ﺟﻮاب ﭘﻴﺶ ﻣﻲآﻳﺪ‪ ،‬ﺗﻨﻬﺎ ﻫﻤﺎن‬
‫ﭘﻴﺶﻓﺮض ﻳﻌﻨﻲ ﻣﻘﺪار ﺛﺎﺑﺖ ‪ 0‬و ﮔﺎﻣﺎ ‪ 1/k‬ﺟﻮاب را ﺑﻪ دﺳﺖ آورﻳﺪ‪.‬‬
‫ﺑﺮاي ﺑﻪ دﺳﺖ آوردن ﻧﺘﺎﻳﺞ‪ ،‬اﺑﺘﺪا ﺑﺎﻳﺪ ﻣﺠﻤﻮﻋﻪ دادهﻫﺎ را ﺑﻪ دو ﺑﺨﺶ آﻣﻮزش )‪ (Training‬و آزﻣﺎﻳﺶ )‪(Testing‬‬
‫ﺗﻘﺴﻴﻢ ﻛﺮد‪ .‬در ﻣﻮرد اﻛﺜﺮ ﻣﺠﻤﻮﻋﻪﻫﺎ اﻳﻦ دﺳﺘﻪﺑﻨﺪي در ﻣﺴﺘﻨﺪات ﻫﻤﺮاه دادهﻫﺎ ذﻛﺮ ﺷﺪه اﺳﺖ‪ .‬در اﻳﻦ ﻣﺠﻤﻮﻋﻪﻫﺎ‬
‫ﺑﺎﻳﺪ از ﻫﻤﻴﻦ دﺳﺘﻪﺑﻨﺪي اﺳﺘﻔﺎده ﻛﺮد‪ .‬در ﻣﻮرد ﻣﺠﻤﻮﻋﻪﻫﺎﻳﻲ ﻛﻪ اﻳﻦ ﺗﻘﺴﻴﻢﺑﻨﺪي ﺑﺮاي آنﻫﺎ ذﻛﺮ ﻧﺸﺪه اﺳﺖ‪ ،‬ﺑﺎ ﻧﻈﺮ‬
‫ﺧﻮد و ﻗﺒﻞ از ﺷﺮوع ﺑﻪ دﺳﺖ آوردن ﻧﺘﺎﻳﺞ‪ ،‬دادهﻫﺎ را ﺑﻪ دو دﺳﺘﻪ آﻣﻮزش و آزﻣﺎﻳﺶ ﺗﻘﺴﻴﻢ ﻛﻨﻴﺪ‪ .‬ﺳﻌﻲ ﻛﻨﻴﺪ ﺑﺮاي‬
‫اﻳﻦ ﻛﺎر از اﺳﺘﺪﻻلﻫﺎي ﻣﻨﻄﻘﻲ اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ ،‬ﻣﺜﻼ اﮔﺮ دادهﻫﺎ ﻣﺮﺑﻮط ﺑﻪ ﺗﺸﺨﻴﺺ ﻛﻠﻤﻪ ﮔﻔﺘﻪ ﺷﺪه اﺳﺖ‪ ،‬ﻧﻤﻮﻧﻪﻫﺎي‬
‫ﻣﺮﺑﻮط ﺑﻪ ﺑﺮﺧﻲ ﮔﻮﻳﻨﺪهﻫﺎ را ﺑﺮاي آﻣﻮزش و ﺑﻘﻴﻪ ﮔﻮﻳﻨﺪﮔﺎن را ﺑﺮاي آزﻣﺎﻳﺶ اﺳﺘﻔﺎده ﻛﻨﻴﺪ ﻧﻪ اﻳﻨﻜﻪ از ﮔﻮﻳﻨﺪه ﭼﻨﺪ‬
‫ﻧﻤﻮﻧﻪ را ﺑﺮاي آﻣﻮزش و ﭼﻨﺪ ﻧﻤﻮﻧﻪ را ﺑﺮاي آزﻣﺎﻳﺶ اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬
‫دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ ﻫﻤﺎنﻃﻮر ﻛﻪ در ﻣﺴﺘﻨﺪ آﻣﻮزش ﺑﺎ ‪ SVM‬ﻛﻪ در ﺑﺎﻻ ذﻛﺮ ﺷﺪ ﻧﻴﺰ آﻣﺪه اﺳﺖ‪ ،‬اﺑﺘﺪا ﺑﺎﻳﺪ دادهﻫﺎ ﺑﻪ‬
‫ﺑﺎزه ]‪ [0..1‬ﻳﺎ ]‪ [-1..+1‬ﺗﺒﺪﻳﻞ ﺷﻮد‪ .‬ﺑﺮاي اﻳﻦ ﻛﺎر ﻣﻲﺗﻮاﻧﻴﺪ از ﻧﺮماﻓﺰاري ﻛﻪ در ﺑﺴﺘﻪ ‪ LIBSVM‬ﻧﻴﺰ ﻣﻮﺟﻮد اﺳﺖ‬
‫اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ .‬اﻳﻦ ﻣﺴﺌﻠﻪ ﺗﺎﺛﻴﺮ ﻓﺮاواﻧﻲ ﺑﺮ روي ﺧﺮوﺟﻲ دارد‪ .‬ﺑﻪ ﻋﻼوه در ﺑﺮﺧﻲ ﻣﻮارد ﺑﻬﺘﺮ اﺳﺖ ﻛﻪ وارﻳﺎﻧﺲ دادهﻫﺎ‬
‫ﻧﻴﺰ ‪ 1‬ﺷﻮد‪ .‬اﻳﻦ ﻣﻮرد را ﻣﻲﺗﻮان ﺑﻪ ﺻﻮرت اﺧﺘﻴﺎري اﻧﺠﺎم داد )ﺑﻪ ﻋﺒﺎرﺗﻲ اﻧﺠﺎم آن اﺟﺒﺎري ﻧﻴﺴﺖ!( و ﻧﺘﺎﻳﺞ را در‬
‫ﺣﺎﻟﺘﻲ ﻛﻪ وارﻳﺎﻧﺲ ‪ 1‬ﺷﺪه ﺑﺎ ﺣﺎﻟﺘﻲ ﻛﻪ وارﻳﺎﻧﺲ داده ﺗﻐﻴﻴﺮ داده ﻧﺸﺪه ﻣﻘﺎﻳﺴﻪ ﻛﺮد‪.‬‬
‫ﻣﻮارد ﺗﺤﻮﻳﻠﻲ‬
‫آﻧﭽﻪ داﻧﺸﺠﻮ ﺑﺎﻳﺪ ﺗﺤﻮﻳﻞ دﻫﺪ را ﻣﻲﺗﻮان ﺑﻪ دو ﻗﺴﻤﺖ اﺻﻠﻲ ﺗﻘﺴﻴﻢ ﻛﺮد‪ :‬ﻣﺴﺘﻨﺪي ﻛﻪ ﺷﺎﻣﻞ ﮔﺰارش و ﻧﺘﺎﻳﺞ‬
‫اﺳﺖ و دادهﻫﺎ و ﻣﺪلﻫﺎي آﻣﻮزش دﻳﺪه‪ .‬در اداﻣﻪ ﻫﺮ ﻳﻚ از اﻳﻦ دو ﻗﺴﻤﺖ ﺷﺮح داده ﻣﻲﺷﻮﻧﺪ‪.‬‬
‫در ﻣﺴﺘﻨﺪي ﻛﻪ ﮔﺰارش و ﺧﺮوﺟﻲ اﺻﻠﻲ ﭘﺮوژه اﺳﺖ‪ ،‬ﺑﺎﻳﺪ در اﺑﺘﺪا ﻣﺠﻤﻮﻋﻪ داده ﻣﻮرد اﺳﺘﻔﺎده ﻣﻌﺮﻓﻲ ﺷﻮد‪ .‬اﻳﻦ‬
‫ﻣﻌﺮﻓﻲ ﺑﺎﻳﺪ ﺷﺎﻣﻞ ﺣﻮزهاي ﻛﻪ ﻣﺴﺌﻠﻪ در آن ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ‪ ،‬ﺗﻌﺪاد ﻛﻼسﻫﺎي ﻣﺴﺌﻠﻪ‪ ،‬ﺗﻌﺪاد وﻳﮋﮔﻲﻫﺎ‪ ،‬ﺑﺎزه‬
‫وﻳﮋﮔﻲﻫﺎ‪ ،‬ﻣﻌﻨﺎي ﻫﺮ وﻳﮋﮔﻲ و اﻃﻼﻋﺎت ﻣﺸﺎﺑﻪ ﻛﻪ ﺑﻪ ﻫﻤﺮاه ﻣﺠﻤﻮﻋﻪ دادهﻫﺎ از اﻳﻨﺘﺮﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ‪ ،‬ﺑﺎﺷﺪ‪.‬‬
‫در اداﻣﻪ ﺑﺎﻳﺪ ﭼﮕﻮﻧﮕﻲ ﺗﻘﺴﻴﻢ دادهﻫﺎ ﺑﻪ دو ﻗﺴﻤﺖ ﺑﺮاي آﻣﻮزش و آزﻣﺎﻳﺶ ﺷﺮح داده ﺷﻮد‪ .‬اﮔﺮ اﻳﻦ ﻣﻮرد ﺑﻪ ﻫﻤﺮاه‬
‫ﻣﺠﻤﻮﻋﻪ وﺟﻮد دارد‪ ،‬ﻫﻤﺎن ﺷﺮح داده ﺷﻮد و در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﺣﺎﻟﺖ اﺳﺘﻔﺎده ﺷﺪه ﺗﻮﺳﻂ داﻧﺸﺠﻮ ﺑﻴﺎن ﺷﻮد‪.‬‬
‫ﭘﺲ از ﺷﺮح ﻣﺠﻤﻮﻋﻪ داده‪ ،‬ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﺧﻼﺻﻪ ﺑﻴﺎن ﺷﻮد ﻛﻪ ﺑﺮ روي دادهﻫﺎ ﭼﻪ ﭘﺮدازﺷﻲ ﺻﻮرت اﺳﺖ ﺑﺎ ﺑﻪ‬
‫ﻓﺮﻣﺖ ﻗﺎﺑﻞ اﺳﺘﻔﺎده ‪ LIBSVM‬ﺗﺒﺪﻳﻞ ﺷﻮد و اﻳﻦ ﻛﺎر ﺑﺎ ﭼﻪ اﺑﺰارﻫﺎﻳﻲ ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ‪.‬‬
‫در ﭘﺎﻳﺎن ﻧﻴﺰ ﺑﺎﻳﺪ ﻧﺘﺎﻳﺞ ﺑﻴﺎن ﺷﻮﻧﺪ‪ .‬ﺑﺮاي ﺑﻴﺎن ﻧﺘﺎﻳﺞ‪ ،‬ﺑﺎﻳﺪ ﻧﺘﺎﻳﺞ در ﺣﺎﻟﺖ ﻛﻠﻲ اﺳﺘﻔﺎده از ‪ C-SVM‬و ‪nu-SVM‬‬
‫ﺑﻴﺎن ﺷﻮﻧﺪ‪ .‬در ﻫﺮ ﻣﻮرد ﺑﺎﻳﺪ ﻧﺘﺎﻳﺞ ﺑﺮاي ﻫﺴﺘﻪ ﺑﻪ ﺻﻮرت ﺟﺪا ﺑﻴﺎن ﺷﻮﻧﺪ‪ .‬ﺑﺮاي ﻫﺮ ﻫﺴﺘﻪ‪ ،‬ﺣﺎﻟﺖﻫﺎي ﻣﺨﺘﻠﻒ اﺳﺘﻔﺎده‬
‫از ﭘﺎراﻣﺘﺮﻫﺎ ﻣﺎﻧﻨﺪ ﻣﻘﺎدﻳﺮ ﻣﺨﺘﻠﻒ ﮔﺎﻣﺎ ﺑﺮاي ﻫﺴﺘﻪ ‪ RBF‬ﺑﻴﺎن ﺷﻮﻧﺪ‪ .‬در ﻫﺮ ﺣﺎﻟﺖ ﻧﻴﺰ ﻧﺘﺎﻳﺞ ﺑﺮاي ﻣﻘﺎدﻳﺮ ﻣﺨﺘﻠﻒ‬
‫ﭘﺎراﻣﺘﺮ ‪ C‬ﻳﺎ ‪ nu‬ﺑﻴﺎن ﺷﻮﻧﺪ‪ .‬ﺑﺮاي ﺑﻴﺎن ﻧﺘﺎﻳﺞ ﻧﻴﺰ دو ﻋﺪد ﺑﺎﻳﺪ ﺑﻴﺎن ﺷﻮﻧﺪ‪ .‬ﻋﺪد اول دﻗﺖ ﺑﺮ روي ﻣﺠﻤﻮﻋﻪ آﻣﻮزﺷﻲ و‬
‫ﻋﺪد دوم دﻗﺖ ﺑﺮ روي ﻣﺠﻤﻮﻋﻪ آزﻣﺎﻳﺸﻲ اﺳﺖ‪ .‬ﺑﻪ ﻋﺒﺎرﺗﻲ ﻋﺪد اول ﺑﻴﺎن ﻛﻨﻨﺪه ﺧﻄﺎﻳﻲ اﺳﺖ ﻛﻪ در ﻫﻨﮕﺎم آﻣﻮزش‬
‫ﻗﺎﺑﻞ اﻧﺪازهﮔﻴﺮي اﺳﺖ و ﻋﺪد دوم ﺑﻴﺎن ﻛﻨﻨﺪه ﺗﻘﺮﻳﺐ ﻣﻨﺎﺳﺒﻲ از دﻗﺖ واﻗﻌﻲ ﻣﺪل ﺑﻪ دﺳﺖ آﻣﺪه ﺑﺮاي دادهﻫﺎي ﺟﺪﻳﺪ‬
‫اﺳﺖ‪.‬‬
‫ﻣﺴﺘﻨﺪي ﻛﻪ ﮔﺰارش را ﺑﻴﺎن ﻣﻲﻛﻨﺪ ﺑﺎﻳﺪ ﻗﺒﻞ از ﺗﺎرﻳﺦ ﺗﺤﻮﻳﻞ ﺑﻪ آدرس ‪ [email protected]‬ارﺳﺎل ﺷﻮد‪.‬‬
‫ﻗﺴﻤﺖ دوم ﻣﻮارد ﺗﺤﻮﻳﻠﻲ ﻣﺮﺑﻮط ﺑﻪ ﺗﺤﻮﻳﻞ دادهﻫﺎ و ﻣﺪلﻫﺎي آﻣﻮزش دﻳﺪه اﺳﺖ‪ .‬اﻳﻦ ﻗﺴﻤﺖ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﻳﻚ‬
‫‪) CD‬و ﻳﺎ ‪ DVD‬در ﺻﻮرﺗﻲ ﻛﻪ ﺣﺠﻢ دادهﻫﺎ زﻳﺎد اﺳﺖ( ﺗﺤﻮﻳﻞ داده ﺷﻮﻧﺪ‪ .‬اﻳﻦ ‪ CD‬ﺑﺎﻳﺪ ﺷﺎﻣﻞ دادهﻫﺎي ﺧﺎم ﮔﺮﻓﺘﻪ‬
‫ﺷﺪه از اﻳﻨﺘﺮﻧﺖ‪ ،‬دادهﻫﺎي ﭘﺮدازش ﺷﺪه‪ ،‬ﻣﺪلﻫﺎي آﻣﻮزش دﻳﺪه و ﻧﺘﺎﻳﺞ ﺣﺎﺻﻞ از ﺗﺴﺖ ﻣﺠﻤﻮﻋﻪ آزﻣﺎﻳﺸﻲ ﺑﺎ اﺳﺘﻔﺎده‬
‫از ﻣﺪلﻫﺎ ﺑﺎﺷﺪ‪ .‬ﻣﺴﺘﻨﺪ آﻣﺎده ﺷﺪه ﺑﻪ ﻋﻨﻮان ﮔﺰارش ﻧﻴﺰ ﺑﺎﻳﺪ ﺑﺮ روي ‪ CD‬ﺑﺎﺷﺪ‪.‬‬
‫ﭼﻨﺎﻧﭽﻪ در ﻫﺮ ﻣﺮﺣﻠﻪ از اﻧﺠﺎم ﭘﺮوژه ﺑﺎ ﻣﺸﻜﻠﻲ ﻣﻮاﺟﻪ ﺷﺪﻳﺪ‪ ،‬ﺳﻮاﻻت ﺧﻮد را از ﻃﺮﻳﻖ آدرس‬
‫‪ [email protected]‬ﻣﻄﺮح ﻛﻨﻴﺪ‪.‬‬
‫ﻣﺠﻤﻮﻋﻪاي ﻛﻪ ﻫﺮ داﻧﺸﺠﻮ ﺑﺎﻳﺪ اﺳﺘﻔﺎده ﻛﻨﺪ‬
‫ردﻳ‬
‫ف‬
‫ﺷﻤﺎره‬
‫داﻧﺸﺠﻮﻳﻲ‬
1
85104698
2
85202356
3
85202797
4
85300788
5
86205417
6
‫ﻧﺎم ﻣﺠﻤﻮﻋﻪ ﺑﺮاي اﺳﺘﻔﺎده‬
‫آدرس ﻣﺠﻤﻮﻋﻪ‬
Connectionist Bench
(Sonar, Mines vs. Rocks
Australian Sign
Language signs
Breast Cancer
Wisconsin - Prognostic
Breast Cancer
Wisconsin - Diagnostic
Statlog - Image
Segmentation
http://mlr.cs.umass.edu/ml/datasets/Connectionist+Bench+(S
onar%2C+Mines+vs.+Rocks)
http://mlr.cs.umass.edu/ml/datasets/Australian+Sign+Langua
ge+signs+(High+Quality)
http://mlr.cs.umass.edu/ml/datasets/Breast+Cancer+Wisconsi
n+(Prognostic)
http://mlr.cs.umass.edu/ml/datasets/Breast+Cancer+Wisconsi
n+(Diagnostic)
http://mlr.cs.umass.edu/ml/datasets/Statlog+(Image+Segmen
tation)
86205666
Ozone Level Detection
http://mlr.cs.umass.edu/ml/datasets/Ozone+Level+Detection
7
86206792
MAGIC Gamma
Telescope
http://mlr.cs.umass.edu/ml/datasets/MAGIC+Gamma+Telesc
ope
8
86300316
Glass Identification
http://mlr.cs.umass.edu/ml/datasets/Glass+Identification
9
86701337
Quadruped Mammals
http://mlr.cs.umass.edu/ml/datasets/Quadruped+Mammals
10
86701467
Hill-Valley
http://mlr.cs.umass.edu/ml/datasets/Hill-Valley
11
86701637
Parkinsons
http://mlr.cs.umass.edu/ml/datasets/Parkinsons
12
86702033
Madelon
http://mlr.cs.umass.edu/ml/datasets/Madelon
13
86702439
ISOLET
http://mlr.cs.umass.edu/ml/datasets/ISOLET
14
87012073
Arcene
http://mlr.cs.umass.edu/ml/datasets/Arcene
15
87200767
Yeast
http://mlr.cs.umass.edu/ml/datasets/Yeast
16
87202402
Ecoli
http://mlr.cs.umass.edu/ml/datasets/Ecoli
17
87202508
Iris
http://mlr.cs.umass.edu/ml/datasets/Iris
18
87203367
Page Blocks
Classification
http://mlr.cs.umass.edu/ml/datasets/Page+Blocks+Classificat
ion
19
87204317
Pima Indians Diabetes
http://mlr.cs.umass.edu/ml/datasets/Pima+Indians+Diabetes
20
87204328
Multiple Features
http://mlr.cs.umass.edu/ml/datasets/Multiple+Features
21
87205132
Ionosphere
http://mlr.cs.umass.edu/ml/datasets/Ionosphere
22
87206018
Spambase
http://mlr.cs.umass.edu/ml/datasets/Spambase
23
87301477
Wine
http://mlr.cs.umass.edu/ml/datasets/Wine
24
87301669
Pen-Based Recognition
25
87301693
Optical Recognition
26
87702024
27
87702816
Statlog - Vehicle
Silhouettes
Statlog - Landsat
Satellite
http://mlr.cs.umass.edu/ml/datasets/PenBased+Recognition+of+Handwritten+Digits
http://mlr.cs.umass.edu/ml/datasets/Optical+Recognition+of
+Handwritten+Digits
http://mlr.cs.umass.edu/ml/datasets/Statlog+(Vehicle+Silhou
ettes)
http://mlr.cs.umass.edu/ml/datasets/Statlog+(Landsat+Satelli
te)