<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های mastane hayati</title><link>https://virgool.ir/feed/@mastanehayati72</link><description></description><language>fa</language><pubDate>2026-11-11 09:53:03</pubDate><image><url>https://files.virgool.ir/upload/users/1331967/avatar/avatar.png</url><title>mastane hayati</title><link>https://virgool.ir/@mastanehayati72</link></image><item><title>Bias-Variance</title><link>https://virgool.ir/@mastanehayati72/bias-variance-grv8hkiejnw6</link><description>بایاس، خطای تقریب یک پدیده‌ی پیچیده با یک مدل ساده‌ست. برای مثال، فرض کنید مدل ما یک ساده‌سازی انجام داده و هروقت هوای شهر ابری باشه، وضعیت هوای فردا رو بارانی اعلام میکنه؛ اما واقعیت پیچیده‌تر از اینه و ممکنه هوا ابری باشه و به دلایل مختلف باران نباره (اما چون کم این اتفاق میفته، مدل این حالات رو نادیده میگیره). در این حالت میگیم مدل‌مون بایاس داره.زماني كه باياس داشته باشيم underfit اتفاق ميافته. Underfit شدن نیز زمانی رخ می دهد که الگوریتم یک مدلِ خیلی کلی از مجموعه آموزشی به دست می‌آورد. یعنی حتی اگر خودِ داده‌های مجموعه‌ی آموزشی را نیز به این الگوریتم بدهیم، این الگوریتم خطایی قابل توجه خواهد داشتواریانس نمایان‌گر این هست که با تغییرات کوچک در داده، چه مقدار پیش‌بینی‌های مدل‌مون تغییر میکنه. فرض کنید در داده‌هامون به جای این‌که روز ۱۳ام ماه «بارانی» ثبت شده باشه، به اشتباه «آفتابی» ثبت بشه (بر اثر خطای انسانی! )در این صورت اگه واریانس مدل‌مون کم باشه انتظار داریم این خطای کوچک در داده‌ها، به پیش‌بینی‌مون لطمه نزنه.زماني كه واريانس داشته باشيم over fit اتفاق ميافته. وقتی درباره Overfitting  صحبت میکنیم صحبت از بالا رفتن یادگیری مدل بر روی داده های آموزشی میکنیم .به عبارتی الگوریتم مورد استفاده مدل ما بدلیل یاد گرفتن یکایک نمونه های آموزشی تبدیل به یک مدل پیچیده شده تا جایی که اگر یک نمونه جدید تست به این مدل داده شود خطای بالایی را تولید خواهد کردفرض کنید شما برای یک آزمون در حال درس خواندن هستید. استاد هم به شما 50عدد نمونه سوال داده است تا با استفاده از آن‌ها بتوانید خود را برای امتحان آماده کنید. اگر شما طوری مطالعه کنید که فقط این 50نمونه سوال را کامل بلد باشید و هر سوالِ دیگری که کمی از این 50 سوال فاصله داشته باشد، اشتباه جواب دهید، یعنی ذهنِ شما بر روی سوالاتِ آموزشی که استاد برای یادگیری داده است Overfit یا بیش‌برازش شده است.حال اگر تمامی سوالات را به صورت مفهومی بلد باشید ولی هیچ کدام از سوالات را به صورتِ دقیق بلد نباشید، حتی اگر دقیقاً همان سوال‌ها هم در جلسه امتحان به شما داده شود، باز هم نمی‌توانید به درستی و با دقت پاسخ آن ها را بدهید، البته شاید بتوانید یک پاسخ نصفه و نیمه از سوالات بنویسید. اینجا ذهن شما Underfit شده است. این در حالی است که سوالات دیگری که نزدیک به این سوالات هستند را هم شاید بتوانید نصفه و نیمه پاسخ دهید</description><category>mastane hayati</category><author>mastane hayati</author><pubDate>Thu, 06 Jan 2022 11:33:03 +0330</pubDate></item><item><title>cross validation</title><link>https://virgool.ir/@mastanehayati72/cross-validation-iuqns3ubil1r</link><description>اعتبار سنجی متقابل در یادگیری ماشینی : چگونه آن را به درستی انجام دهیمدر یادگیری ماشینی واژه تعمیم, به توانایی یک الگوریتم برای مؤثر بودن در ورودی های مختلف اشاره دارد. به این معناست که مدل یادگیری ماشین با کاهش عملکرد در ورودی های جدید از توزیع یکسان داده های آموزشی مواجه نمی شود. برای انسان واژه تعمیم یه چیز طبیعی است. مثلا ما می توانیم در پرواز طبقه بندی کنیم. یا اینکه، ما قطعاً یک سگ را می شناسیم حتی اگر هیچوقت این نژاد را ندیده باشیم. ممکن است این برای یک مدل یادگیری ماشین یک چالش باشد. به همین دلیل است که بررسی توانایی الگوریتم برای تعمیم یک کار مهم است که در ساخت مدل نیاز به توجه زیادی دارد.برای این کار از اعتبار سنجی استفاده میکنیم.در این مقاله این موارد را بررسی میکنیم:اعتبار متقابل چیست, تعریف, هدف استفاده و تکنیک ها تکنیک‌های مختلف اعتبارسنجی : hold-out ،  k-folds،  Leave-one-out، Leave-p-out،k-fold طبقه‌بندی شده، k-fold مکرر k-folds ,  اعتبارسنجی تودرتو، کاملنحوه استفاده از این تکنیک ها:  sklearn(اسکلره کردن)اعتبار سنجی متقابل در یادگیری ماشینی: sklearn، CatBoostاعتبار سنجی متقابل در یادگیری عمیق: Keras، Pytorch، M xNetبهترین شیوه ها و نکات: سری های زمانی، داده های پزشکی و مالی، تصاویراعتبار سنجی چیست؟ اعتبار سنجی متقابل تکنیکی است برای ارزیابی یک مدل یادگیری ماشین و آزمایش عملکرد آن .اعتبارسنجی معمولاً در کارهای کاربردی یادگیری ماشین استفاده می شود. این روش به مقایسه و انتخاب یک مدل مناسب برای مسئله مدل‌سازی پیش‌بینی‌کننده خاص کمک می‌کند. درک مدل اعتبارسنجی و پیاده‌سازی آن آسان است و نسبت به سایر روش‌های مورد استفاده برای شمارش امتیازهای کارایی مدل، سوگیری کمتری دارد. همه اینها اعتبارسنجی متقابل را به ابزاری قدرتمند برای انتخاب بهترین مدل برای کار خاص تبدیل می کند.  تکنیک های مختلفی وجود دارد که ممکن است برای اعتبارسنجی متقابل یک مدل استفاده شود. با این حال، همه آنها از یک الگوریتم مشابه استفاده می کنند : در این روش مجموعه داده را به دو بخش تقسیم کنید :  یکی برای آموزش، دیگری برای آزمایش  مدل را روی مجموعه آموزشی آموزش دهید اعتبار مدل را در مجموعه آزمایشی تأیید کنید.این سه مرحله را چند بار تکرار کنید. این عدد به روش رزومه ای که استفاده می کنید بستگی دارد. همانطور که می دانید، تکنیک های اعتبارسنجی متقابل زیادی وجود دارد. برخی از آنها معمولا استفاده می شوند، برخی دیگر فقط در تئوری کار می کنند. در اینجا میخواهیم روش‌های اعتبارسنجی متقاطع را که در این مقاله در مورد آن صحبت میشود، ببینیم: نگه داشتن .  K دسته ,  کنارگذاشتن , ترک کردن , k دسته طبقه بندی شده , K دسته مکرر ,  K دسته تودرتو ,کامل . نگه داشتن : این نوع اعتبار سنجی متقابل ساده ترین و رایج ترین تکنیک است. این روش یک نگهدارنده است اما مطمئناً هر روز از آن استفاده می کنید.الگوریتم این تکنیک به صورت زیر است: مجموعه داده را به دو بخش تقسیم کنید: مجموعه آموزشی و مجموعه تست. معمولاً 80 درصد مجموعه داده به مجموعه آموزشی و 20 درصد به مجموعه آزمایشی می‌رود، اما می‌توانید هر تقسیم‌بندی را انتخاب کنید که مناسب‌تر باشد. مدل را روی مجموعه آموزشی آموزش دهید.در مجموعه آزمایشی اعتبار سنجی کنید نتیجه اعتبارسنجی را ذخیره کنید. ما معمولاً از روش نگهدارنده در مجموعه داده‌های بزرگ استفاده می‌کنیم زیرا فقط یک بار نیاز به آموزش مدل دارد.?اجرای نگهدارنده واقعاً آسان است. می‌توانید این کار را با استفاده از کد sklearn.model_selection.train_test_split  انجام دهید این کار داده ها را به دوقسمت آموزشی و آزمایشی تقسیم میکند.import numpy as npfrom sklearn.model_selection import train_test_splitX, y = np.arange(10).reshape((5, 2)), range(5)X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.2 , random_state=111)با این حال، نگه داشتن یک نقطه ضعف بزرگ دارد.به عنوان مثال، اگر مجموعه داده ای از نظر توزیع کاملاً یکنواخت نیست ممکن است پس از تقسیم در یک نقطه ناهموار قرار بگیریم. به عنوان مثال، مجموعه آموزشی مجموعه تست را نشان نخواهد داد. هر دو مجموعه تمرین و تست ممکن است بسیار متفاوت باشند، یکی از آنها ممکن است آسان تر یا سخت تر باشد.علاوه بر این، این واقعیت که ما مدل خود را فقط یک بار آزمایش می کنیم ممکن است یک گلوگاه برای این روش باشد. با توجه به دلایلی که قبلا ذکر شد، نتیجه به دست آمده با تکنیک نگه داشتن ممکن است نادرست در نظر گرفته شود.اعتبار سنجی k  دسته : تعدادی دسته را انتخاب کنید.معمولاً  5 یا 10 دسته ، اما می‌توانید هرعددی را انتخاب کنید که کمتر از طول مجموعه داده باشد. مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید (به آنها دسته گفته می شود . k-1   دسته را انتخاب کنید که مجموعه آموزشی خواهد بود. تای باقیمانده مجموعه آزمایشی خواهد بودمدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار اعتبارسنجی متقاطع، باید یک مدل جدید مستقل از مدل آموزش داده شده در تکرار قبلی آموزش دهید.در مجموعه آزمایشی اعتبار سنجی کنید. نتیجه اعتبارسنجی را ذخیره کنیداین مراحل هزار بار تکرار کنید. هر بار از دسته باقی مانده به عنوان مجموعه تست استفاده کنید. در پایان، شما باید مدل را روی هر دسته که دارید اعتبارسنجی کرده باشید. برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله اخر  به دست آوردیدبرای انجام اعتبارسنجی متقاطع k دسته می توانید از دستور sklearn.model_selection.KFold استفاده کنید.import numpy as npfrom sklearn.model_selection import KFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([1, 2, 3, 4])kf = KFold(n_splits=2)for train_index, test_index in kf.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]بهتر است همیشه به جای تکنیک نگه داشتن از تکنیک k دسته استفاده کنید. از آنجایی که آموزش و آزمایش بر روی چندین بخش مختلف مجموعه داده انجام می شود، به صورت مو به مو، مقایسه k  دسته نتیجه پایدارتر و قابل اعتمادتری به دست می دهد. اگر تعداد k ها را افزایش دهیم تا مدل را روی بسیاری از زیر مجموعه‌های مختلف آزمایش کنیم، می‌توانیم امتیاز کلی را قوی‌تر کنیم. با این حال، روش k دسته یک نقطه ضعف دارد. افزایش k منجر به آموزش مدل های بیشتر می شود و فرآیند آموزش ممکن است واقعاً گران و زمان بر باشد. تکنیکLeave-one-out  : اعتبار سنجی متقابل یک مورد قوی تر  از اعتبارسنجی متقاطع است. تصور کنید که k برابر با n باشد که n تعداد نمونه های مجموعه داده است. چنین موردی معادل تکنیک Leave-one-out است.  الگوریتم تکنیک اعتبارسنجی متقابل : یک نمونه از مجموعه داده را انتخاب کنید که مجموعه آزمایشی خواهد بود . n – 1 نمونه باقیمانده مجموعه آموزشی خواهد بود مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود در مجموعه آزمایشی اعتبار سنجی کنید . نتیجه اعتبارسنجی را ذخیره کنید .این مراحل را n بار تکرار کنید، به این ترتیب برای n نمونه، n مجموعه آموزشی و تست متفاوت داریم. برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله آخر به دست آوردید. اعتبارسنجی  sklearn دارای یک روش داخلی است. می توان آن را در کتابخانه  model_selection - sklearn.model_selection.LeaveOneOut پیدا کرد.import numpy as npfrom sklearn.model_selection import LeaveOneOutX = np.array([[1, 2], [3, 4]])y = np.array([1, 2])loo = LeaveOneOut()for train_index, test_index in loo.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]بزرگترین مزیت اعتبارسنجی متقابل این است که داده های زیادی را هدر نمی دهد. ما فقط از یک نمونه از کل مجموعه داده به عنوان یک مجموعه آزمایشی استفاده می کنیم، در حالی که بقیه مجموعه آموزشی است. اما وقتی با اعتبارسنجی k دسته مقایسه می‌شود، اعتبارسنجی متقابل نیاز به ساخت n مدل به جای k مدل دارد، وقتی می‌دانیم که n که مخفف تعداد نمونه‌های مجموعه داده است بسیار بیشتر از k است. این بدان معناست که اعتبارسنجی متقابل از نظر محاسباتی گرانتر از kدسته است، ممکن است زمان زیادی برای اعتبارسنجی متقابل مدل با استفاده از اعتبارسنجی متقابل نیاز باشد.بنابراین،یک قاعده کلی بر اساس شواهد تجربی و تحقیقات مختلف دارد که نشان می‌دهد اعتبارسنجی متقاطع 5 یا 10 برابر باید بر اعتبارسنجی متقابل ترجیح داده شود.اعتبار سنجی متقاطع ترک p  : اعتبار سنجی متقاطع ترک p شبیه به ترک یک خروجی اعتبارسنجی است زیرا تمام مجموعه های آموزشی و آزمایشی ممکن را با استفاده از نمونه های p به عنوان مجموعه آزمایشی ایجاد می کند. تمام موارد ذکر شده در مورد اعتبارسنجی متقابل و برای اعتبارسنجی متقاطع ترک p درست است. با این حال، بر خلاف اعتبارسنجی متقابل و مجموعه‌های تستk دسته برای اعتبار سنجی متقاطع ترک p , اگر p بالاتر از 1 باشد، همپوشانی دارند. الگوریتم این تکنیک به صورت زیر است : نمونه های p را از مجموعه داده انتخاب کنید که مجموعه آزمایشی خواهد بود n-p نمونه باقیمانده مجموعه آموزشی خواهد بود . مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود .در مجموعه آزمایشی اعتبار سنجی کنید نتیجه اعتبارسنجی را ذخیره کنید . این مراحل را n بار را تکرار کنید . برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله آخر است را به دست آوردید.میتوانید اعتبارسنجی ترک p را با استفاده از دستور sklearn – sklearn.model_selection.LeavePOut. به دست آوریدimport numpy as npfrom sklearn.model_selection import LeavePOutX = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])y = np.array([1, 2, 3, 4])lpo = LeavePOut(2)for train_index, test_index in lpo.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]اعتبار سنجی متقاطع ترک pتمام معایب اعتبارسنجی متقابل را دارد اما با این وجود به اندازه اعتبارسنجی متقابل قوی است .طبقه بندی k دسته : گاهی اوقات ممکن است با عدم تعادل زیادی در مقدار هدف در مجموعه داده مواجه شویم. به عنوان مثال، در مجموعه داده‌های مربوط به قیمت ساعت‌های مچی، ممکن است تعداد بیشتری از ساعت‌های مچی قیمت بالایی داشته باشند. در مورد طبقه‌بندی، در مجموعه داده‌های گربه‌ها و سگ‌ها ممکن است تغییر زیادی به سمت طبقه سگ وجود داشته باشد.روش k دسته  طبقه بندی شده نوعی از تکنیک استاندارد اعتبارسنجی k دسته است که به گونه ای طراحی شده است که در چنین مواردی از عدم تعادل هدف موثر باشدk دسته  طبقه بندی شده مجموعه داده را روی k تقسیم می کند به طوری که هر دسته تقریباً دارای درصد مشابهی از نمونه های هر کلاس هدف به عنوان مجموعه کامل است. در مورد رگرسیون، طبقه بندی k دسته اطمینان حاصل می کند که میانگین مقدار هدف تقریباً در همه دسته ها برابر است. الگوریتم این تکنیک به صورت زیر است :K دسته را انتخاب کنید . مجموعه داده را به k برابر تقسیم کنید. هر دسته باید تقریباً دارای درصد مشابهی از نمونه‌های هر کلاس هدف در مجموعه کامل باشد .k-1 دسته را انتخاب کنید که مجموعه آموزشی خواهد بود. تای باقیمانده مجموعه آزمایشی خواهد بود. مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار یک مدل جدید باید آموزش داده شود.در مجموعه آزمایشی اعتبار سنجی کنید .نتیجه اعتبارسنجی را ذخیره کنید این مراحل را هزار بار تکرار کنید. هر بار از دسته باقی مانده به عنوان مجموعه تست استفاده کنید. در پایان، شما باید مدل را روی هر دسته که دارید اعتبارسنجی کرده باشید.برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحلهآخر را به دست آوردید. الگوریتم تکنیک طبقه بندی k دسته مشابه kدسته استاندارد است. شما نیازی به  کدنویسی اضافی ندارید زیرا این روش همه کارهای لازم را برای شما انجام می دهد.این تکنیک یک روش داخلی در sklearn دارد sklearn.model_selection.StratifiedKFoldimport numpy as npfrom sklearn.model_selection import StratifiedKFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([0, 0, 1, 1])skf = StratifiedKFold(n_splits=2)for train_index, test_index in skf.split(X, y):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]تمام موارد ذکر شده در بالا در مورد اعتبارسنجی k دسته برای تکنیک طبقه بندی k دسته نیز صادق است. هنگام انتخاب بین روش های مختلف اعتبارسنجی، مطمئن شوید که از روش مناسب استفاده می کنید. به عنوان مثال، ممکن است فکر کنید که مدل شما عملکرد بدی دارد، صرفاً به این دلیل که از اعتبارسنجی k دسته برای اعتبارسنجی مدلی استفاده می‌کنید که بر روی مجموعه داده با عدم تعادل کلاس آموزش داده شده است. برای جلوگیری از آن، همیشه باید یک تجزیه و تحلیل داده های اکتشافی مناسب روی داده های خود انجام دهید.اعتبارسنجی متقابل kدسته مکرر : اعتبارسنجی متقابل k دسته مکرر یا اعتبارسنجی نمونه‌برداری تصادفی فرعی مکرر احتمالاً قوی‌ترین تکنیک از تمام تکنیک‌های اعتبارسنجی در این مقاله است. این یک تغییر از k دسته است اما در مورد k دسته های تکراری k تعداد تاها نیست. تعداد دفعاتی است که ما مدل را آموزش خواهیم داد. ایده کلی این است که در هر تکرار، نمونه‌هایی را به‌طور تصادفی از سرتاسر مجموعه داده به عنوان مجموعه آزمایشی انتخاب می‌کنیم. به عنوان مثال، اگر تصمیم بگیریم که 20٪ از مجموعه داده ها مجموعه آزمایشی ما باشد، 20٪ نمونه به طور تصادفی انتخاب می شوند و 80٪ بقیه به مجموعه آموزشی تبدیل می شوند. تکنیک این الگوریتم به صورت زیر است: k را انتخاب کنید - چند بار مدل آموزش داده می شودتعدادی نمونه را انتخاب کنید که مجموعه آزمایشی خواهد بود . مجموعه داده را تقسیم کنیدروی مجموعه آموزشی تمرین کنید. در هر تکرار اعتبارسنجی متقاطع، یک مدل جدید باید آموزش داده شود در مجموعه آزمایشی اعتبار سنجی کنید نتیجه اعتبارسنجی را ذخیره کنید این مراحل را هزار بار تکرار کنید برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله آخر به دست آوردید است. K دسته مکرر مزایای واضحی نسبت به استاندارد اعتبارسنجی k دسته دارد. اولا، نسبت تقسیم آموزش / آزمایش به تعداد تکرارها بستگی ندارد. ثانیا، ما حتی می توانیم نسبت های منحصر به فردی را برای هر تکرار تنظیم کنیم. ثالثاً، انتخاب تصادفی نمونه‌ها از مجموعه داده‌ها، K دسته مکرر را برای سوگیری انتخاب قوی‌تر می‌کند با این حال، برخی از معایب وجود دارد. اعتبارسنجی k دسته تضمین می‌کند که مدل روی همه نمونه‌ها آزمایش می‌شود، در حالی که K دسته تکراری بر اساس تصادفی‌سازی است به این معنی است که برخی از نمونه‌ها ممکن است هرگز برای قرار گرفتن در مجموعه آزمایش انتخاب نشوند. در همان زمان، برخی از نمونه ها ممکن است چندین بار انتخاب شوند.Sklearn به شما در پیاده سازی اعتبارسنجی K دسته مکرر کمک می کند. فقط از sklearn.model_selection.RepeatedKFold استفاده کنید. در اجرای sklearn این تکنیک باید تعداد دسته هایی که می خواهید داشته باشید  و تعداد دفعاتی که تقسیم انجام می شود را تنظیم کنید. این تضمین می کند که در هر تکرار دسته های مختلفی خواهید داشت.import numpy as npfrom sklearn.model_selection import RepeatedKFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([0, 0, 1, 1])rkf = RepeatedKFold(n_splits=2, n_repeats=2, random_state=42)for train_index, test_index in rkf.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]k دسته تو در تو : برخلاف سایر تکنیک‌های اعتبارسنجی، که برای ارزیابی کیفیت یک الگوریتم طراحی شده‌اند،اعتبار سنجی k دسته تو در تو محبوب‌ترین راه برای تنظیم پارامترهای یک الگوریتم است. تصور کنید که ما یک پارامتر p داریم که معمولاً به الگوریتم پایه ای که ما در حال تایید متقابل آن هستیم بستگی دارد. به عنوان مثال، برای رگرسیون لجستیک، ممکن است پارامتر جریمه باشد که برای تعیین هنجار مورد استفاده در جریمه استفاده می شود.الگوریتم این تکنیک به صورت زیر است: k را انتخاب کنید - تعدادی دسته، مثلا 10 تا , فرض کنیم که این عدد را انتخاب کرده ایم  یک پارامتر p را انتخاب کنید. فرض کنید الگوریتم ما رگرسیون لجستیک است و p پارامتر جریمه p = {&#39;l1&#39;, &#39;l2&#39;, &#39;elasticnet&#39;, &#39;none&#39;} است. مجموعه داده را به 10 تا تقسیم کنید و یکی از آنها را برای آزمایش رزرو کنید یکی از kهای آموزشی را برای اعتبار سنجی رزرو کنید برای هر مقدار p، 8 کای آموزشی باقیمانده را آموزش دهید و روی دسته اعتبارسنجی ارزیابی کنید. اکنون 4 اندازه گیری داریداین مراحل را 9 بار تکرار کنید. بچرخانید که کدام دسته آموزشی، دسته اعتبارسنجی است. اکنون اندازه گیری       9 * 4 دارید, p را انتخاب کنید که میانگین خطای تمرین را بیش از 9 برابر به حداقل برساند. از آن p برای ارزیابی روی مجموعه تست استفاده کنید این مرحله را10 بار تکرار کنید و از هر k به نوبت به عنوان تk تست استفاده کنید میانگین و انحراف معیار اندازه گیری ارزیابی را در 10 برابر تست ذخیره کنید. الگوریتمی که بهترین عملکرد را داشت، الگوریتمی بود که بهترین میانگین عملکرد خارج از نمونه را در 10 لایه آزمایشی داشت. این تکنیک از نظر محاسباتی گران است زیرا در طول این مراحل  تعداد زیادی مدل باید آموزش و ارزیابی شوند. با این حال، اعتبارسنجی k دسته تو در تو معمولا استفاده می شود و ممکن است در چندین کار یادگیری ماشین واقعاً مؤثر باشد. متأسفانه، هیچ روش داخلی در sklearn وجود ندارد که بتواند اعتبارسنجی k دسته تو در تو را برای شما انجام دهد. این لحظه ای است که شما باید یا ازگوگل استفاده کنید و پیاده سازی شخصی را پیدا کنید یا خودتان آن را کدنویسی کنید.اعتبار متقاطع کامل : اعتبارسنجی کامل کم استفاده ترین تکنیک اعتبارسنجی است. ایده کلی این است که ما یک عدد k -  طول مجموعه آموزشی را انتخاب می کنیم و روی هر تقسیم ممکن حاوی k نمونه در مجموعه آموزشی اعتبار سنجی می کنیم.مقدار آن تقسیم‌ها را می‌توان به صورت cnk محاسبه کرد که n طول مجموعه داده است. اگر k بالاتر از 2 باشد، باید مدل خود را چندین بار آموزش دهیم که همانطور که قبلاً متوجه شدیم یک زمان فرآیند گران قیمت و از نظر محاسباتی است. به همین دلیل است که اعتبارسنجی کامل یا در تحقیقات نظری و یا در صورت وجود فرمول موثری که  به حداقل رساندن محاسبات کمک می کند، استفاده می شود. الگوریتم اعتبار سنجی متقاطع کامل  به صورت زیر است :یک عدد k را انتخاب کنید - طول مجموعه آموزشی , مجموعه داده را تقسیم کنید , روی مجموعه آموزشی تمرین کنید , در مجموعه آزمایشی اعتبار سنجی کنید , نتیجه اعتبارسنجی را ذخیره کنیداین مراحل را  cnk بار تکرار کنید , برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در این مرحله به دست آوردید است.اعتبار سنجی متقابل در یادگیری ماشینی : بیشتر تکنیک های اعتبار سنجی متقابل ذکر شده در بالا به طور گسترده در یادگیری ماشینی استفاده می شود. مهم است که به خاطر داشته باشید که استفاده از تکنیک اعتبار سنجی مناسب ممکن است در زمان شما صرفه جویی کند و به انتخاب بهترین مدل برای کار کمک کند. این بدان معناست که اولاً بهتر است همیشه مدل را تأیید متقابل کنید و ثانیاً باید یک روش اعتبار سنجی مربوطه را انتخاب کنید. بنابراین، دانستن مزایا و معایب تکنیک‌های اعتبارسنجی متقابل حیاتی است. شایان ذکر است که اگر می‌خواهید مدل را اعتبار متقابل کنید، همیشه باید دفترچه راهنمای مدل را بررسی کنید زیرا برخی از الگوریتم‌های یادگیری ماشینی ، به عنوان مثال، CatBoost روش‌های اعتبارسنجی داخلی خود را دارند. ممکن است آنها را برای کار یادگیری ماشینی خود مرتبط بیابید و به جای روش های داخلی sklearn از آنها استفاده کنید. به طور کلی، همانطور که ممکن است متوجه شده باشید، بسیاری از تکنیک‌های اعتبارسنجی دارای روش‌های داخلی sklearn هستند. من به شدت توصیه می کنم از آنها استفاده کنید زیرا این روش ها در زمان زیادی برای کارهای پیچیده تر صرفه جویی می کنند.اعتبار متقابل در یادگیری عمیق : اعتبار سنجی متقابل در یادگیری عمیق ممکن است کمی مشکل باشد زیرا اکثر تکنیک های اعتبار سنجی حداقل چند بار نیاز به آموزش مدل دارند. در یادگیری عمیق، معمولاً به دلیل هزینه‌های مرتبط با آموزش مدل‌های مختلف، از اعتبار سنجی اجتناب می‌کنید. به جای انجام k دسته یا سایر تکنیک های اعتبار سنجی ، ممکن است از یک زیرمجموعه تصادفی از داده های آموزشی خود به عنوان نگهدارنده برای اهداف اعتبار سنجی استفاده کنید. به عنوان مثال، کتابخانه یادگیری عمیق Keras به شما امکان می دهد یکی از دو پارامتر را برای تابع مناسب که آموزش را انجام می دهد، ارسال کنید.شکافتن اعتبار : درصدی از داده هایی که باید برای اعتبار سنجی نگهداری شوندداده اعتبار : چند عدد از  (x,y) که باید برای اعتبارسنجی استفاده شود. این پارامتر پارامتر شکافتن اعتبار را نادیده می گیرد، به این معنی که شما می توانید تنها یکی از این پارامترها را به طور همزمان استفاده کنید. همین رویکرد در آموزش های رسمی سایر چارچوب های یادگیری عمیق مانند PyTorch و MxNet استفاده می شود. آنها همچنین پیشنهاد می کنند مجموعه داده را به سه بخش تقسیم کنید: آموزش، اعتبار سنجی و آزمایش.آموزش – بخشی از مجموعه داده برای آموزش اعتبار سنجی - بخشی از مجموعه داده برای اعتبارسنجی در حین آموزش تست - بخشی از مجموعه داده برای اعتبار سنجی نهایی مدل با این حال، اگر مجموعه داده کوچک است (شامل صدها نمونه) می توانید از اعتبارسنجی متقاطع در وظایف یادگیری عمیق استفاده کنید. در این مورد، یادگیری یک مدل پیچیده ممکن است یک کار بی ربط باشد، بنابراین مطمئن شوید که کار را بیشتر پیچیده نکنید  بهترین روش ها و نکات : گاهی اوقات انجام اعتبارسنجی متقابل ممکن است کمی مشکل باشد. به عنوان مثال، انجام یک اشتباه منطقی در هنگام تقسیم مجموعه داده بسیار آسان است که ممکن است منجر به یک نتیجه اعتبارسنجی غیرقابل اعتماد شود. ممکن است نکاتی را بیابید که باید هنگام تایید متقابل یک مدل در زیر مد نظر داشته باشید: هنگام تقسیم داده ها منطقی باشید (آیا روش تقسیم منطقی است)از روش اعتبارسنجی مناسب استفاده کنید (آیا این روش برای مورد استفاده من قابل اجرا است) هنگام کار با سری های زمانی، گذشته را تأیید نکنید (به اولین نکته مراجعه کنید) هنگام کار با داده های پزشکی یا مالی، به یاد داشته باشید که آن را بر اساس شخص تقسیم کنید. از داشتن داده برای یک نفر هم در آموزش و هم در مجموعه تست خودداری کنید زیرا ممکن است به عنوان نشت داده در نظر گرفته شود . هنگام برش تکه‌ها از تصاویر بزرگ‌تر، به یاد داشته باشید که با شناسه تصویر بزرگ تقسیم کنید . البته، نکات از کار به کار متفاوت است و پوشش همه آنها تقریبا غیرممکن است. به همین دلیل است که انجام یک تجزیه و تحلیل داده های اکتشافی جامد قبل از شروع اعتبارسنجی متقابل یک مدل همیشه بهترین روش است.افکار نهایی : اعتبار سنجی متقابل ابزار قدرتمندی است. هر دانشمند داده باید با آن آشنا باشد. در زندگی واقعی، شما نمی توانید پروژه را بدون تایید متقابل یک مدل به پایان برسانید.به نظر من بهترین تکنیک های اعتبارسنجی k دسته تودرتو و استاندارد k دسته هستند. من شخصاً از آنها در وظیفه تشخیص تقلب استفاده کردم. k دسته تودرتو و همچنین اعتبارسنجی جستجو شبکه به من کمک کرد تا پارامترهای مدل خود را تنظیم کنم. از طرف دیگر، k دسته برای ارزیابی عملکرد مدل من استفاده شد. در این مقاله متوجه شدیم اعتبارسنجی متقابل چیست، چه تکنیک‌های اعتبارسنجی در طبیعت وجود دارد و چگونه آنها را پیاده‌سازی کنیم. در آینده الگوریتم های یادگیری ماشین قطعاً حتی بهتر از امروز عمل خواهند کرد. با این حال، اعتبارسنجی متقابل همیشه برای پشتیبان گیری از نتایج شما مورد نیاز است. امیدواریم با این اطلاعات، مشکلی در تنظیم اعتبارسنجی برای پروژه بعدی یادگیری ماشینی خود نخواهید داشت!مراجعhttps://www.geeksforgeeks.org/cross-validation-machine-learning/https://machinelearningmastery.com/k-fold-cross-validation/https://towardsdatascience.com/cross-validation-in-machine-learning-72924a69872fhttps://towardsdatascience.com/why-and-how-to-do-cross-validation-for-machine-learning-d5bd7e60c189https://scikit-learn.org/stable/modules/cross_validation.html  </description><category>mastane hayati</category><author>mastane hayati</author><pubDate>Mon, 13 Dec 2021 16:01:01 +0330</pubDate></item><item><title>machine learning</title><link>https://virgool.ir/@mastanehayati72/چرا-یاگیری-ماشین-ykcmzijxrrww</link><description>سلام! به دوره «دروازه ورود به یادگیری ماشین» خوش آمدید در این دوره که شامل هفت فصل میشه ما میخوایم با مفاهیم ابتدایی یادگیری ماشین بیشتر آشنا بشیم. برای اینکه به یک دانشمند داده و مهندس یادگیری ماشین خوب تبدیل شویم باید در یک مسیر مشخص حرکت کنیم,گام اول برای اینکار آشنایی با مفاهیمی چون : هوش مصنوعی و یادگیری ماشین, مفاهیم پایه یادگیری ماشین,موقعیت های شغلی در رابطه با یادگیری ماشین و همچنین چالش های آن است. در گام دوم با ابزار‌ها و مقدمات تحلیل داده آشنا می‌شویم که نکات مشترک بسیاری با علم داده دارد  پس از آشنایی با مفاهیم یادگیری ماشین و به دست آوردن اطلاعاتی برای تحلیل داده لازم است با تکنیک‌های حل مسائل مختلف آشنا شویم.هوش مصنوعی حوزه‌های بسیاری را شامل می‌شود و همچنان در حال بزرگ‌تر شدن است. امروزه هر برنامه‌ای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته می‌شود.یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را می‌توان زیر مجموعه هوش مصنوعی در نظر گرفت.یادگیری ماشین ویژگی‌هایی دارد که آن را از دیگر روش‌های هوش مصنوعی متمایز می‌کند.یکی از این ویژگی ها یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است اما برخی از انواع هوش مصنوعی وجود دارد که در آن شاهد نوعی از هوشمندی هستیم که از داده استفاده نمیکند. ویژگی دیگر یادگیری ماشین، این است که با دیدن داده های جدید تغییر میکند یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر می‌دهد . قدرت الگوریتم های یادگیری ماشین باعث شده حوزه هایی مانند صنعت, دانشگاه, حوزه سلامت, اقتصاد وتجارت,کسب وکار وبسیاری دیگر از یادگیری ماشین برای پیشبرد اهداف خود استفاده کنند یکی از اولین کاربرد‌های یادگیری ماشین در تشخیص ایمیل های spam بود.امروزه ماشین‌های بدون راننده در سطح شهرها در حال حرکت هستند، صاحبان ‌محصول از سیستم‌های پیشنهاد‌ دهنده برای پیشنهاد محصول استفاده می‌کنند، اقتصاددانان برای پیش‌بینی روند بازار از آن استفاده می‌کنند و همچنان کاربرد‌های بیشتری در حال ایجاد شدن است. از دیگر عواملی که باعث جذاب شدن یادگیری ماشین شده توجه ویژه برنامه نویسان و شرکت های برنامه سازی به آن است .زبان پایتون و R از محبوب ترین زبان های یادگیری ماشین هستند و کتابخانه های بسیار قدرتمندی هم در این زبان ها برای رفع نیازها در این حوزه در حال گسترش است.حال که با هوش مصنوعی آشنا شدیم می‌توانیم به مفهوم یادگیری ماشین و نحوه‌ی آموزش مدل و بررسی دقت آن بپردازیم.در این فصل دسته‌بندی کلی روش‌های یادگیری ماشین را مورد بررسی قرار میدهیم یادگیری ماشین در اکثر کاربردهای فعلی، یک برنامه کامپیوتری است که به داده دسترسی پیدا می‌کند و از آن برای آموزش خود استفاده می‌کند.تعریف یادگیری ماشین از نظر آقای آرتور ساموئل : یادگیری ماشین زمینه‌ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه‌نویسی صریح را می‌دهد. برنامه نویسی صریح یعنی مثلا یک برنامه‌ای بنویسید که یک ورودی را بگیرد، مقدار آن را به توان ۲ برساند و در خروجی چاپ کند اگر بخواهید برنامه با الگوریتم‌های یادگیری ماشین بنویسید، اعداد و مربع‌ آنها را به الگوریتم می‌دهید و الگوریتم پس از بررسی ورودی و خروجی یاد می‌گیرد که کار درست، ضرب کردن ورودی در خودش است. ویژگی اصلی یادگیری ماشین خود آموزشی یا( (Self- learning  می‌باشد که به معنی استفاده از مدلسازی آماری و عدم استفاده از دستورات مستقیم (یا صریح) می‌باشد. به عقیده بسیاری در آموزش الگوریتم یادگیری ماشین، نیازی به دخالت انسان برای یادگیری نیست. به بیان دیگر، الگوریتم خود، نیازهای خود را تشخیص می‌دهد و خود را ارتقا می‌دهد. این نکته را در نظر بگیرید که تعریفی که برای یادگیری ماشین ارائه می‌شود ممکن است برای همه انواع آن درست نباشد. برای مثال، در یادگیری با‌نظارت، همانطور که از اسمش پیداست یادگیری با نظارت انسان صورت می‌گیرد.داده ها و انواع آن : داده‌ها عنصر محوری یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند، به این صورت که ما داده‌ها را به عنوان ورودی به الگوریتم می‌دهیم تا خروجی مورد نیازمان را دریافت کنیم. داده‌، در نتیجه مشاهدات و اندازه‌گیری‌ها شکل می‌گیرد و توصیف این وضعیت مشاهده شده به شمار می‌آید: - کلمات (زبان طبیعی) : استفاده از زبان طبیعی برای نگهداری و تبادل مفاهیم و اطلاعات است.برخی از کاربردهای این حوزه : تشخیص گفتار , دسته‌بندی نوشتارها یا نظرات , پاسخ دادن به سوالات - تصویر : بینایی ماشین پیشرفت خیره‌کننده‌ای را در سال‌های اخیر داشته و در تکنولوژی‌های روزمره به صورت گسترده استفاده می‌شود داده‌ای که در این قسمت با آن سر و کار داریم تصاویر ثبت شده توسط دوربین‌های مختلف عکس‌برداری یا فیلمبرداری هستند. از کابردهای بینایی ماشین می‌توان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی یا کامپیوتر، جستجو میان تصاویر بر اساس اجسام موجود در عکس، پردازش تصاویر ماهواره‌ای برای هواشناسی یا تشخیص وقایع زیست‌محیطی و ماشین‌های خودران و... اشاره کرد . - جداول : این نوع داده در بسیاری از سیستم‌های نرم‌افزاری یافت می‌شود مثلا یک سیستم بانکی را در نظر بگیرید بانک می‌تواند با کمک یادگیری ماشین از روی این داده‌ها که در جدول نگه داری شده اند پیش‌بینی کند که درخواست وام یک مشتری را قبول یا رد کند.- سری زمانی : ماشین می‌تواند با دیدن تغییرات ویژگی مشخصی از یک داده در طول زمان، الگوی تغییرات آن را یاد بگیرد و به مسائلی که برحسب زمان‌اند، مثل پیش‌بینی مقدار آن ویژگی در یک زمان مشخص پاسخ دهد مثلا ارزش سهام در بازار بورس در یک بازه زمانی .حال در اینجا میخواهیم بدانیم ماشین چگونه یاد میگیرد؟ الگوریتم‌های یادگیری ماشین، مثل انسان با کمک تجربه یاد می‌گیرند. داده همان تجربه‌ای است که به عنوان ورودی به الگوریتم داده می‌شود. یادگیری نظارت شده، که یکی از انواع یادگیری ماشین است، بیشترین کاربرد را در امور یادگیری ماشین دارد. نظر آقای تام میشل درمورد یادگیری ماشین : اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی می‌شود، با تجربهE  افزایش یابد، می‌گوییم که برنامه یاد گرفته است از تجربه Eبا توجه به تکلیف T و سنجه P استفاده کند. تکلیف T  در واقع همان مساله‌ای است که ما انتظار داریم بتوانیم با یادگیری ماشین حل کنیم. هر مدل یادگیری ماشینی که طراحی کنیم، به هرحال به طور ۱۰۰ درصدی نتیجه درست و مناسبی را ارائه نمی‌دهد بنابراین به معیاری برای بررسی و اندازه‌گیری میزان دقت این الگوریتم نیاز داریم تا در صورت نامناسب بودن دقت آن، با تغییر پارامترهای الگوریتم بتوانیم به دقت بالاتری برسیم. به این معیار سنجه‌ی P  می‌گوییم.  به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:یک الگوریتم (مدل) برای تصمیم‌گیری,یک معیار برای امتیازدهی اینکه عمل‌کرد مدل چقدر خوب بوده,بررسی خودکار کیفیت مدل بر اساس امتیاز,یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات درمدل. به طور کلی یادگیری ماشین به سه دسته کلی تقسیم‌بندی می شود : یادگیری بانظارت ,یادگیری بی نظارت ,یادگیری تقویتی.یادگیری بانظارت : در این نوع از یادگیری، نمونه‌هایی که برای آموزش الگوریتم استفاده می‌شوند، دارای برچسب هستند. به این معنا که مدل یادگیری ‌ماشین با استفاده از داده‌هایی که از قبل برچسب مشخصی دارند الگوهای اساسی را تا زمانی که به دقت رضایت‌بخشی برای ما برسد، پیدا می‌کند.این مدل به دو دسته طبقه‌بندی و رگرسیون تقسیم میشود. در طبقه‌بندی، هدف ما پیدا کردن برچسب یا دسته مناسب برای نمونه‌های بدون برچسب می‌باشد. برای این کار، ما مدل یادگیری‌ ماشینی را با استفاده از نمونه‌های برچسب‌دار، آموزش می‌دهیم. بر اساس این یادگیری، مدل یادگیری‌ماشین می‌تواند، مجموعه‌دادگان را به دسته‌های مختلف تقسیم کند. مثلا فیلتر کردن ایمیل‌ها به دو دسته اسپم و غیر اسپم . در رگرسیون، هدف ما تخمین مقدار یک ویژگی (این بار مقداری پیوسته) برای یک نمونه می‌باشد. این الگوریتم‌ها برای پیش‌بینی روند بازار، قیمت خانه و دیگر مثال‌ها به کار می‌روند. هر دو دسته یاد می‌گیرند تا برچسب داده‌ها را پیش‌بینی کنند و تنها تفاوت میان این دو دسته، به نوع این برچسب بستگی دارد. در الگوریتم‌های طبقه‌بندی برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری گسسته می‌باشددر الگوریتم‌های رگرسیونی، برخلاف طبقه‌بندی، برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری پیوسته است. یادگیری بدون نظارت : تفاوت این نوع از یادگیری با یادگیری نظارت‌شده، تنها در نبودن برچسب‌هااست. در این روش یادگیری، مدل به تنهایی و بدون کمک برچسب‌هایی که در روش نظارت ‌شده دیدیم، باید الگوهای پنهان را پیدا کند.این الگوریتم ها به سه دسته خوشه‌بندی , کاهش ابعاد و استخراج قانون وابستگی تقسیم میشود. خوشه‌بندی به معنی دسته‌بندی اتوماتیک داده‌ها به خوشه‌های همگن است، به این صورت که داده‌های هر خوشه، ویژگی‌های یکسانی داشته باشند. اولین گام برای خوشه‌بندی داده‌ها، انتخاب کردن معیاری برای خوشه‌بندی است؛ به عبارت دیگر در این گام باید معیاری برای سنجش فاصله بین داده‌ها انتخاب کنیم. روش کاهش ابعاد یعنی کاهش دادن تعداد ویژگی‌هایی که از آن‌ها برای آموزش مدل یادگیری ماشین خود استفاده می‌کنیم. به طور مثال، کاهش دادن تعداد ستون‌های یک دیتاست جدولی، حالتی از کاهش ابعاد است. یادگیری تقویتی : یکی از روش های یادگیری ماشین است که با ذهنیت آزمون و خطا کار می‌کند. عامل هوشمند (agent)  طبق حالت جاری (state) ، حرکتی (action) انجام می‌دهد و بر اساس آن حرکت بازخورد (reward) دریافت می‌کند؛ این بازخورد ممکن است مثبت یا منفی (پاداش یا تنبیه) باشد و عامل با این بازخورد خط ‌مشی (policy) خود را تغییر می‌دهد. این روش از یادگیری نزدیک‌ترین حالت به یادگیری انسان است. یادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بی‌نظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد . سنجش یادگیری : در بخش‌های قبلی، با انواع روش‌های یادگیری بانظارت آشنا شدیم، اما چطور مطمئن باشیم که مدل روی دادگان جدید نیز نتیجه مناسبی را ارائه می‌دهد؟ انتظار می‌رود برای بررسی دقت مدل آموزش داده شده ، باید پاسخ‌های آن را روی داده‌ی جدیدی تست کرد. به همین دلیل است که معمولا تعدادی از دادگان برای انجام ارزیابی کنار گذاشته می‌شوند و از باقی آن‌ها برای آموزش مدل استفاده می‌شود. اصطلاحا به دادگانی که برای آموزش استفاده می‌شوند، دادگان آموزش (train) و به دادگانی که برای ارزیابی استفاده می‌شوند، دادگان آزمایش (test) می‌گوییم.پایتون چیست؟یک زبان برنامه نویسی سطح بالا در توسعه‌ی برنامه‌های وب و موبایل و همچنین در آنالیز داده و محاسبات علمی به کار رفته است. پایتون زبانی به نسبت آسان برای یادگیری است زیرا کدهای آن تمیز و قابل فهم است. پایتون زبانی دارای مفسر است. مفسر برنامه را در محیطی به نام kernel به bytecode  ترجمه و آن را به صورت خط به خط اجرا می‌کند. لذا هر برنامه‌ی پایتون در هر دستگاهی که مفسر پایتون نصب شده ‌باشد، اجرا می‌شود.پایتون در صنعت خیلی پرکاربرد است به همین دلیل برای علم داده انتخاب شده است. پایتون در همه‌ی حوزه‌های علم داده دارای کتابخانه‌های متعددی است که اکثر آنها توسط شرکت‌های بزرگ یا دانشگاه‌ها پشتیبانی و دائما به‌روز‌رسانی می‌شوند.کدهای پایتون قابل فهم هستند. پرکاربردترین کتابخانه های پایتون :1- نامپای (با استفاده از نامپای، پردازش و محاسبات روی آرایه‌ها سریعتر انجام می‌شود).2-پانداس (با پانداس می‌توان عملیات بسیار بیشتری بر روی داده انجام داد که کاربران پایگاه داده و صفحات گسترده با این عملیات بسیار آشنا هستند) .3-مت پلات لیب (ین کتابخانه بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است. بسیاری از نمودار‌های پرکاربرد را می‌توان با مت‌پلات‌لیب ایجاد کرد). 4- سایکت لرن (سایکت‌لرن حاوی ابزارهای متنوعی برای یادگیری ماشین و مدل‌سازی آماری است).چرا از یادگیری ماشین استفاده میکنیم؟یادگیری‌ماشین به شرکت‌ها این امکان را می‌دهد که کارهایی که قبلاً تنها توسط انسان‌ها امکان‌پذیر بود را با سرعت بالاتر و دقت بیشتر انجام دهند،لازم است بدانیم که استفاده از یادگیری‌ماشین به دلایل زیر خیلی آسان‌تر و فراگیرتر شده است:افزایش بی حد و حصر داده‌ها, ذخیره سازی مقرون به صرفه داده‌ها, افزایش قدرت پردازنده‌ها و کاهش هزینه‌های آن‌ها. با وجود اینکه امروزه یادگیری‌ماشین نقش به سزایی در زندگی بشر ایفا می‌کند، اما همچنان چالش‌هایی برای به‌کارگیری این تکنیک حل مسئله وجود دارد؛که راجع به این چالش‌ها بیشتر خواهیم آموخت. تعداد ناکافی داده : اگر به تعداد کافی داده به الگوریتم تزریق نکنیم، نمی‌توانیم انتظار عملکرد خوبی داشته باشیم. داده بی کیفیت : داده‌ بی‌کیفیت پر است از مقادیر اشتباه و گم ‌شده, این اشتباهات اجازه نمی‌دهند مدل به عملکرد بالا دست پیدا کند. ویژگی های نامناسب : همواره باید سعی در انتخاب ویژگی‌هایی داشته باشیم که مدل بتواند از آن‌ها بیاموزد و از دل آن‌ها الگوهایی برای پیش‌بینی آینده استخراج کند.پس از آن‌که توانستیم چالش‌های مربوط به داده را مدیریت کنیم، سراغ الگوریتم و مدل می‌رویم. بیش‌برازش (overfiting)، کم‌برازش (under fiting) و زمان نمونه‌ای از چالش‌های مربوط به مدل‌ها و الگوریتم‌های هوش‌مصنوعی و یاد‌گیری‌ماشین هستند. مسئله Overfitting : هدف ما در یادگیری‌ماشین این است که با مشاهده و یادگیری از داده‌های گذشته، آینده را پیش‌بینی کنیم. وقتی دچار Overfitting  می‌شویم در حقیقت مدل عمومیت خود را از دست داده است؛ به عبارت بهتر مدل نمی‌تواند آینده را به درستی پیش‌بینی کند. علت عدم توانایی در پیش‌بینی آینده این است که داده‌های آموزش را زیاد از حد یاد گرفته است. مسئله Underfitting : این مشکل وقتی به‌وجود می‌آید که مدل نتواند به خوبی از دادگان آموزش، یاد بگیرد.این مسئله می‌تواند به دلایل مختلفی پیش بیاید. داده نامناسب یکی از چندین دلیل کم‌برازش است. مسئله زمان : زمان در یادگیری‌ماشین از دو جهت اهمیت دارد؛ هم مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، هم زمانی که مدل برای پیش‌بینی نمونه‌ها مصرف می‌کند. مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، طول مدت توسعه محصول را تحت تاثیر قرار می‌دهد و زمان مصرفی توسط مدل برای پیش‌بینی نمونه‌ها زمانی است که کاربر‌ نهایی تجربه می‌کند. دانشمند داده همواره سعی می‌کند هر دو زمان را کمینه کند. هدف از فصل یادگیری ماشین در عمل این است که شما با گام‌هایی که در یک پروژه یادگیری ماشین طی می‌شود آشنا شوید.این گام‌ها به شرح زیر هستند: دریافت و بررسی داده , آماده‌سازی داده, انتخاب و آموزش مدل مناسب ,تست و ارزیابی ام! به دوره «دروازه ورود به یادگیری ماشین» خوش آمدید در این دوره که شامل هفت فصل میشه ما میخوایم با مفاهیم ابتدایی یادگیری ماشین بیشتر آشنا بشیم. برای اینکه به یک دانشمند داده و مهندس یادگیری ماشین خوب تبدیل شویم باید در یک مسیر مشخص حرکت کنیم,گام اول برای اینکار آشنایی با مفاهیمی چون : هوش مصنوعی و یادگیری ماشین, مفاهیم پایه یادگیری ماشین,موقعیت های شغلی در رابطه با یادگیری ماشین و همچنین چالش های آن است. در گام دوم با ابزار‌ها و مقدمات تحلیل داده آشنا می‌شویم که نکات مشترک بسیاری با علم داده دارد  پس از آشنایی با مفاهیم یاددگیری ماشین و به دست آوردن اطلاعاتی برای تحلیل داده لازم است با تکنیک‌های حل مسائل مختلف آشنا شویم.هوش مصنوعی حوزه‌های بسیاری را شامل می‌شود و همچنان در حال بزرگ‌تر شدن است. امروزه هر برنامه‌ای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته می‌شود.یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را می‌توان زیر مجموعه هوش مصنوعی در نظر گرفت.یادگیری ماشین ویژگی‌هایی دارد که آن را از دیگر روش‌های هوش مصنوعی متمایز می‌کند.یکی از این ویژگی ها یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است اما برخی از انواع هوش مصنوعی وجود دارد که در آن شاهد نوعی از هوشمندی هستیم که از داده استفاده نمیکند. ویژگی دیگر یادگیری ماشین، این است که با دیدن داده های جدید تغییر میکند یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر می‌دهد . قدرت الگوریتم های یادگیری ماشین باعث شده حوزه هایی مانند صنعت, دانشگاه, حوزه سلامت, اقتصاد وتجارت,کسب وکار وبسیاری دیگر از یادگیری ماشین برای پیشبرد اهداف خود استفاده کنند یکی از اولین کاربرد‌های یادگیری ماشین در تشخیص ایمیل های spam بود.امروزه ماشین‌های بدون راننده در سطح شهرها در حال حرکت هستند، صاحبان ‌محصول از سیستم‌های پیشنهاد‌ دهنده برای پیشنهاد محصول استفاده می‌کنند، اقتصاددانان برای پیش‌بینی روند بازار از آن استفاده می‌کنند و همچنان کاربرد‌های بیشتری در حال ایجاد شدن است. از دیگر عواملی که باعث جذاب شدن یادگیری ماشین شده توجه ویژه برنامه نویسان و شرکت های برنامه سازی به آن است .زبان پایتون و R از محبوب ترین زبان های یادگیری ماشین هستند و کتابخانه های بسیار قدرتمندی هم در این زبان ها برای رفع نیازها در این حوزه در حال گسترش است.حال که با هوش مصنوعی آشنا شدیم می‌توانیم به مفهوم یادگیری ماشین و نحوه‌ی آموزش مدل و بررسی دقت آن بپردازیم.در این فصل دسته‌بندی کلی روش‌های یادگیری ماشین را مورد بررسی قرار میدهیم یادگیری ماشین در اکثر کاربردهای فعلی، یک برنامه کامپیوتری است که به داده دسترسی پیدا می‌کند و از آن برای آموزش خود استفاده می‌کند.تعریف یادگیری ماشین از نظر آقای آرتور ساموئل : یادگیری ماشین زمینه‌ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه‌نویسی صریح را می‌دهد. برنامه نویسی صریح یعنی مثلا یک برنامه‌ای بنویسید که یک ورودی را بگیرد، مقدار آن را به توان ۲ برساند و در خروجی چاپ کند اگر بخواهید برنامه با الگوریتم‌های یادگیری ماشین بنویسید، اعداد و مربع‌ آنها را به الگوریتم می‌دهید و الگوریتم پس از بررسی ورودی و خروجی یاد می‌گیرد که کار درست، ضرب کردن ورودی در خودش است. ویژگی اصلی یادگیری ماشین خود آموزشی یا( (Self- learning  می‌باشد که به معنی استفاده از مدلسازی آماری و عدم استفاده از دستورات مستقیم (یا صریح) می‌باشد. به عقیده بسیاری در آموزش الگوریتم یادگیری ماشین، نیازی به دخالت انسان برای یادگیری نیست. به بیان دیگر، الگوریتم خود، نیازهای خود را تشخیص می‌دهد و خود را ارتقا می‌دهد. این نکته را در نظر بگیرید که تعریفی که برای یادگیری ماشین ارائه می‌شود ممکن است برای همه انواع آن درست نباشد. برای مثال، در یادگیری با‌نظارت، همانطور که از اسمش پیداست یادگیری با نظارت انسان صورت می‌گیرد.داده ها و انواع آن : داده‌ها عنصر محوری یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند، به این صورت که ما داده‌ها را به عنوان ورودی به الگوریتم می‌دهیم تا خروجی مورد نیازمان را دریافت کنیم. داده‌، در نتیجه مشاهدات و اندازه‌گیری‌ها شکل می‌گیرد و توصیف این وضعیت مشاهده شده به شمار می‌آید: - کلمات (زبان طبیعی) : استفاده از زبان طبیعی برای نگهداری و تبادل مفاهیم و اطلاعات است.برخی از کاربردهای این حوزه : تشخیص گفتار , دسته‌بندی نوشتارها یا نظرات , پاسخ دادن به سوالات - تصویر : بینایی ماشین پیشرفت خیره‌کننده‌ای را در سال‌های اخیر داشته و در تکنولوژی‌های روزمره به صورت گسترده استفاده می‌شود داده‌ای که در این قسمت با آن سر و کار داریم تصاویر ثبت شده توسط دوربین‌های مختلف عکس‌برداری یا فیلمبرداری هستند. از کابردهای بینایی ماشین می‌توان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی یا کامپیوتر، جستجو میان تصاویر بر اساس اجسام موجود در عکس، پردازش تصاویر ماهواره‌ای برای هواشناسی یا تشخیص وقایع زیست‌محیطی و ماشین‌های خودران و... اشاره کرد . - جداول : این نوع داده در بسیاری از سیستم‌های نرم‌افزاری یافت می‌شود مثلا یک سیستم بانکی را در نظر بگیرید بانک می‌تواند با کمک یادگیری ماشین از روی این داده‌ها که در جدول نگه داری شده اند پیش‌بینی کند که درخواست وام یک مشتری را قبول یا رد کند.- سری زمانی : ماشین می‌تواند با دیدن تغییرات ویژگی مشخصی از یک داده در طول زمان، الگوی تغییرات آن را یاد بگیرد و به مسائلی که برحسب زمان‌اند، مثل پیش‌بینی مقدار آن ویژگی در یک زمان مشخص پاسخ دهد مثلا ارزش سهام در بازار بورس در یک بازه زمانی .حال در اینجا میخواهیم بدانیم ماشین چگونه یاد میگیرد؟ الگوریتم‌های یادگیری ماشین، مثل انسان با کمک تجربه یاد می‌گیرند. داده همان تجربه‌ای است که به عنوان ورودی به الگوریتم داده می‌شود. یادگیری نظارت شده، که یکی از انواع یادگیری ماشین است، بیشترین کاربرد را در امور یادگیری ماشین دارد. نظر آقای تام میشل درمورد یادگیری ماشین : اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی می‌شود، با تجربهE  افزایش یابد، می‌گوییم که برنامه یاد گرفته است از تجربه Eبا توجه به تکلیف T و سنجه P استفاده کند. تکلیف T  در واقع همان مساله‌ای است که ما انتظار داریم بتوانیم با یادگیری ماشین حل کنیم. هر مدل یادگیری ماشینی که طراحی کنیم، به هرحال به طور ۱۰۰ درصدی نتیجه درست و مناسبی را ارائه نمی‌دهد بنابراین به معیاری برای بررسی و اندازه‌گیری میزان دقت این الگوریتم نیاز داریم تا در صورت نامناسب بودن دقت آن، با تغییر پارامترهای الگوریتم بتوانیم به دقت بالاتری برسیم. به این معیار سنجه‌ی P  می‌گوییم.  به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:یک الگوریتم (مدل) برای تصمیم‌گیری,یک معیار برای امتیازدهی اینکه عمل‌کرد مدل چقدر خوب بوده,بررسی خودکار کیفیت مدل بر اساس امتیاز,یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات درمدل. به طور کلی یادگیری ماشین به سه دسته کلی تقسیم‌بندی می شود : یادگیری بانظارت ,یادگیری بی نظارت ,یادگیری تقویتی.یادگیری بانظارت : در این نوع از یادگیری، نمونه‌هایی که برای آموزش الگوریتم استفاده می‌شوند، دارای برچسب هستند. به این معنا که مدل یادگیری ‌ماشین با استفاده از داده‌هایی که از قبل برچسب مشخصی دارند الگوهای اساسی را تا زمانی که به دقت رضایت‌بخشی برای ما برسد، پیدا می‌کند.این مدل به دو دسته طبقه‌بندی و رگرسیون تقسیم میشود. در طبقه‌بندی، هدف ما پیدا کردن برچسب یا دسته مناسب برای نمونه‌های بدون برچسب می‌باشد. برای این کار، ما مدل یادگیری‌ ماشینی را با استفاده از نمونه‌های برچسب‌دار، آموزش می‌دهیم. بر اساس این یادگیری، مدل یادگیری‌ماشین می‌تواند، مجموعه‌دادگان را به دسته‌های مختلف تقسیم کند. مثلا فیلتر کردن ایمیل‌ها به دو دسته اسپم و غیر اسپم . در رگرسیون، هدف ما تخمین مقدار یک ویژگی (این بار مقداری پیوسته) برای یک نمونه می‌باشد. این الگوریتم‌ها برای پیش‌بینی روند بازار، قیمت خانه و دیگر مثال‌ها به کار می‌روند. هر دو دسته یاد می‌گیرند تا برچسب داده‌ها را پیش‌بینی کنند و تنها تفاوت میان این دو دسته، به نوع این برچسب بستگی دارد. در الگوریتم‌های طبقه‌بندی برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری گسسته می‌باشددر الگوریتم‌های رگرسیونی، برخلاف طبقه‌بندی، برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری پیوسته است. یادگیری بدون نظارت : تفاوت این نوع از یادگیری با یادگیری نظارت‌شده، تنها در نبودن برچسب‌هااست. در این روش یادگیری، مدل به تنهایی و بدون کمک برچسب‌هایی که در روش نظارت ‌شده دیدیم، باید الگوهای پنهان را پیدا کند.این الگوریتم ها به سه دسته خوشه‌بندی , کاهش ابعاد و استخراج قانون وابستگی تقسیم میشود. خوشه‌بندی به معنی دسته‌بندی اتوماتیک داده‌ها به خوشه‌های همگن است، به این صورت که داده‌های هر خوشه، ویژگی‌های یکسانی داشته باشند. اولین گام برای خوشه‌بندی داده‌ها، انتخاب کردن معیاری برای خوشه‌بندی است؛ به عبارت دیگر در این گام باید معیاری برای سنجش فاصله بین داده‌ها انتخاب کنیم. روش کاهش ابعاد یعنی کاهش دادن تعداد ویژگی‌هایی که از آن‌ها برای آموزش مدل یادگیری ماشین خود استفاده می‌کنیم. به طور مثال، کاهش دادن تعداد ستون‌های یک دیتاست جدولی، حالتی از کاهش ابعاد است. یادگیری تقویتی : یکی از روش های یادگیری ماشین است که با ذهنیت آزمون و خطا کار می‌کند. عامل هوشمند (agent)  طبق حالت جاری (state) ، حرکتی (action) انجام می‌دهد و بر اساس آن حرکت بازخورد (reward) دریافت می‌کند؛ این بازخورد ممکن است مثبت یا منفی (پاداش یا تنبیه) باشد و عامل با این بازخورد خط ‌مشی (policy) خود را تغییر می‌دهد. ین روش از یادگیری نزدیک‌ترین حالت به یادگیری انسان است. یادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بی‌نظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد . سنجش یادگیری : در بخش‌های قبلی، با انواع روش‌های یادگیری بانظارت آشنا شدیم، اما چطور مطمئن باشیم که مدل روی دادگان جدید نیز نتیجه مناسبی را ارائه می‌دهد؟ انتظار می‌رود برای بررسی دقت مدل آموزش داده شده ، باید پاسخ‌های آن را روی داده‌ی جدیدی تست کرد. به همین دلیل است که معمولا تعدادی از دادگان برای انجام ارزیابی کنار گذاشته می‌شوند و از باقی آن‌ها برای آموزش مدل استفاده می‌شود. اصطلاحا به دادگانی که برای آموزش استفاده می‌شوند، دادگان آموزش (train) و به دادگانی که برای ارزیابی استفاده می‌شوند، دادگان آزمایش (test) می‌گوییم..پایتون چیست؟یک زبان برنامه نویسی سطح بالا در توسعه‌ی برنامه‌های وب و موبایل و همچنین در آنالیز داده و محاسبات علمی به کار رفته است. پایتون زبانی به نسبت آسان برای یادگیری است زیرا کدهای آن تمیز و قابل فهم است. پایتون زبانی دارای مفسر است. مفسر برنامه را در محیطی به نام kernel به bytecode  ترجمه و آن را به صورت خط به خط اجرا می‌کند. لذا هر برنامه‌ی پایتون در هر دستگاهی که مفسر پایتون نصب شده ‌باشد، اجرا می‌شود.پایتون در صنعت خیلی پرکاربرد است به همین دلیل برای علم داده انتخاب شده است. پایتون در همه‌ی حوزه‌های علم داده دارای کتابخانه‌های متعددی است که اکثر آنها توسط شرکت‌های بزرگ یا دانشگاه‌ها پشتیبانی و دائما به‌روز‌رسانی می‌شوند.کدهای پایتون قابل فهم هستند. پرکاربردترین کتابخانه های پایتون :1- نامپای (با استفاده از نامپای، پردازش و محاسبات روی آرایه‌ها سریعتر انجام می‌شود).2-پانداس (با پانداس می‌توان عملیات بسیار بیشتری بر روی داده انجام داد که کاربران پایگاه داده و صفحات گسترده با این عملیات بسیار آشنا هستند) .3-مت پلات لیب (ین کتابخانه بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است. بسیاری از نمودار‌های پرکاربرد را می‌توان با مت‌پلات‌لیب ایجاد کرد). 4- سایکت لرن (سایکت‌لرن حاوی ابزارهای متنوعی برای یادگیری ماشین و مدل‌سازی آماری است).چرا از یادگیری ماشین استفاده میکنیم؟یادگیری‌ماشین به شرکت‌ها این امکان را می‌دهد که کارهایی که قبلاً تنها توسط انسان‌ها امکان‌پذیر بود را با سرعت بالاتر و دقت بیشتر انجام دهند،لازم است بدانیم که استفاده از یادگیری‌ماشین به دلایل زیر خیلی آسان‌تر و فراگیرتر شده است:افزایش بی حد و حصر داده‌ها, ذخیره سازی مقرون به صرفه داده‌ها, افزایش قدرت پردازنده‌ها و کاهش هزینه‌های آن‌ها. با وجود اینکه امروزه یادگیری‌ماشین نقش به سزایی در زندگی بشر ایفا می‌کند، اما همچنان چالش‌هایی برای به‌کارگیری این تکنیک حل مسئله وجود دارد؛که راجع به این چالش‌ها بیشتر خواهیم آموخت. تعداد ناکافی داده : اگر به تعداد کافی داده به الگوریتم تزریق نکنیم، نمی‌توانیم انتظار عملکرد خوبی داشته باشیم. داده بی کیفیت : داده‌ بی‌کیفیت پر است از مقادیر اشتباه و گم ‌شده, این اشتباهات اجازه نمی‌دهند مدل به عملکرد بالا دست پیدا کند. ویژگی های نامناسب : همواره باید سعی در انتخاب ویژگی‌هایی داشته باشیم که مدل بتواند از آن‌ها بیاموزد و از دل آن‌ها الگوهایی برای پیش‌بینی آینده استخراج کند.پس از آن‌که توانستیم چالش‌های مربوط به داده را مدیریت کنیم، سراغ الگوریتم و مدل می‌رویم. بیش‌برازش (overfiting)، کم‌برازش (under fiting) و زمان نمونه‌ای از چالش‌های مربوط به مدل‌ها و الگوریتم‌های هوش‌مصنوعی و یاد‌گیری‌ماشین هستند. مسئله Overfitting : هدف ما در یادگیری‌ماشین این است که با مشاهده و یادگیری از داده‌های گذشته، آینده را پیش‌بینی کنیم. وقتی دچار Overfitting  می‌شویم در حقیقت مدل عمومیت خود را از دست داده است؛ به عبارت بهتر مدل نمی‌تواند آینده را به درستی پیش‌بینی کند. علت عدم توانایی در پیش‌بینی آینده این است که داده‌های آموزش را زیاد از حد یاد گرفته است. مسئله Underfitting : این مشکل وقتی به‌وجود می‌آید که مدل نتواند به خوبی از دادگان آموزش، یاد بگیرد.این مسئله می‌تواند به دلایل مختلفی پیش بیاید. داده نامناسب یکی از چندین دلیل کم‌برازش است. مسئله زمان : زمان در یادگیری‌ماشین از دو جهت اهمیت دارد؛ هم مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، هم زمانی که مدل برای پیش‌بینی نمونه‌ها مصرف می‌کند. مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، طول مدت توسعه محصول را تحت تاثیر قرار می‌دهد و زمان مصرفی توسط مدل برای پیش‌بینی نمونه‌ها زمانی است که کاربر‌ نهایی تجربه می‌کند. دانشمند داده همواره سعی می‌کند هر دو زمان را کمینه کند. هدف از فصل یادگیری ماشین در عمل این است که شما با گام‌هایی که در یک پروژه یادگیری ماشین طی می‌شود آشنا شوید.این گام‌ها به شرح زیر هستند: دریافت و بررسی داده , آماده‌سازی داده, انتخاب و آموزش مدل مناسب ,تست و ارزیابیhttps://quera.ir/college/land/college/8522/</description><category>mastane hayati</category><author>mastane hayati</author><pubDate>Thu, 25 Nov 2021 02:13:46 +0330</pubDate></item></channel></rss>