donya88
03-03-2011, 09:18 AM
روش استفاده از Weka
شکل 1، راههای انتخاب واسطهای مختلف Weka را نشان ميدهد.
آسانترين راه استفاده از Weka ، از طريق واسطی گرافيکی است که Explorer خوانده ميشود. اين واسط گرافيکی، به وسيله انتخاب منوها و پر کردن فرمهای مربوطه، دسترسی به همه امکانات را فراهم کرده است. برای مثال، ميتوان به سرعت يک مجموعه داده را از يک فايل ARFF خواند و درخت تصميمگيری آن را توليد نمود. امادرختهای تصميمگيری يادگيرنده صرفاً ابتدای کار هستند. الگوريتمهای بسيار ديگری برای جستجو وجود دارند. واسط Explorer کمک ميکند تا الگوريتمهای ديگر نيز آزمايش شوند.
http://pnu-club.com/imported/2011/03/509.jpg
شکل 1. Weka در وضعيت انتخاب واسط
اين واسط با در اختيار گذاشتن گزينهها به صورت منو، با وادار کردن کاربر به اجرای کارها با ترتيب صحيح، به وسيله خاکستری نمودن گزينهها تا زمان صحيح به کارگيری آنها، و با در اختيار گذاشتن گزينههايی به صورت فرمهای پرشدنی، کاربر را هدايت ميکند. راهنمای ابزار مفيدی، حين عبور ماوس از روی گزينهها، ظاهر شده و اعمال لازم مربوطه را شرح ميدهد. پيشفرضهای معقول قرار داده شده، کاربر را قادر ميسازند تا با کمترين تلاشی، به نتيجه برسد. اما کاربر بايد برای درک معنی نتايج حاصله، راجع به کارهايی که انجام ميدهد، بينديشد.
Weka دو واسط گرافيکی ديگر نيز دارد. واسط knowledge flow به کاربر امکان ميدهد تا چنيشهايی برای پردازش دادههای در جريان، طراحی کند. يک عيب پايهای Explorer . نگهداری هر چيزی در حافظه اصلی آن است. (زمانی که يک مجموعه داده را باز ميکنيم، Explorer ، کل آن را، در حافظ باز ميکند) نشان ميدهد که Explorer ، صرفاً برای مسايل با اندازههای کوچک تا متوسط، قابل اعمال است. با وجود بر اين Weka شامل تعدادی الگوريتمهای افزايشی است که ميتواند برای پردازش مجموعه های داده بسيار بزرگ مورد استفاده قرار گيرد. واسط knowledge flow امکان ميدهد تا جعبه [15] های نمايانگر الگوريتمهای يادگيری و منابع دادهها را به درون صفحه بکشيم و با اتصال آنها به يکديگر، ترکيب و چينش دلخواه خود را بسازيم. اين واسط اجازه ميدهد تا جريان دادهای از مؤلفههای به هم متصل که بيانگر منابع داده، ابزارهای پيش پردازش، روشهای ارزيابی و واحدهای مصوّر سازی هستند تعريف شود. اگر فيلترها و الگوريتمهای يادگيری، قابليت يادگيری افزايشی را داشته باشند، دادهها به صورت افزايشی بار شده و پردازش خواهند شد.
سومين واسط Weka ، که Experimenter خوانده ميشود، کمک ميکند تا به اين سؤال عملی و پايهای کاربر حين استفاده از تکنيکهای ردهبندی و رگرسيون، پاسخ دهد: "چه روشها و پارامترهايی برای مسأله داده شده، بهتر عمل ميکنند؟"
عموماً راهی برای پاسخگويی مقدماتی به اين سؤال وجود ندارد و يکی از دلايل توسعه Weka ، فراهم نمودن محيطی است که کاربران Weka را قادر به مقايسه تکنيکهای گوناگون يادگيری بنمايد. اين کار، ميتواند به صورت تعاملی در Explorer انجام شود. با اين وجود، Experimenter با ساده کردن اجرای ردهبندی کنندهها و فيلترها با پارامترهای گوناگون روی تعدادی از مجموعههای داده، جمعآوری آمار کارآيی و انجام آزمايشهای معنا، پردازش را خودکار ميکند. کاربرهای پيشرفته، ميتوانند از Experimenter برای توزيع بار محاسباتی بين چندين ماشين، استفاده کنند. در اين روش، ميتوان آزمايشهای آماری بزرگی را راهاندازی نموده و آنها را برای اجرا، رها نمود.
ورای اين واسطهای تعاملی، عملکرد پايهای Weka قرار دارد. توابع پايهای Weka ، از طريق خط فرمان [16] های متنی قابل دسترسی هستند. زمانی که Weka ، فعال ميشود، امکان انتخاب بين چهار واسط کاربری وجود دارد: Explorer ، knowledge ، Experimenter و واسط خط فرمان.
اکثر کاربران، حداقل در ابتدای کار Explorer را به عنوان واسط کاربری انتخاب ميکنند.
3. قابليتهای Weka
مستندسازی در لحظه، که به صورت خودکار از کد اصلی توليد ميشود و دقيقاً ساختار آن را بيان ميکند، قابليت مهمی است که حين استفاده از Weka وجوددارد.
نحوه استفاده از اين مستندات و چگونگی تعيين پايههای ساختمانی اصلی Weka ، مشخص کردن بخشهايی که از روشهای يادگيری با سرپرست استفاده ميکند، ابزاری برای پيش پردازش دادهها بکار ميرود و اينکه چه روشهايی برای ساير برنامههای يادگيری وجود دارد، در ادامه تشريح خواهد شد. تنها به ليست کاملی از الگوريتمهای موجود اکتفا ميشود زيرا Weka به طور پيوسته تکميل ميشود و به طور خودکار از کد اصلی توليد ميشود. مستندات در لحظه هميشه به هنگام شده ميباشد. اگر ادامه دادن به مراحل بعدی و دسترسی به کتابخانه از برنامه جاوا شخصی يا نوشتن و آزمايش کردن برنامههای يادگيری شخصی مورد نياز باشد، اين ويژگی بسيار حياتی خواهد بود.
در اغلب برنامههای کاربردی داده کاوی، جزء يادگيری ماشينی، بخش کوچکی از سيستم نرمافزاری نسبتاً بزرگی را شامل ميشود. در صورتی که نوشتن برنامه کاربردی داده کاوی مد نظر باشد، ميتوان با برنامهنويسی اندکی به برنامههای Weka از داخل کد شخصی دسترسی داشت. اگر پيدا کردن مهارت در الگوريتمهای يادگيری ماشينی مدنظر باشد، اجرای الگوريتمهای شخصی بدون درگير جزييات دست و پا گير شدن مثل خواندن اطلاعات از يک فايل، اجرای الگوريتمهای فيلترينگ يا تهيه کد برای ارزيابی نتايج يکی از خواستهها ميباشد. Weka دارای همه اين مزيتها است. برای استفاده کامل از اين ويژگی، بايد با ساختارهای پايهای دادهها آشنا شد.
4. دريافت Weka
نرم افزار Weka ، در آدرس http://www.cs.waikato.ac.nz/me/weka (http://www.cs.waikato.ac.nz/me/weka)، در دسترس است. از اين طريق ميتوان نصب کننده [17] متناسب با يک پلت فرم معين، يا يک فايل Java jar را که در صورت نصب بودن جاوا به راحتی قابل اجرا است، دانلود [18] نمود.
5. مروری بر Explorer
واسط گرافيکی اصلی برای کاربران، Explorer است که امکان دسترسی به همه امکانات Weka را از طريق انتخاب منوها و پر کردن فرمها فراهم ميآورد. شکل 2، نمای Explorer را نشان ميدهد. در اين واسط، شش پانل [19] مختلف وجود دارد که از طريق نوار [20] بالای صفحه قابل انتخاب هستند و با وظايف [21] داده کاوی پشتيبانی شده توسط Weka متناظر ميباشند.
http://pnu-club.com/imported/2011/03/510.jpg
شکل 2. واسط گرافيکی Explorer
دو گزينه از شش گزينه بالای پنجره Explorer در شکل های 3 و 4 به طور خلاصه تشريح شده است.
به طور خلاصه، کارکرد تمام گزينهها به شرح ذيل است.
Preprocess : انتخاب مجموعه داده و اصلاح [22] آن از راههای گوناگون
Classify : آموزش [23] برنامههای يادگيری که ردهبندی يا رگرسيون انجام ميدهند و ارزيابی آنها.
Cluster : يادگيری خوشهها برای مجموعه های داده
Associate : يادگيری قواعد انجمنی برای دادهها و ارزيابی آنها
Select attributes : انتخاب مرتبطترين جنبه [24] ها در مجموعه های داده
Visualize : مشاهده نمودارهای مختلف دوبعدی دادهها و تعامل با آنها
http://pnu-club.com/imported/2011/03/511.jpg
شکل 3. خواندن فايل داده های آب و هوا
Weka Exphorer امکان رده بندی دارد، چنانچه به کاربران اجازه ميدهد به صورت تعاملی اقدام به ساخت درخت تصميمگيری کنند. Weka نمودار پراکندگی دادهها را نسبت به دو ويژگی انتخاب شده، فراهم ميآورد. وقتی زوج ويژگيای که ردهها را به خوبی جدا ميکند، پيدا شد، امکان ايجاد دو شاخه با کشيدن چند ضلعی اطراف نقاط دادهها بر نمودار پراکندگی وجود دارد.
http://pnu-club.com/imported/2011/03/512.jpg
شکل 4. نوار Classify
هر نوار، دسترسی به دامنه کاملی از امکانات را فراهم ميکند. در پايين هر پانل، جعبه status و دکمه log قرار دارد. جعبه status پيغامهايی است که نشان ميدهد چه عملياتی در حال انجام داده شدن است. مثلاً اگر Explores مشغول خواندن يک فايل باشد، جعبه status آن را گزارش ميدهد. کليک راست در هر جا داخل اين جعبه يک منو کوچک با دو گزينه ميآورد، نمايش ميزان حافظه در دسترس Weka و اجرای Java garbage collector ..
لازم است توجه شود که garbage collector به طور ثابت به عنوان يک عمل پيش زمينه [25] در هر حال اجرا ميشود کليک دکمه log ، گزارش عملکرد متنی کارهايی که Weka تاکنون در اين بخش انجام داده است با برچسب زمانی ارايه ميکند.
زمانيکه Weka در حال عمليات است، پرنده کوچکی که در پايين سمت راست پنجره است، بالا و پايين ميپرد. عدد پشت × نشان ميدهد که به طور همزمان چند عمليات در حال انجام است. اگر پرنده بايستد در حاليکه حرکت نميکند، او مريض است! اشتباه رخ داده است و بايد Explorer از نو اجرا شود.
1. خواندن و فيلتر کردن فايلها
در بالای پانل Preprocess در شکل 3، دکمههايی برای باز کردن فايل، URL ها و پايگاه های داده وجود دارد. در ابتدا تنها فايلهای با پسوند arff . در browser فايل نمايش داده ميشود. برای ديدن ساير فايلها يايد گزينه [26] Format در جعبه انتخاب فايل تغيير داده شود.
2. تبديل فايلها به فرمت ARFF
نرم افزار Weka دارای سه مبدل فرمت فايل [27] ميباشد، برای فايلهای صفحه گسترده [28] با پسوند CSV ، با فرمت فايل C4.5 با پسوند names . و data و برای نمونههای سری با پسوند bsi .
اگر Weka قادر به خواندن دادهها نباشد، سعی ميکند آن را به صورت ARFF تفسير کند. اگر نتواند جعبه نشان داده شده در شکل 5 (الف) ظاهر ميشود.
http://pnu-club.com/imported/2011/03/513.jpg
(الف)
http://pnu-club.com/imported/2011/03/514.jpg
(ب)
http://pnu-club.com/imported/2011/03/515.jpg
(ج)
شکل 5. ويرايشگر عمومی اشياء (الف) ويرايشگر (ب) اطلاعات بيشتر (فشردن دگمه More ) (ج) انتخاب يک مبدل
اين، يک ويرايشگر عمومی [29] اشياء است که در Weka برای انتخاب و تنظيم اشيا بکار ميرود. به عنوان مثال وقتی پارامتری برای Classifier تنظيم ميشود، جعبهای با نوع مشابه بکار برده ميشود. CSV Loader برای فايلهای با پسوند CSV . به طور پيش فرض انتخاب ميشود. دکمه More اطلاعات بيشتری در مورد آن ميدهد که در شکل 5 (ب) نشان داده شده است.
هميشه مطالعه مستندات [30] ارزشمنداست! در اين حالت نشان ميدهد که رديف نخست صفحه گسترده، نام ويژگی را تعيين ميکند. برای استفاده از اين مبدل بايد بر Ok کليک شود. برای مورد مختلف لازم است بر choose کليک شود تا از ليست شکل 5 (ج) انتخاب انجام شود.
گزينه اول، Arffloader است و فقط به دليل ناموفق بودن به اين نقطه ميرسيم. CSVLoader پيش فرض است و در صورت نياز به فرض ديگر، choose کليک ميشود. سومين گزينه، مربوط به فرمت C4.5 است که دو فايل برای مجموعه داده وجود دارد يکی اسمها و ديگـری دادههای واقعـی ميباشد. چهارمين برای نمونههای سريالی [31] ، برای بازخوانی [32] مجموعه دادهای است که به صورت شيئ سريالی شده جاوا ذخيره شده است. هر شيء در جاوا ميتواند در اين شکل ذخيره و بازخوانی شود. به عنوان يک فرمت بومی جاوا [33] ، سريعتر از فايل ARFF خوانده ميشود چرا که فايل ARFF بايد تجزيه [34] و کنترل شود. وقتی يک مجموعه داده بزرگ مکررا بازخوانی ميشود، ذخيره آن در اين شکل سودمند است.
ويژگيهای ديگر ويرايشگر عمومی اشيا در شکل 5 (الف)، save و open است که به ترتيب برای ذخيره اشيای تنظيم شده و بازکردن شيئی که پيش از اين ذخيره شده است، به کار ميرود. اينها برای اين نوع خاص شيئ مفيد نيستند. لکن پانلهای ديگر ويرايشگر عمومی اشياء، خواص قابل ويرايش زيادی دارند. به دليل مشکلاتی که ممکن است حين تنظيم مجدد آنها رخ دهد، ميتوان ترکيب اشياء ايجاد شده را برای استفادههای بعدی، ذخيره کرد.
تنها منبع [35] مجموعههای داده برای Weka ، فايلهای موجود روی کامپيوتر نيستند. ميتوان يک URL را باز کرد تا Weka از پروتکل HTTP برای دانلود کردن يک فايل Arff از شبکه استفاده کند. همچنين ميتوان يک پايگاه دادهها را باز نمود ( open DB ـ هر پايگاه دادهای که درايور اتصال به مجموعه های داده به زبان جاوا JDBC را دارد.) و به وسيله دستور select زبان SQL ، نمونهها را بازيابی نمود. دادهها ميتوانند به کمک دگمه save به همه فرمتهای ذکر شده، ذخيره شوند. جدای از بحث بارگذاری و ذخيره مجموعههای داده، پانل preprocess به کاربر اجازه فيلتر کردن دادهها را ميدهد. فيلترها، اجزای مهم Weka هستند.
3. بکارگيری فيلترها
با کليک دگمه choose (گوشه بالا و سمت چپ) در شکل 3 ميتوان به ليستی از فيلترها دست يافت. ميتوان از فيلترها برای حذف ويژگيهای مورد نظری از يک مجموعه داده و انتخاب دستی ويژگيها استفاده نمود. مشابه اين نتيجه را ميتوان به کمک انتخاب ويژگيهای مورد نظر با تيک زدن آنها و فشار دادن کليه Remove به دست آورد.
4. الگوريتمهای يادگيری
زمانی که يک الگوريتم يادگيری با استفاده از دگمه choose در پانل classify انتخاب ميشود، نسخه خط فرمانی رده بند در سطری نزديک به دگمه ظاهر ميگردد. اين خط فرمان شامل پارامترهای الگوريتم است که با خط تيره مشخص ميشوند. برای تغيير آنها ميتوان روی آن خط کليک نمود تا ويرايشگر مناسب شيء، باز شود. جدول شکل 6، ليست اسامی رده بندهای Weka را نمايش ميدهد. اين الگوريتمها به رده بندهای Bayesian ، trees ، functions rules ، lazy و دسته نهايی شامل روشهای متفرقه تقسيم شدهاند.
4-1. Trees
Decision stump که برای استفاده توسط روشهای boosting طراحی شده است، برای مجموعههای داده عددی يا ردهای، درخت تصميمگيری يک سطحی ميسازد. اين الگوريتم، با مقادير از دست رفته، به صورت مقادير مجزا برخورد کرده و شاخه سومی از درخت توسعه ميدهد.
4-2. Rules
Decision Table يک رده بند بر اساس اکثريت جدول تصميمگيری ميسازد. اين الگوريتم، با استفاده از جستجوی اولين بهترين، زير دستههای ويژگيها را ارزيابی ميکند و ميتواند از اعتبارسنجی تقاطعی برای ارزيابی بهره ببرد (1995، Kohavi ).
يک امکان اين است که به جای استفاده از اکثريت جدول تصميمگيری که بر اساس دسته ويژگيهای مشابه عمل ميکند، از روش نزديکترين همسايه برای تعيين رده هر يک از نمونهها که توسط مدخل [36] جدول تصميمگيری پوشش داده نشدهاند، استفاده شود.
Conjunctive Rule قاعدهای را ياد ميگيرد که مقادير ردههای عددی را ردهای را پيشبينی ميکند. نمونههای آزمايشی به مقادير پيش فرض رده نمونههای آموزشی، منسوب ميشوند. سپس تقويت اطلاعات (برای ردههای رسمی)، يا کاهش واريانس (برای ردههای عددی) مربوط به هر والد محاسبه شده و به روش هرس کردن با خطای کاهش يافته [37] ، قواعد هرس ميشوند.
ZeroR برای ردههای اسمی، اکثريت دادههای مورد آزمايش و برای ردههای عددی، ميانگين آنها را پيشبينی ميکند. اين الگوريتم بسيار ساده است.
M5Rules ، به کمک M5 از روی درختهای مدل، قواعد رگرسيون استخراج ميکند.
http://pnu-club.com/imported/2011/03/516.jpg
شکل 6.الف. الگوريتمهای رده بندی در Weka
http://pnu-club.com/imported/2011/03/517.jpg
شکل 6.ب. الگوريتمهای رده بندی در Weka
در اين بخش به شرح مختصری برخی از اين الگوريتمها و پارامترهايشان که قابليت کار با ويژگی های عددی را دارند، پرداخته ميشود.
4-3. Functions
Simple Linear Regresion مدل رگرسيون خطی يک ويژگی مشخص را ياد ميگيرد. آنگاه مدل با کمترين خطای مربعات را انتخاب ميکند. در اين الگوريتم، مقادير از دست رفته و مقادير غيرعددی مجاز نيستند [38] .
Linear Regression رگرسيون خطی استاندارد کمترين خطای مربعات را انجام ميدهد ميتواند به طور اختياری به انتخاب ويژگی بپردازد، اين کار ميتواند به صورت حريصانه [39] با حذف عقب رونده [40] انجام شود، يا با ساختن يک مدل کامل از همه ويژگيها و حذف يکی يکی جملهها با ترتيب نزولی ضرايب استاندارد شده آنها، تا رسيدن به شرط توقف مطلوب انجام گيرد.
Least Med sq يک روش رگرسيون خطی مقاوم است که ميانه [41] (به جای ميانگين [42] ) مربعات انحراف از خط رگرسيون را کمينه ميکند. اين روش به طور مکرر رگرسيون خطی استاندارد را به زيرمجموعههايی از نمونهها اعمال ميکند و نتايجی را بيرون ميدهد که کمترين خطای مربع ميانه را دارند.
SMO teg الگوريتم بهينه سازی حداقل ترتيبی را روی مسايل رگرسيون اعمال ميکند. ( Scholkopf, 1998 ، Smola )
Pace Regression ، با استفاده از تکنيک رگرسيون pace ، مدلهای رگرسيون خطی توليد ميکند (2002 ، Wang و Witten ). رگرسيون pace ، زمانی که تعداد ويژگيها خيلی زياد است، به طور ويژهای در تعيين ويژگيهايی که بايد صرفنظر شوند، خوب عمل ميکند. در واقع در صورت وجود نظم و ترتيب خاصی، ثابت ميشود که با بينهايت شدن تعداد ويژگيها، الگوريتم بهينه عمل ميکند.
RBF Network ، يک شبکه با تابع پايهای گوسی شعاعی را پياده سازی ميکند. مراکز و عرضهای واحدهای مخفی به وسيله روش ميانگين K [43] تعيين ميشود. سپس خروجيهای فراهم شده از لايههای مخفی [44] ، با استفاده از رگرسيون منطقی در مورد ردههای اسمی و رگرسيون خطی در مورد ردههای عددی، با يکديگر ترکيب ميشوند. فعال سازيهای توابع پايه پيش از ورود به مدلهای خطی، با جمع شدن با عدد يک، نرماليزه ميشوند. در اين الگوريتم ميتوان، K تعداد خوشهها، بيشترين تعداد تکرارهای رگرسيونهای منطقی برای مسألههای ردههای رسمی، حداقل انحراف معيار خوشهها، و مقدار بيشينه رگرسيون را تعيين نمود. اگر ردهها رسمی باشد، ميانگين K به طور جداگانه به هر رده اعمال ميشود تا K خوشه مورد نظر برای هر رده استخراج گردد.
4-4. رده بندهای Lazy
ياديگرندههای lazy نمونههای آموزشی را ذخيره ميکنند و تا زمان رده بندی هيچ کار واقعی انجام نميدهند.
IB1 يک يادگيرنده ابتدايی بر پايه نمونه است که نزديکترين نمونههای آموزشی به نمونههای آزمايشی داده شده را از نظر فاصله اقليدسی پيدا کرده و نزديکترين ردهای مشابه رده همان نمونههای آموزشی را تخمين ميزند.
IBK يک رده بند با K همسايه نزديک است که معيار فاصله ذکر شده را استفاده ميکند. تعداد نزديکترين فاصلهها (پيش فرض 1= K ) ميتواند به طور صريح در ويرايشگر شيء تعيف شود. پيشبينيهای متعلق به پيش از يک همسايه ميتواند بر اساس فاصله آنها تا نمونههای آزمايشی، وزندار گردد.
دو فرمول متفاوت برای تبديل فاصله به وزن، پياده سازی شدهاند. تعداد نمونههای آموزشی که به وسيله رده بند نگهداری ميشود، ميتواند با تنظيم گزينه اندازه پنجره محدود گردد. زمانی که نمونههای جديد اضافه ميشوند، نمونههای قديمی حذف شده تا تعداد کل نمونههای آموزشی در اندازه تعيين شده باقی بماند.
Kstar ، يک روش نزديکترين همسايه است که از تابع فاصلهای عمومی شده بر اساس تبديلات استفاده ميکند.
LWL يک الگوريتم کلی برای يادگيری وزن دار شده به صورت محلی است. اين الگوريتم با استفاده از يک روش بر پايه نمونه، وزنها را نسبت ميدهد و از روی نمونههای وزندار شده، رده بند را ميسازد. رده بند در ويرايشگر شيء LWL انتخاب ميشود. Nave Bayes برای مسايل رده بندی و رگرسيون خطی برای مسايل رگرسيون، انتخابهای خوبی هستند. ميتوان در اين الگوريتم، تعداد همسايههای مورد استفاده را که پهنای باند هسته و شکل هسته مورد استفاده برای وزن دار کردن را (خطی، معکوس، يا گوسی) مشخص ميکند، تعيين نمود. نرمال سازی ويژگيها به طور پيش فرض فعال است[ Data Mining, witten et Al. 2005 ].
شکل 1، راههای انتخاب واسطهای مختلف Weka را نشان ميدهد.
آسانترين راه استفاده از Weka ، از طريق واسطی گرافيکی است که Explorer خوانده ميشود. اين واسط گرافيکی، به وسيله انتخاب منوها و پر کردن فرمهای مربوطه، دسترسی به همه امکانات را فراهم کرده است. برای مثال، ميتوان به سرعت يک مجموعه داده را از يک فايل ARFF خواند و درخت تصميمگيری آن را توليد نمود. امادرختهای تصميمگيری يادگيرنده صرفاً ابتدای کار هستند. الگوريتمهای بسيار ديگری برای جستجو وجود دارند. واسط Explorer کمک ميکند تا الگوريتمهای ديگر نيز آزمايش شوند.
http://pnu-club.com/imported/2011/03/509.jpg
شکل 1. Weka در وضعيت انتخاب واسط
اين واسط با در اختيار گذاشتن گزينهها به صورت منو، با وادار کردن کاربر به اجرای کارها با ترتيب صحيح، به وسيله خاکستری نمودن گزينهها تا زمان صحيح به کارگيری آنها، و با در اختيار گذاشتن گزينههايی به صورت فرمهای پرشدنی، کاربر را هدايت ميکند. راهنمای ابزار مفيدی، حين عبور ماوس از روی گزينهها، ظاهر شده و اعمال لازم مربوطه را شرح ميدهد. پيشفرضهای معقول قرار داده شده، کاربر را قادر ميسازند تا با کمترين تلاشی، به نتيجه برسد. اما کاربر بايد برای درک معنی نتايج حاصله، راجع به کارهايی که انجام ميدهد، بينديشد.
Weka دو واسط گرافيکی ديگر نيز دارد. واسط knowledge flow به کاربر امکان ميدهد تا چنيشهايی برای پردازش دادههای در جريان، طراحی کند. يک عيب پايهای Explorer . نگهداری هر چيزی در حافظه اصلی آن است. (زمانی که يک مجموعه داده را باز ميکنيم، Explorer ، کل آن را، در حافظ باز ميکند) نشان ميدهد که Explorer ، صرفاً برای مسايل با اندازههای کوچک تا متوسط، قابل اعمال است. با وجود بر اين Weka شامل تعدادی الگوريتمهای افزايشی است که ميتواند برای پردازش مجموعه های داده بسيار بزرگ مورد استفاده قرار گيرد. واسط knowledge flow امکان ميدهد تا جعبه [15] های نمايانگر الگوريتمهای يادگيری و منابع دادهها را به درون صفحه بکشيم و با اتصال آنها به يکديگر، ترکيب و چينش دلخواه خود را بسازيم. اين واسط اجازه ميدهد تا جريان دادهای از مؤلفههای به هم متصل که بيانگر منابع داده، ابزارهای پيش پردازش، روشهای ارزيابی و واحدهای مصوّر سازی هستند تعريف شود. اگر فيلترها و الگوريتمهای يادگيری، قابليت يادگيری افزايشی را داشته باشند، دادهها به صورت افزايشی بار شده و پردازش خواهند شد.
سومين واسط Weka ، که Experimenter خوانده ميشود، کمک ميکند تا به اين سؤال عملی و پايهای کاربر حين استفاده از تکنيکهای ردهبندی و رگرسيون، پاسخ دهد: "چه روشها و پارامترهايی برای مسأله داده شده، بهتر عمل ميکنند؟"
عموماً راهی برای پاسخگويی مقدماتی به اين سؤال وجود ندارد و يکی از دلايل توسعه Weka ، فراهم نمودن محيطی است که کاربران Weka را قادر به مقايسه تکنيکهای گوناگون يادگيری بنمايد. اين کار، ميتواند به صورت تعاملی در Explorer انجام شود. با اين وجود، Experimenter با ساده کردن اجرای ردهبندی کنندهها و فيلترها با پارامترهای گوناگون روی تعدادی از مجموعههای داده، جمعآوری آمار کارآيی و انجام آزمايشهای معنا، پردازش را خودکار ميکند. کاربرهای پيشرفته، ميتوانند از Experimenter برای توزيع بار محاسباتی بين چندين ماشين، استفاده کنند. در اين روش، ميتوان آزمايشهای آماری بزرگی را راهاندازی نموده و آنها را برای اجرا، رها نمود.
ورای اين واسطهای تعاملی، عملکرد پايهای Weka قرار دارد. توابع پايهای Weka ، از طريق خط فرمان [16] های متنی قابل دسترسی هستند. زمانی که Weka ، فعال ميشود، امکان انتخاب بين چهار واسط کاربری وجود دارد: Explorer ، knowledge ، Experimenter و واسط خط فرمان.
اکثر کاربران، حداقل در ابتدای کار Explorer را به عنوان واسط کاربری انتخاب ميکنند.
3. قابليتهای Weka
مستندسازی در لحظه، که به صورت خودکار از کد اصلی توليد ميشود و دقيقاً ساختار آن را بيان ميکند، قابليت مهمی است که حين استفاده از Weka وجوددارد.
نحوه استفاده از اين مستندات و چگونگی تعيين پايههای ساختمانی اصلی Weka ، مشخص کردن بخشهايی که از روشهای يادگيری با سرپرست استفاده ميکند، ابزاری برای پيش پردازش دادهها بکار ميرود و اينکه چه روشهايی برای ساير برنامههای يادگيری وجود دارد، در ادامه تشريح خواهد شد. تنها به ليست کاملی از الگوريتمهای موجود اکتفا ميشود زيرا Weka به طور پيوسته تکميل ميشود و به طور خودکار از کد اصلی توليد ميشود. مستندات در لحظه هميشه به هنگام شده ميباشد. اگر ادامه دادن به مراحل بعدی و دسترسی به کتابخانه از برنامه جاوا شخصی يا نوشتن و آزمايش کردن برنامههای يادگيری شخصی مورد نياز باشد، اين ويژگی بسيار حياتی خواهد بود.
در اغلب برنامههای کاربردی داده کاوی، جزء يادگيری ماشينی، بخش کوچکی از سيستم نرمافزاری نسبتاً بزرگی را شامل ميشود. در صورتی که نوشتن برنامه کاربردی داده کاوی مد نظر باشد، ميتوان با برنامهنويسی اندکی به برنامههای Weka از داخل کد شخصی دسترسی داشت. اگر پيدا کردن مهارت در الگوريتمهای يادگيری ماشينی مدنظر باشد، اجرای الگوريتمهای شخصی بدون درگير جزييات دست و پا گير شدن مثل خواندن اطلاعات از يک فايل، اجرای الگوريتمهای فيلترينگ يا تهيه کد برای ارزيابی نتايج يکی از خواستهها ميباشد. Weka دارای همه اين مزيتها است. برای استفاده کامل از اين ويژگی، بايد با ساختارهای پايهای دادهها آشنا شد.
4. دريافت Weka
نرم افزار Weka ، در آدرس http://www.cs.waikato.ac.nz/me/weka (http://www.cs.waikato.ac.nz/me/weka)، در دسترس است. از اين طريق ميتوان نصب کننده [17] متناسب با يک پلت فرم معين، يا يک فايل Java jar را که در صورت نصب بودن جاوا به راحتی قابل اجرا است، دانلود [18] نمود.
5. مروری بر Explorer
واسط گرافيکی اصلی برای کاربران، Explorer است که امکان دسترسی به همه امکانات Weka را از طريق انتخاب منوها و پر کردن فرمها فراهم ميآورد. شکل 2، نمای Explorer را نشان ميدهد. در اين واسط، شش پانل [19] مختلف وجود دارد که از طريق نوار [20] بالای صفحه قابل انتخاب هستند و با وظايف [21] داده کاوی پشتيبانی شده توسط Weka متناظر ميباشند.
http://pnu-club.com/imported/2011/03/510.jpg
شکل 2. واسط گرافيکی Explorer
دو گزينه از شش گزينه بالای پنجره Explorer در شکل های 3 و 4 به طور خلاصه تشريح شده است.
به طور خلاصه، کارکرد تمام گزينهها به شرح ذيل است.
Preprocess : انتخاب مجموعه داده و اصلاح [22] آن از راههای گوناگون
Classify : آموزش [23] برنامههای يادگيری که ردهبندی يا رگرسيون انجام ميدهند و ارزيابی آنها.
Cluster : يادگيری خوشهها برای مجموعه های داده
Associate : يادگيری قواعد انجمنی برای دادهها و ارزيابی آنها
Select attributes : انتخاب مرتبطترين جنبه [24] ها در مجموعه های داده
Visualize : مشاهده نمودارهای مختلف دوبعدی دادهها و تعامل با آنها
http://pnu-club.com/imported/2011/03/511.jpg
شکل 3. خواندن فايل داده های آب و هوا
Weka Exphorer امکان رده بندی دارد، چنانچه به کاربران اجازه ميدهد به صورت تعاملی اقدام به ساخت درخت تصميمگيری کنند. Weka نمودار پراکندگی دادهها را نسبت به دو ويژگی انتخاب شده، فراهم ميآورد. وقتی زوج ويژگيای که ردهها را به خوبی جدا ميکند، پيدا شد، امکان ايجاد دو شاخه با کشيدن چند ضلعی اطراف نقاط دادهها بر نمودار پراکندگی وجود دارد.
http://pnu-club.com/imported/2011/03/512.jpg
شکل 4. نوار Classify
هر نوار، دسترسی به دامنه کاملی از امکانات را فراهم ميکند. در پايين هر پانل، جعبه status و دکمه log قرار دارد. جعبه status پيغامهايی است که نشان ميدهد چه عملياتی در حال انجام داده شدن است. مثلاً اگر Explores مشغول خواندن يک فايل باشد، جعبه status آن را گزارش ميدهد. کليک راست در هر جا داخل اين جعبه يک منو کوچک با دو گزينه ميآورد، نمايش ميزان حافظه در دسترس Weka و اجرای Java garbage collector ..
لازم است توجه شود که garbage collector به طور ثابت به عنوان يک عمل پيش زمينه [25] در هر حال اجرا ميشود کليک دکمه log ، گزارش عملکرد متنی کارهايی که Weka تاکنون در اين بخش انجام داده است با برچسب زمانی ارايه ميکند.
زمانيکه Weka در حال عمليات است، پرنده کوچکی که در پايين سمت راست پنجره است، بالا و پايين ميپرد. عدد پشت × نشان ميدهد که به طور همزمان چند عمليات در حال انجام است. اگر پرنده بايستد در حاليکه حرکت نميکند، او مريض است! اشتباه رخ داده است و بايد Explorer از نو اجرا شود.
1. خواندن و فيلتر کردن فايلها
در بالای پانل Preprocess در شکل 3، دکمههايی برای باز کردن فايل، URL ها و پايگاه های داده وجود دارد. در ابتدا تنها فايلهای با پسوند arff . در browser فايل نمايش داده ميشود. برای ديدن ساير فايلها يايد گزينه [26] Format در جعبه انتخاب فايل تغيير داده شود.
2. تبديل فايلها به فرمت ARFF
نرم افزار Weka دارای سه مبدل فرمت فايل [27] ميباشد، برای فايلهای صفحه گسترده [28] با پسوند CSV ، با فرمت فايل C4.5 با پسوند names . و data و برای نمونههای سری با پسوند bsi .
اگر Weka قادر به خواندن دادهها نباشد، سعی ميکند آن را به صورت ARFF تفسير کند. اگر نتواند جعبه نشان داده شده در شکل 5 (الف) ظاهر ميشود.
http://pnu-club.com/imported/2011/03/513.jpg
(الف)
http://pnu-club.com/imported/2011/03/514.jpg
(ب)
http://pnu-club.com/imported/2011/03/515.jpg
(ج)
شکل 5. ويرايشگر عمومی اشياء (الف) ويرايشگر (ب) اطلاعات بيشتر (فشردن دگمه More ) (ج) انتخاب يک مبدل
اين، يک ويرايشگر عمومی [29] اشياء است که در Weka برای انتخاب و تنظيم اشيا بکار ميرود. به عنوان مثال وقتی پارامتری برای Classifier تنظيم ميشود، جعبهای با نوع مشابه بکار برده ميشود. CSV Loader برای فايلهای با پسوند CSV . به طور پيش فرض انتخاب ميشود. دکمه More اطلاعات بيشتری در مورد آن ميدهد که در شکل 5 (ب) نشان داده شده است.
هميشه مطالعه مستندات [30] ارزشمنداست! در اين حالت نشان ميدهد که رديف نخست صفحه گسترده، نام ويژگی را تعيين ميکند. برای استفاده از اين مبدل بايد بر Ok کليک شود. برای مورد مختلف لازم است بر choose کليک شود تا از ليست شکل 5 (ج) انتخاب انجام شود.
گزينه اول، Arffloader است و فقط به دليل ناموفق بودن به اين نقطه ميرسيم. CSVLoader پيش فرض است و در صورت نياز به فرض ديگر، choose کليک ميشود. سومين گزينه، مربوط به فرمت C4.5 است که دو فايل برای مجموعه داده وجود دارد يکی اسمها و ديگـری دادههای واقعـی ميباشد. چهارمين برای نمونههای سريالی [31] ، برای بازخوانی [32] مجموعه دادهای است که به صورت شيئ سريالی شده جاوا ذخيره شده است. هر شيء در جاوا ميتواند در اين شکل ذخيره و بازخوانی شود. به عنوان يک فرمت بومی جاوا [33] ، سريعتر از فايل ARFF خوانده ميشود چرا که فايل ARFF بايد تجزيه [34] و کنترل شود. وقتی يک مجموعه داده بزرگ مکررا بازخوانی ميشود، ذخيره آن در اين شکل سودمند است.
ويژگيهای ديگر ويرايشگر عمومی اشيا در شکل 5 (الف)، save و open است که به ترتيب برای ذخيره اشيای تنظيم شده و بازکردن شيئی که پيش از اين ذخيره شده است، به کار ميرود. اينها برای اين نوع خاص شيئ مفيد نيستند. لکن پانلهای ديگر ويرايشگر عمومی اشياء، خواص قابل ويرايش زيادی دارند. به دليل مشکلاتی که ممکن است حين تنظيم مجدد آنها رخ دهد، ميتوان ترکيب اشياء ايجاد شده را برای استفادههای بعدی، ذخيره کرد.
تنها منبع [35] مجموعههای داده برای Weka ، فايلهای موجود روی کامپيوتر نيستند. ميتوان يک URL را باز کرد تا Weka از پروتکل HTTP برای دانلود کردن يک فايل Arff از شبکه استفاده کند. همچنين ميتوان يک پايگاه دادهها را باز نمود ( open DB ـ هر پايگاه دادهای که درايور اتصال به مجموعه های داده به زبان جاوا JDBC را دارد.) و به وسيله دستور select زبان SQL ، نمونهها را بازيابی نمود. دادهها ميتوانند به کمک دگمه save به همه فرمتهای ذکر شده، ذخيره شوند. جدای از بحث بارگذاری و ذخيره مجموعههای داده، پانل preprocess به کاربر اجازه فيلتر کردن دادهها را ميدهد. فيلترها، اجزای مهم Weka هستند.
3. بکارگيری فيلترها
با کليک دگمه choose (گوشه بالا و سمت چپ) در شکل 3 ميتوان به ليستی از فيلترها دست يافت. ميتوان از فيلترها برای حذف ويژگيهای مورد نظری از يک مجموعه داده و انتخاب دستی ويژگيها استفاده نمود. مشابه اين نتيجه را ميتوان به کمک انتخاب ويژگيهای مورد نظر با تيک زدن آنها و فشار دادن کليه Remove به دست آورد.
4. الگوريتمهای يادگيری
زمانی که يک الگوريتم يادگيری با استفاده از دگمه choose در پانل classify انتخاب ميشود، نسخه خط فرمانی رده بند در سطری نزديک به دگمه ظاهر ميگردد. اين خط فرمان شامل پارامترهای الگوريتم است که با خط تيره مشخص ميشوند. برای تغيير آنها ميتوان روی آن خط کليک نمود تا ويرايشگر مناسب شيء، باز شود. جدول شکل 6، ليست اسامی رده بندهای Weka را نمايش ميدهد. اين الگوريتمها به رده بندهای Bayesian ، trees ، functions rules ، lazy و دسته نهايی شامل روشهای متفرقه تقسيم شدهاند.
4-1. Trees
Decision stump که برای استفاده توسط روشهای boosting طراحی شده است، برای مجموعههای داده عددی يا ردهای، درخت تصميمگيری يک سطحی ميسازد. اين الگوريتم، با مقادير از دست رفته، به صورت مقادير مجزا برخورد کرده و شاخه سومی از درخت توسعه ميدهد.
4-2. Rules
Decision Table يک رده بند بر اساس اکثريت جدول تصميمگيری ميسازد. اين الگوريتم، با استفاده از جستجوی اولين بهترين، زير دستههای ويژگيها را ارزيابی ميکند و ميتواند از اعتبارسنجی تقاطعی برای ارزيابی بهره ببرد (1995، Kohavi ).
يک امکان اين است که به جای استفاده از اکثريت جدول تصميمگيری که بر اساس دسته ويژگيهای مشابه عمل ميکند، از روش نزديکترين همسايه برای تعيين رده هر يک از نمونهها که توسط مدخل [36] جدول تصميمگيری پوشش داده نشدهاند، استفاده شود.
Conjunctive Rule قاعدهای را ياد ميگيرد که مقادير ردههای عددی را ردهای را پيشبينی ميکند. نمونههای آزمايشی به مقادير پيش فرض رده نمونههای آموزشی، منسوب ميشوند. سپس تقويت اطلاعات (برای ردههای رسمی)، يا کاهش واريانس (برای ردههای عددی) مربوط به هر والد محاسبه شده و به روش هرس کردن با خطای کاهش يافته [37] ، قواعد هرس ميشوند.
ZeroR برای ردههای اسمی، اکثريت دادههای مورد آزمايش و برای ردههای عددی، ميانگين آنها را پيشبينی ميکند. اين الگوريتم بسيار ساده است.
M5Rules ، به کمک M5 از روی درختهای مدل، قواعد رگرسيون استخراج ميکند.
http://pnu-club.com/imported/2011/03/516.jpg
شکل 6.الف. الگوريتمهای رده بندی در Weka
http://pnu-club.com/imported/2011/03/517.jpg
شکل 6.ب. الگوريتمهای رده بندی در Weka
در اين بخش به شرح مختصری برخی از اين الگوريتمها و پارامترهايشان که قابليت کار با ويژگی های عددی را دارند، پرداخته ميشود.
4-3. Functions
Simple Linear Regresion مدل رگرسيون خطی يک ويژگی مشخص را ياد ميگيرد. آنگاه مدل با کمترين خطای مربعات را انتخاب ميکند. در اين الگوريتم، مقادير از دست رفته و مقادير غيرعددی مجاز نيستند [38] .
Linear Regression رگرسيون خطی استاندارد کمترين خطای مربعات را انجام ميدهد ميتواند به طور اختياری به انتخاب ويژگی بپردازد، اين کار ميتواند به صورت حريصانه [39] با حذف عقب رونده [40] انجام شود، يا با ساختن يک مدل کامل از همه ويژگيها و حذف يکی يکی جملهها با ترتيب نزولی ضرايب استاندارد شده آنها، تا رسيدن به شرط توقف مطلوب انجام گيرد.
Least Med sq يک روش رگرسيون خطی مقاوم است که ميانه [41] (به جای ميانگين [42] ) مربعات انحراف از خط رگرسيون را کمينه ميکند. اين روش به طور مکرر رگرسيون خطی استاندارد را به زيرمجموعههايی از نمونهها اعمال ميکند و نتايجی را بيرون ميدهد که کمترين خطای مربع ميانه را دارند.
SMO teg الگوريتم بهينه سازی حداقل ترتيبی را روی مسايل رگرسيون اعمال ميکند. ( Scholkopf, 1998 ، Smola )
Pace Regression ، با استفاده از تکنيک رگرسيون pace ، مدلهای رگرسيون خطی توليد ميکند (2002 ، Wang و Witten ). رگرسيون pace ، زمانی که تعداد ويژگيها خيلی زياد است، به طور ويژهای در تعيين ويژگيهايی که بايد صرفنظر شوند، خوب عمل ميکند. در واقع در صورت وجود نظم و ترتيب خاصی، ثابت ميشود که با بينهايت شدن تعداد ويژگيها، الگوريتم بهينه عمل ميکند.
RBF Network ، يک شبکه با تابع پايهای گوسی شعاعی را پياده سازی ميکند. مراکز و عرضهای واحدهای مخفی به وسيله روش ميانگين K [43] تعيين ميشود. سپس خروجيهای فراهم شده از لايههای مخفی [44] ، با استفاده از رگرسيون منطقی در مورد ردههای اسمی و رگرسيون خطی در مورد ردههای عددی، با يکديگر ترکيب ميشوند. فعال سازيهای توابع پايه پيش از ورود به مدلهای خطی، با جمع شدن با عدد يک، نرماليزه ميشوند. در اين الگوريتم ميتوان، K تعداد خوشهها، بيشترين تعداد تکرارهای رگرسيونهای منطقی برای مسألههای ردههای رسمی، حداقل انحراف معيار خوشهها، و مقدار بيشينه رگرسيون را تعيين نمود. اگر ردهها رسمی باشد، ميانگين K به طور جداگانه به هر رده اعمال ميشود تا K خوشه مورد نظر برای هر رده استخراج گردد.
4-4. رده بندهای Lazy
ياديگرندههای lazy نمونههای آموزشی را ذخيره ميکنند و تا زمان رده بندی هيچ کار واقعی انجام نميدهند.
IB1 يک يادگيرنده ابتدايی بر پايه نمونه است که نزديکترين نمونههای آموزشی به نمونههای آزمايشی داده شده را از نظر فاصله اقليدسی پيدا کرده و نزديکترين ردهای مشابه رده همان نمونههای آموزشی را تخمين ميزند.
IBK يک رده بند با K همسايه نزديک است که معيار فاصله ذکر شده را استفاده ميکند. تعداد نزديکترين فاصلهها (پيش فرض 1= K ) ميتواند به طور صريح در ويرايشگر شيء تعيف شود. پيشبينيهای متعلق به پيش از يک همسايه ميتواند بر اساس فاصله آنها تا نمونههای آزمايشی، وزندار گردد.
دو فرمول متفاوت برای تبديل فاصله به وزن، پياده سازی شدهاند. تعداد نمونههای آموزشی که به وسيله رده بند نگهداری ميشود، ميتواند با تنظيم گزينه اندازه پنجره محدود گردد. زمانی که نمونههای جديد اضافه ميشوند، نمونههای قديمی حذف شده تا تعداد کل نمونههای آموزشی در اندازه تعيين شده باقی بماند.
Kstar ، يک روش نزديکترين همسايه است که از تابع فاصلهای عمومی شده بر اساس تبديلات استفاده ميکند.
LWL يک الگوريتم کلی برای يادگيری وزن دار شده به صورت محلی است. اين الگوريتم با استفاده از يک روش بر پايه نمونه، وزنها را نسبت ميدهد و از روی نمونههای وزندار شده، رده بند را ميسازد. رده بند در ويرايشگر شيء LWL انتخاب ميشود. Nave Bayes برای مسايل رده بندی و رگرسيون خطی برای مسايل رگرسيون، انتخابهای خوبی هستند. ميتوان در اين الگوريتم، تعداد همسايههای مورد استفاده را که پهنای باند هسته و شکل هسته مورد استفاده برای وزن دار کردن را (خطی، معکوس، يا گوسی) مشخص ميکند، تعيين نمود. نرمال سازی ويژگيها به طور پيش فرض فعال است[ Data Mining, witten et Al. 2005 ].