تیم برنامهنویسی پیاستور
هزینه سفارش:
۳۹۹,۰۰۰ تومان
تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.
محصول حاضر، یک پروژه آماده، تخصصی و کاملاً تستشده از پیادهسازی انتخاب ویژگی با الگوریتم کلونی مورچگان (Ant Colony Optimization – ACO) برای الگوریتم طبقهبند نایو بیز (Naive Bayes – NB) در محیط متلب (MATLAB) است. این مجموعه سورس کد اختصاصی، روشی هوشمند مبتنی بر هوش ازدحامی را پیاده کرده تا بهترین ویژگیها را از میان انبوه متغیرهای ورودی استخراج کرده و سپس با استفاده از طبقهبند احتمالی نایو بیز، خروجی را با بالاترین دقت اعتبارسنجی کند. اگر برای پروژههای دانشگاهی، پایاننامه، سمینار یا تحلیل دادههای تحقیقاتی خود به یک سورس کد روان، ساختاریافته و دارای قابلیت جایگزینی آسان دیتاست نیاز دارید، این بسته نیازهای شما را به صورت کامل پوشش میدهد.
در بسیاری از دیتاستهای دنیای واقعی (مانند دادههای پزشکی، ترافیک شبکه، بیوانفورماتیک، پردازش متن و امور مالی)، صدها یا هزاران ویژگی برای هر رکورد ثبت میشود. با این حال، تمام این متغیرها دارای ارزش اطلاعاتی یکسان نیستند. اعمال مستقیم تمام ویژگیها به الگوریتمهای یادگیری ماشین چالشهای زیر را به همراه دارد:
فرایند انتخاب ویژگی با حذف ابعاد غیرمفید، فضای ویژگی را فشرده کرده و زیرمجموعهای را تحویل میدهد که حاوی بیشترین اطلاعات تمایزدهنده با کمترین خطای ممکن است. این پروژه دقیقاً با همین رویکرد، ترکیب هوشمندانه الگوریتم فراابتکاری کلونی مورچه و طبقهبند سریع نایو بیز را به خدمت گرفته است.
الگوریتم بهینهسازی کلونی مورچگان یا Ant Colony Optimization (ACO) یکی از برجستهترین الگوریتمهای مبتنی بر هوش گروهی (Swarm Intelligence) است که توسط مارکو دوریگو معرفی شد. این الگوریتم با الهام از رفتار زیستی مورچههای واقعی در یافتن کوتاهترین مسیر میان آشیانه (Nest) و منبع غذا (Food Source) مدلسازی شده است.
مورچهها به عنوان موجوداتی بدون بینایی پیشرفته، از طریق ترشح مادهای شیمیایی به نام فرومون (Pheromone) در مسیر حرکت خود، با یکدیگر ارتباط برقرار میکنند. هنگامی که یک مورچه مسیری کوتاهتر به سمت غذا را طی میکند، سریعتر به آشیانه بازمیگردد؛ بنابراین در این مسیر، ردپای فرومون با نرخ بالاتری متراکم میشود. مورچههای بعدی هنگام رسیدن به دوراهیها، ترجیح میدهند مسیری را دنبال کنند که غلظت فرومون بیشتری دارد. با گذشت زمان و از طریق مکانیزم بازخورد مثبت (Positive Feedback) و تبخیر تدریجی فرومونهای راههای طولانی، کل جمعیت مورچگان بر روی کوتاهترین و بهینهترین مسیر متمرکز میشوند.
مسئله انتخاب ویژگی در حقیقت یک مسئله بهینهسازی ترکیبیاتی (Combinatorial Optimization) با فضای جستوجوی گسسته و دودویی است. اگر nnn ویژگی در دیتاست وجود داشته باشد، 2n2^n2n زیرمجموعه مختلف از ویژگیها قابل تشکیل است. برای دیتاستهایی با ابعاد بالا، جستوجوی جامع (Exhaustive Search) ناممکن است.
در پیادهسازی متلب این پروژه:
ممکن است این حدس زده شود که احتمال برای مورچهای که مسیر درست را میپیماید برابر با همان احتمالی میباشد که مسیر اشتباه را انتخاب کند. نکته در اینجا اینست که مورچهای که کوتاهترین مسیر را میپیماید، اولین مورچهای است که به نقطه مقصد رسیده و سپس به اشیانه ( نقطه مبدا حرکت) بر میگردد، بنابراین در این کوتاهترین مسیر فرمونهای بیشتری وجود دارد. از این رو فرمون دقیقا همان چیزی است که نشان میدهد که مورچه باید از چه مسیری برود و در پایان کوتاهترین راه، بهترین مسیر میباشد.
الگوریتم نیو بیزین naive bayesian یک الگوریتم یادگیری ساده است که از قاعده بیز به همراه فرض محکمی که صفات با توجه به کلاس از نظر شرطی مستقل هستند، استفاده میکند. اگرچه این فرض استقلال در عمل اغلب نقض میشود، با این وجود، اغلب الگوریتم نیو بیزین naive bayesian صحت دستهبندی قابل رقابتی ارائه میکند. این ویژگی به همراه کارایی محاسباتی و ویژگیهای مطلوب بسیار دیگری، سبب شده naive bayesians در عمل به صورت گسترده مورد استفاده قرار بگیرد.
الگوریتم نیو بیزین naive bayesian مکانیزمی برای استفاده از اطلاعات دادههای نمونه برای تخمین احتمال موخر P(y|x) هر کلاس y با توجه به شی x فراهم میکند. هنگامی که چنین تخمینهایی داشته باشیم، میتوانیم از آنها برای دستهبندی یا دیگر کاربردهای پشتیبان تصمیم استفاده کنیم.
برخی از ویژگیهای مطلوب بسیار الگوریتم نیو بیزین naive bayesian موارد زیر است:
برای انتخاب ویژگی با ACO برای NB بهصورت جزئی میتوان گفت ابتدا یک بردار ویژگی دودویی با طول n (به تعداد پارامترهای ورودی) از F1 تا Fn بهصورت تصادفی تولید میشود هرکدام از این بیتهای این رشتهی دودویی متناظر با یک ویژگی در ماتریس آموزش است. اگر بیت متناظر با هر ویژگی صفر باشد آن ویژگی حذفشده و اگر یک باشد آن ویژگی در آموزش دخالت داده میشود پس از اجرای یک دور از الگوریتم کلونی مورچه با ویژگی تصادفی مقدار برازندگی برای هر بردار ویژگی دودویی تولید میشود.
برازندگی نیز مقدار خطای آموزش و تعداد ویژگیها است که میخواهیم در هر دور کمینه شود بر این اساس هر بار یک دسته جدید از ویژگیهای انتخاب میشود و رفتهرفته به سمت کمترین خطای آموزشی در الگوریتم میرویم بهترین دسته انتخابشده نهایی میشود و همان هدف یعنی انتخاب ویژگیهای بهتر آشکار میشود.
الگوریتم ACO یک روش جستجوی تصادفی است که به کلاس الگوریتمهای مبتنی بر جمعیت تعلق دارد. این تکنیک از تشابه میان شیوه جستجوی غذای مورچهها در طبیعت و شیوه جستجوی بهینه مسئله بهینهسازی ترکیبی توسط الگوریتمهای بهینهسازی استفاده مینماید.
سورس کد این محصول به گونهای سازماندهی شده که کارهای پیچیده پیشپردازش، تقسیم تصادفی داده، اجرای بهینهسازی ACO و تست نهایی طبقهبند به شکلی خوانا و ماژولار انجام پذیرد. قطعه کد هسته اجرای برنامه همراه با انتخاب ویژگی به شرح زیر است:
clc, clear, close all
global trn_Inputs tst_Inputs trn_Outputs tst_Outputs
addpath(genpath('ACO'))
load Dataset
Inputs = Dataset(:,1:end-1)';
Output = Dataset(:,end)';
Output(Output==2) = 0;
Output(Output==4) = 1;
% sakhtan e dade haye amoozesh va test
[trn_Inputs,valP,tst_Inputs,trainInd,valInd,testInd] = dividerand(Inputs,0.6,0,0.4);
[trn_Outputs,valT,tst_Outputs] = divideind(Output,trainInd,valInd,testInd);
dim = size( Dataset , 2) - 1;
%aco(MaxIteretion,nAnt,dim)
bestParams = aco(20,20,dim);
bestParams = round( bestParams );
selectedFeatures = find( bestParams == 1 );
disp('Selected Features: ')
disp(num2str(selectedFeatures'))
%% Test the results
usedFeatures = trn_Inputs(selectedFeatures, :);
% amade kardan e shabake
nb = NaiveBayes.fit(usedFeatures', trn_Outputs');
y_hat_tst=nb.predict(tst_Inputs(selectedFeatures, :)');
clc, clear و close all حافظه و نمودارهای قبلی را پاک کرده و global متغیرهای آموزشی و آزمایشی را برای دسترسی توابع داخلی ACO به صورت سراسری تعریف میکند.Dataset.mat در حافظه لود میشود. ستون آخر به عنوان برچسب کلاس و ستونهای قبلی به عنوان ویژگیها تفکیک میشوند. در صورت دودویی بودن کلاسها (مانند برچسبهای ۲ و ۴)، نگاشت به صفر و یک انجام میگیرد تا استاندارد طبقهبندی رعایت شود.dividerand:دادهها با نسبت استاندارد ۶۰ درصد آموزش و ۴۰ درصد آزمون به صورت کاملاً تصادفی تقسیم میشوند تا از اعتبارسنجی منصفانه و عدم سوگیری اطمینان حاصل شود.dim مشخص شده و الگوریتم با تابع aco(20, 20, dim) با تنظیم ۲۰ تکرار و ۲۰ مورچه به جستوجوی فضای ویژگی میپردازد.find(bestParams == 1)، شماره دقیق ویژگیهای بهینهای که الگوریتم برگزیده است در خروجی نمایش داده میشود.usedFeatures) به عنوان ورودی تابع NaiveBayes.fit جهت آموزش مدل استفاده شده و سپس پیشبینی دادههای تست با nb.predict بر روی همان ویژگیهای کاهشیافته انجام میگیرد.
این پکیج شامل ۷ فایل کامل و ساختاریافته متلب است که تمامی نیازهای اجرایی، مقایسهای و تحلیلی شما را فراهم میکند:
Dataset.mat: فایل داده استاندارد شامل ماتریس ویژگیها و برچسبهای هدف به صورت پیشفرض برای اجرای مستقیم بدون نیاز به تنظیمات جانبی.NB.m: اسکریپت اجرای الگوریتم نایو بیز بر روی کل ویژگیها بدون انتخاب ویژگی؛ این اسکریپت برای مقایسه مستقیم نرخ دقت و زمان اجرای مدل در حالت قبل از بهینهسازی طراحی شده است.NB_with_selection_ACO.m: اسکریپت اصلی و کامل ترکیب الگوریتم کلونی مورچگان با نایو بیز برای استخراج بهینه ویژگیها و ارزیابی خروجی..mat با متغیرهای ورودی و خروجی قرار دهید تا کد برای دادههای شما نیز به طور خودکار اجرا شود.NB.m و NB_with_selection_ACO.m میتوانید کاهش ابعاد و بهبود دقت را به صورت مستند در مقالات یا پروژههای دانشگاهی گزارش کنید.برای اجرای بدون نقص پروژه مراحل زیر را طی کنید:
NB.m را باز کرده و دکمه Run را بزنید.NB_with_selection_ACO.m را باز کرده و دکمه Run را انتخاب کنید.توسعه و کدنویسی الگوریتم بهینهسازی کلونی مورچگان از پایه در کنار اتصال ماتریسهای تصادفی به یک طبقهبند یادگیری ماشین مانند نایو بیز، نیازمند روزها صرف زمان، دیباگ خطاهای ماتریسی و اعتبارسنجی الگوریتمی است. تهیه این پروژه آماده، راه میانبر، مطمئن و استاندارد شما برای دستیابی به یک شبیهسازی دقیق و حرفهای است.
تمامی کدهای این بسته به صورت کاملاً باز و قابل ویرایش در اختیار شما قرار میگیرد تا بتوانید پارامترهایی چون تعداد مورچهها، تکرارها، درصد دادههای آموزش و تست و دیتاست ورودی را بر اساس نیاز پژوهشی خود شخصیسازی کنید.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
اطلاعات و جزئیات کامل این محصول
جهت تسلط عمیقتر و تکمیل مهارتهای خود، یادگیری این سرفصلها پیشنهاد میشود.
هزینه سفارش:
۳۹۹,۰۰۰ تومان
دیدگاهها و نظرات
علیرضا ساقی
ممنون از فایل خوبتون من همین کار رو با الگوریتم ژنتیک و ازدحام ذرات هم می خوام.
مدیریت و پشتیبانی
سلام ممنون با آیدی تلگرام ما هماهنگ کنید تا توضیحات لازم رو بدیم