<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های mohaddeseh eslahi</title>
        <link>https://virgool.io/feed/@mohaddeseh.eslahiii</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-04-14 18:10:30</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>mohaddeseh eslahi</title>
            <link>https://virgool.io/@mohaddeseh.eslahiii</link>
        </image>

                    <item>
                <title>Accuracy</title>
                <link>https://virgool.io/@mohaddeseh.eslahiii/accuracy-ljq4ffp765ui</link>
                <description>وقتی یک مدل طبقه بندی ساختیم باید ارزیابی کنیم پیش بینی های انجام شده توسط مدل چقدر خوب است.چند معیار وجود دارد که به ما کمک میکند مدل خود را بهبود ببخشیم.مثال : Confusion Matrix را برای یک مشکل طبقه بندی در نظر بگیرید که پیش بینی می کند یک بیمار سرطان دارد یا نه برای 100 بیمار: Confusion Matrixمعیارهای اساسی برای داده های فوق به شرح زیر است: درستی(Precision) : زمانی مفید است که هزینه های مثبت کاذب بالا باشد.یادآوری(Recall):معیار موارد مثبت شناسایی شده صحیح از همه موارد مثبت واقعی است. زمانی مهم است که هزینه منفی کاذب بالا باشد.دقت (Accuracy):یکی از بارزترین معیارها، معیار همه مواردی است که به درستی شناسایی شده اند. زمانی بیشتر مورد استفاده قرار می گیرد که همه کلاس ها به یک اندازه مهم باشند. مثال بالا، فرض کنید که فقط 30 بیمار در واقع سرطان دارند. اگر مدل ما 25 نفر از آنها را مبتلا به سرطان تشخیص دهد چه؟دقت در این مورد = 90% است که عدد کافی برای مدل به عنوان &quot;accurate&quot; در نظر گرفته شود. با این حال، 5 بیمار وجود دارند که واقعاً سرطان دارند و مدل پیش‌بینی کرده است که آنها به سرطان مبتلا نیستند. بدیهی است که این هزینه بسیار بالایی است. مدل ما باید سعی کند این منفی های کاذب را به حداقل برساند.امتیاز (F1-score):این میانگین هارمونیک Precision و Recall است و نسبت به Accuracy Metric دقت اندازه گیری بهتری از موارد طبقه بندی نادرست ارائه می دهد.اینجا از میانگین هارمونیک استفاده شده زیرا مقادیر شدید را جریمه می کند. خلاصه تفاوت‌های بین F1-score و accuracy : یک accuracy زمانی استفاده می‌شود که مثبت‌های واقعی و منفی‌های واقعی مهم‌تر هستند، در حالی کهF1-score زمانی استفاده می‌شود که منفی‌های کاذب و مثبت‌های غلط بسیار مهم هستند.هنگامی که توزیع کلاس مشابه است می توان از accuracy استفاده کرد در حالی کهF1-score  معیار بهتری است وقتی کلاس های نامتعادل مانند مورد بالا وجود دارد.در اکثر مسائل طبقه بندی واقعی، توزیع کلاس نامتعادل وجود دارد و بنابراین F1-scoreمعیار بهتری برای ارزیابی مدل ما است.منبع : https://medium.com/analytics-vidhya/accuracy-vs-f1-score-6258237beca2منبع تصویر :https://www.thoughtco.com/thmb/4oLEU_j-T1dZPPf6WvHHocekmmE=/395x0/filters:no_upscale():max_bytes(150000):strip_icc()/GettyImages-84754796-5693f0bd5f9b58eba493964c.jpg</description>
                <category>mohaddeseh eslahi</category>
                <author>mohaddeseh eslahi</author>
                <pubDate>Tue, 14 Jun 2022 01:31:51 +0430</pubDate>
            </item>
                    <item>
                <title>مثالی با کمک ویلیام شکسپیر و جی کی رولینگ برای درک under-fitting و  over-fitting</title>
                <link>https://virgool.io/@mohaddeseh.eslahiii/%D9%85%D8%AB%D8%A7%D9%84%DB%8C-%D8%A8%D8%A7-%DA%A9%D9%85%DA%A9-%D9%88%DB%8C%D9%84%DB%8C%D8%A7%D9%85-%D8%B4%DA%A9%D8%B3%D9%BE%DB%8C%D8%B1-%D9%88-%D8%AC%DB%8C-%DA%A9%DB%8C-%D8%B1%D9%88%D9%84%DB%8C%D9%86%DA%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AF%D8%B1%DA%A9-under-fitting-%D9%88-over-fitting-atfy2nprux0e</link>
                <description>در صورتی که بایاس داشته باشیم، under-fitting رخ می دهد. با یک مثال در دنیای واقعی این مسئله را توضیح دهید.در صورتی که واریانس داشته باشیم، over-fitting رخ می دهد. با یک مثال در دنیای واقعی این مسئله را توضیح دهید.مثال یادگیری زبان انگلیسیفرض کنید میخواهید انگلیسی یاد بگیرید. شما هیچ دانش قبلی از این زبان ندارید اما شنیده اید که بزرگ ترین نویسنده انگلیسی ویلیام شکسپیر است.خود را در کتابخوانه حبس میکنید و آثار او را حفظ میکنید.پس از یک سال مطالعه ، از درس خارج میشوید، به شهر نیویورک سفر میکنید و به اولین کسی که میبینید با عبارت «صبح بخیر، دوست!» سلام می‌کنید. در پاسخ، شما یک نگاه تحقیرآمیز و یک &quot;دیوانه&quot; زمزمه می کنند. بدون مزاحمت، دوباره تلاش می‌کنید: «آقای عزیز، بانوی مهربان ما چطور است؟» شکستی دیگر و عقب نشینی شتابزده. پس از سومین تلاش ناموفق، شما مضطرب می شوید: &quot;چه شرمنده چه غم!&quot;. واقعاً شرمنده: شما به تازگی یکی از اساسی ترین اشتباهات را در مدل سازی مرتکب شده اید، یعنی تطبیق بیش از حد داده های آموزشی(overfitting on the training data)William Shakespeareیک مدل بیش برازش به عنوان داشتن واریانس بالا و بایاس کم در مجموعه آموزشی توضیح داده می شود که منجر به تعمیم ضعیف در داده های آزمایشی جدید می شود. بیایید این تعریف گیج کننده را از نظر تلاش ما برای یادگیری زبان انگلیسی بشکنیم. مدلی که می خواهیم بسازیم، نمایشی از نحوه برقراری ارتباط با استفاده از زبان انگلیسی است. داده های آموزشی ما کل آثار شکسپیر است و مجموعه آزمایشی ما نیویورک است. اگر عملکرد را بر حسب پذیرش اجتماعی بسنجیم، آنگاه مدل ما در تعمیم یا ترجمه داده‌های تست شکست خورده است. این تا اینجا ساده به نظر می رسد، اما در مورد واریانس و بایاس چطور؟واریانس میزان تغییر یک مدل در پاسخ به داده های آموزشی است. از آنجایی که ما به سادگی مجموعه آموزشی را حفظ می کنیم، مدل ما دارای واریانس بالایی است: به شدت به داده های آموزشی وابسته است. اگر کل آثار J.K. Rowling به جای شکسپیر مطالعه شود، مدل کاملا متفاوت خواهد بود. هنگامی که یک مدل با واریانس بالا بر روی یک مجموعه آزمایشی جدید اعمال می شود، نمی تواند عملکرد خوبی داشته باشد زیرا تمام آن بدون داده های آموزشی از بین می رود. مثل دانش آموزی است که مسائل کتاب درسی را حفظ کرده باشد، اما در مواجهه با مشکلات دنیای واقعی درمانده می شود.J. K. Rowlingبایاس طرف دیگر واریانس است زیرا نشان دهنده قدرت مفروضات ما در مورد داده هایمان است. در تلاش خود برای یادگیری زبان انگلیسی، هیچ فرضیه مدل اولیه ای ایجاد نکردیم و به این کار اعتماد کردیم تا همه چیز را در مورد این زبان به ما بیاموزد. این بایاس کم ممکن است مثبت به نظر برسد - چرا ما همیشه می خواهیم نسبت به داده های خود تعصب داشته باشیم؟ با این حال، ما همیشه باید نسبت به توانایی داده ها برای گفتن داستان کامل به ما شک داشته باشیم. هر فرآیند طبیعی نویز ایجاد می کند، و ما نمی توانیم مطمئن باشیم که داده های آموزشی ما تمام آن نویز را ضبط می کند. اغلب، ما باید برخی از مفروضات اولیه در مورد داده های خود داشته باشیم و فضایی را در مدل خود برای نوساناتی که در داده های آموزشی دیده نمی شود، بگذاریم. قبل از شروع خواندن، باید تصمیم می گرفتیم که آثار شکسپیر به تنهایی نمی توانند به معنای واقعی کلمه انگلیسی را به ما بیاموزند که باعث می شد در حفظ کردن داده های آموزشی محتاط باشیم.به طور خلاصه تا اینجا: بایاس به این اشاره دارد که چقدر داده ها را نادیده می گیریم، و واریانس به میزان وابسته بودن مدل ما به داده ها اشاره دارد. در هر مدل‌سازی، همیشه بین تعصب و واریانس یک مبادله وجود خواهد داشت و زمانی که مدل‌ها را می‌سازیم، سعی می‌کنیم بهترین تعادل را به دست آوریم. تعصب در مقابل واریانس برای هر مدلی، از ساده ترین تا پیچیده ترین، قابل استفاده است و برای دانشمندان داده مفهومی حیاتی است که باید درک شود!دیدیم که مدلی که بیش از حد مناسب است، واریانس بالا و بایاس کم دارد. در مورد معکوس چطور: واریانس کم و بایاس زیاد؟ این به عنوانunderfitting شناخته می‌شود: به جای اینکه داده‌های آموزشی را خیلی دقیق دنبال کند، مدلی که کمتر برازش می‌کند، درس‌های داده‌های آموزشی را نادیده می‌گیرد و نمی‌تواند رابطه اساسی بین ورودی‌ها و خروجی‌ها را بیاموزد.بیایید در مورد این با توجه به مثال خود فکر کنیم. با آموختن از تلاش قبلی خود برای ساختن مدلی از زبان انگلیسی، تصمیم گرفتیم پیش از موعد چند فرض در مورد مدل داشته باشیم. ما همچنین داده های آموزشی خود را تغییر می دهیم و تمام قسمت های نمایش دوستان را تماشا می کنیم تا به خودمان انگلیسی آموزش دهیم. برای جلوگیری از تکرار اشتباهاتمان از اولین تلاش، پیش از موعد فرض می‌کنیم که فقط جملاتی که با رایج‌ترین کلمات در زبان شروع می‌شوند  the, be, to, of, و a  مهم هستند. وقتی مطالعه می کنیم، به جملات دیگر توجه نمی کنیم، مطمئن هستیم که مدل بهتری خواهیم ساخت.پس از یک دوره طولانی آموزش، ما دوباره به خیابان های نیویورک سفر می کنیم. این بار کمی بهتر شدیم، اما باز هم صحبت‌هایمان به جایی نمی‌رسد و مجبوریم شکست را بپذیریم. در حالی که ما مقداری انگلیسی می‌دانیم و می‌توانیم تعداد محدودی جملات را درک کنیم، به دلیل تعصبمان در مورد داده‌های آموزشی نتوانستیم ساختار اساسی زبان را یاد بگیریم. مدل از واریانس بالا رنج نمی برد، اما ما از تلاش اولیه خود بیش از حد اصلاح شدیم و آن را کم کردیم!New York Cityچه می توانیم بکنیم؟ ما به داده ها توجه جدی داشتیم و بیش از حد مناسب هستیم. ما داده ها را نادیده گرفتیم و کمتر از آن استفاده کردیم. باید راهی برای یافتن تعادل بهینه وجود داشته باشد! خوشبختانه، یک راه حل ثابت در علم داده به نام اعتبار سنجی وجود دارد. در مثال ما فقط از یک مجموعه آموزشی و یک مجموعه تست استفاده کردیم. این بدان معنی بود که ما نمی توانستیم از قبل بدانیم مدل ما در دنیای واقعی چگونه عمل می کند. در حالت ایده‌آل، ما یک مجموعه «پیش‌آزمون» برای ارزیابی مدل خود و ایجاد بهبود قبل از آزمون واقعی خواهیم داشت. این &quot;پیش آزمون&quot; به عنوان یک مجموعه اعتبار سنجی شناخته می شود و بخش مهمی از توسعه مدل است.دو شکست ما در یادگیری زبان انگلیسی ما را بسیار عاقل تر کرده است و اکنون تصمیم داریم از یک مجموعه اعتبار سنجی استفاده کنیم. ما هم از آثار شکسپیر و هم از نمایش دوستان استفاده می‌کنیم، زیرا آموخته‌ایم که داده‌های بیشتر تقریباً همیشه یک مدل را بهبود می‌بخشد. تفاوت این بار این است که بعد از آموزش و قبل از اینکه به خیابان برویم، مدل خود را بر روی گروهی از دوستان ارزیابی می کنیم که هر هفته دور هم جمع می شوند تا درباره رویدادهای جاری به زبان انگلیسی صحبت کنند. هفته اول، ما تقریباً از مکالمه اخراج می شویم زیرا مدل زبان ما بسیار بد است. با این حال، این فقط مجموعه اعتبار سنجی است و هر بار که اشتباه می کنیم، می توانیم مدل خود را تنظیم کنیم. در نهایت، ما می توانیم در گفتگو با گروه خود را حفظ کرده و اعلام کنیم که برای مجموعه آزمایشی آماده هستیم. با جست و جوی دوباره در دنیای واقعی، بالاخره موفق شدیم! مدل ما اکنون برای ارتباط مناسب است زیرا ما یک عنصر حیاتی داریم، مجموعه اعتبارسنجی برای توسعه و بهینه سازی مدل.این مثال لزوما ساده شده است. در مدل‌های علم داده، از مجموعه‌های اعتبارسنجی متعددی استفاده می‌کنیم، زیرا در غیر این صورت در نهایت به مجموعه اعتبارسنجی بیش از حد برازش می‌کنیم! این مورد از طریق اعتبارسنجی متقابل بررسی می شود، جایی که داده های آموزشی را به زیر مجموعه های مختلف تقسیم می کنیم، یا اگر داده های زیادی داریم می توانیم از مجموعه های اعتبار سنجی متعدد استفاده کنیم. این مثال مفهومی، تمام جنبه های مسئله را پوشش می دهد. حالا وقتی در مورد overfitting در مقابل underfitting و bias در مقابل variance می شنوید، یک چارچوب مفهومی برای درک مشکل و نحوه رفع آن دارید!با توضیح مفاهیم با مثال های دنیای واقعی، می توانیم آنها را در متن قرار دهیم. اگر چارچوب را درک کنیم، می‌توانیم با استفاده از تکنیک‌های مربوط به مسائل، جزئیات را پر کنیم. بنابراین اگر پشتوانه محکم تری می خواهید، آن را بررسی کنید. تا آن زمان، شما خوانندگان عزیز موفق باشید!منابع:https://towardsdatascience.com/overfitting-vs-underfitting-a-complete-example-d05dd7e19765https://towardsdatascience.com/overfitting-vs-underfitting-a-conceptual-explanation-d94ee20ca7f9منابع تصاویر:https://rafieienglishclinic.com/storage/images/WAAoyfHbhU7pQmb1cAKYZYnirreGwY9fXTELXmZI.jpghttps://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Shakespeare.jpg/220px-Shakespeare.jpghttps://jangal.com/api/ui/image/watermark?path=/uploads/author/JK-Rowling.jpg&amp;etype=authorhttps://media.architecturaldigest.com/photos/5da74823d599ec0008227ea8/16:9/w_2560%2Cc_limit/GettyImages-946087016.jpg</description>
                <category>mohaddeseh eslahi</category>
                <author>mohaddeseh eslahi</author>
                <pubDate>Fri, 14 Jan 2022 01:33:46 +0330</pubDate>
            </item>
                    <item>
                <title>NBDT: NEURAL-BACKED DECISION TREE</title>
                <link>https://virgool.io/@mohaddeseh.eslahiii/nbdt-neural-backed-decision-tree-ylvgfiazcgwg</link>
                <description>درخت تصمیم با پشتوانه عصبیخلاصه مقاله https://paperswithcode.com/paper/nbdt-neural-backed-decision-treesچکیدهبرنامه های کاربردی یادگیری ماشینی مانند امور مالی و پزشکی نیاز به پیش بینی های دقیق و قابل توجیه دارند و اکثر روش های یادگیری عمیق را از استفاده منع می کنند. در پاسخ، کار قبلی درخت‌های تصمیم‌گیری را با یادگیری عمیق ترکیب می‌کند و مدل‌هایی را به دست می‌دهد که (1) تفسیرپذیری را فدای دقت یا (2) فدای دقت برای تفسیرپذیری می‌کنند. ما با بهبود مشترک دقت و تفسیرپذیری با استفاده از درختان تصمیم با پشتوانه عصبی (NBDT) از این معضل چشم پوشی می کنیم. NBDTها لایه خطی نهایی یک شبکه عصبی را با یک توالی متفاوت از تصمیمات و یک ضرر جایگزین جایگزین می کنند. این مدل را وادار به یادگیری مفاهیم سطح بالا می کند و اتکا به تصمیمات بسیار نامطمئن را کاهش می دهد و دقت (1) را به همراه دارد: NBDT ها مطابق یا بهتر از شبکه های عصبی مدرن در CIFAR، ImageNet عمل می کنند و تا 16% بهتر به کلاس های دیده نشده تعمیم می یابند. علاوه بر این، از دست دادن جایگزین ما دقت مدل اصلی را تا 2٪ بهبود می بخشد. NBDTها همچنین (2) قابلیت تفسیر را دارند: بهبود اعتماد انسانی با شناسایی واضح اشتباهات مدل و کمک به اشکال زدایی مجموعه داده ها. شکل 1: درخت تصمیم سخت و نرمشکل A : هر گره ، گره فرزند را با بزرگترین محصول داخلی انتخاب می کند و بعد از آن گره را بازدید می کند. این کار را تا رسیدن به یک برگ ادامه دهید.شکلB: نوع &quot;نرم&quot; است، که در آن هر گره به سادگی احتمالات را به عنوان محصولات داخلی نرمال شده برمی گرداند. هر فرزند برای هر برگ، احتمال مسیر آن به ریشه را محاسبه کنید. برگ را با بیشترین احتمال انتخاب کنید.شکل c : فرض کنید w4 کلاس صحیح است. با استنتاج سخت، اشتباه در ریشه (قرمز) غیر قابل جبران است  با این حال، با استنتاج نرم، تصمیمات بسیار نامطمئن در ریشه و در w2 جایگزین می شوند.با تصمیم بسیار مطمئن در w3 (سبز). این بدان معناست که مدل با وجود اشتباه هنوز می تواند w4 را به درستی انتخاب کند.در ریشه به طور خلاصه، استنتاج نرم می تواند اشتباهات را در تصمیم گیری های بسیار نامطمئن تحمل کند.درختان تصمیم با پشتوانه عصبی (NBDTs) لایه خطی نهایی شبکه را با درخت تصمیم جایگزین می کنند.برخلاف درخت های تصمیم گیری کلاسیک یا بسیاری از طبقه بندی کننده های سلسله مراتبی، NBDT ها از احتمالات مسیر برای تحمل تصمیمات میانی بسیار نامطمئن، ایجاد یک سلسله مراتب از قبل برای کاهش بیش‌ برازندگی و تمرین با کاهش سلسله مراتبی برای یادگیری بهتر تصمیمات سطح بالاشکل 2: ایجاد سلسله مراتب القا شدهمرحله A. وزنه های نهایی یک مدل از پیش آموزش دیده را به طور کامل بارگذاری کنید.لایه متصل، با ماتریس وزنW ∈ R^D*Kمرحله B. ردیف های wk ∈ W را بردارید و برای هر برگ نرمال کنید.وزن گره به عنوان مثال، w1 قرمز در A به برگ قرمز در B اختصاص داده شده است.مرحله C. هر جفت برگ را به طور میانگین محاسبه کنید.گره هایی برای وزن والدین به عنوان مثال، w1 و w2 (قرمز و بنفش) در B به طور میانگین به w5 (آبی) درCمرحله D. برای هر جد، میانگین وزن گره برگ در زیردرخت آن را محاسبه کنید. این میانگین وزن اجداد است.در اینجا، جد ریشه است، بنابراین وزن آن میانگین وزن های برگ w1، w2، w3، w4 است.تجزیه و تحلیل: شناسایی برچسب های معیوب مجموعه دادهانواع مختلفی از برچسب های مبهم وجود دارد (شکل 5) که هر کدام می تواند به عملکرد مدل آسیب برساندبرای یک مجموعه داده طبقه بندی تصویر مانند ImageNet. برای یافتن این تصاویر از آنتروپی در NBDT استفاده می کنیمشکل 5: انواع برچسب های مبهم. همه این نمونه ها دارای برچسب های مبهم هستند. با NBDT (بالا)،قاعده تصمیم گیری تصمیم گیری بین طبقات به همان اندازه قابل قبول، قطعیت پایینی دارد (قرمز، 30-50٪). همه تصمیمات دیگر قوانین دارای اطمینان بالایی هستند (آبی، 96٪ +). کنار هم قرار گرفتن قواعد تصمیم گیری با قطعیت بالا و پایین باعث می شود برچسب های مبهم به راحتی قابل تشخیص هستند. در مقابل، ResNet18 (پایین) هنوز یک کلاس را با احتمال زیاد انتخاب می کند.(سمت چپ) یک مثال افراطی از &quot;sug&quot; که ممکن است به طور منطقی به دو کلاس تعلق داشته باشد. (راست) تصویر حاوی دو حیوانات از طبقات مختلفشکل 8: نمونه های حداکثر شباهت. ما دو مدل آموزش دیده را اجرا می کنیم که یکی با درخت آموزش داده شده استاز دست دادن نظارت (NBDT) و یکی بدون از دست دادن نظارت درختی (ResNet18). ما سلسله مراتب القایی را محاسبه می کنیماستفاده از هر دو مدل برای یافتن نمونه‌هایی که شبیه‌ترین نمونه‌ها به مفاهیم حیوانات و وسایل نقلیه موتوری است. هر ردیف نشان دهنده یک گره داخلی، و حاشیه های قرمز، تصاویری را نشان می دهد که شامل کلاس های CIFAR10 هستند. منبع: https://paperswithcode.comhttps://paperswithcode.com/paper/nbdt-neural-backed-decision-trees</description>
                <category>mohaddeseh eslahi</category>
                <author>mohaddeseh eslahi</author>
                <pubDate>Fri, 07 Jan 2022 17:42:15 +0330</pubDate>
            </item>
                    <item>
                <title>Cross-Validation(CV)</title>
                <link>https://virgool.io/@mohaddeseh.eslahiii/cross-validationcv-iipuxrkyok39</link>
                <description>اعتبار سنجی متقابل (Cross-Validation) در یادگیری ماشین: چگونه آن را به درستی انجام دهیم 10 دقیقه زمان خواندننویسنده: ولادیمیر لیاشنکوبه روز شده در 12 نوامبر 2021ترجمه :محدثه اصلاحیدر یادگیری ماشین کلیات بخشی یا تعمیم معمولا به توانایی های یک الگوریتم جهت موثر بودن در ورودی های مختلف اشاره دارد. به این معنی است که مدل یادگیری ماشین با کاهش عملکرد در ورودی های جدید با پراکندگی داده های آموزشی مواجه نمی شود.برای انسان کلیات بخشی موجودات طبیعی ترین چیز ممکن است.ما میتونیم یه حشره رو طبقه بندی کنیم. برای مثال ما قطعا سگ را می شناسیم حتی اگر قبلا این نژاد و ندیده باشیم با این وجود ممکنه برای یک مدل یادگیری ماشین کاملا یک چالش باشد.به همین دلیل چک کردن توانایی الگوریتم برای کلیات بخشی موجودات یک کار مهم در ساختار مدل است که به توجه زیادی احتیاج دارد.برای این کار از اعتبارسنجی متقابل (Cross-Validation)استفاده میکنیم.· در این مقاله به موارد زیر میپردازیم:اعتبارسنجی متقابل چیست: تعریف / هدف از استفاده و تکنیک های آنتکنیک های مختلف (CV) Cross-Validation :Hold-outK-foldsLeave-one-outLeave-p-outStratified K-foldsRepeated K-foldsNested K-foldsComplete CVنحوه استفاده از این تکنیک ها :کتابخانه پایتون(sklearn)اعتبارسنجی متقابل در یادگیری ماشین: کتابخانه های sklearn, CatBoostاعتبار متقابل در یادگیری عمیقKeras, PyTorch, MxNet :بهترین روش ها و نکات : سری زمانی /پزشکی و داده های مالی / تصاویرCross-Validation اعتبارسنجی متقابل تکنیکی برای ارزیابی یک مدل یادگیری ماشین و آزمایش عملکرد آن است.معمولا cv در کارهای کاربردی ماشین لرنینگ استفاده میشود این به مقایسه و انتخاب یک مدل مناسب برای مسئله مدل‌سازی پیش‌بینی‌کننده خاص کمک می‌کند.درک CV آسان است، پیاده‌سازی آن آسان است، ونسبت به سایر روش های مورد استفاده برای شمارش امتیازهای کارایی مدل تعصب کمتری دارد همه اینها اعتبارسنجی متقابل را به ابزاری قدرتمند برای انتخاب بهترین مدل برای کار خاص تبدیل می کندتکنیک های مختلفی وجود دارد که ممکن است برای اعتبارسنجی متقابل یک مدل استفاده شود. با این حال، همه آنها یک الگوریتم مشابه دارند:1. مجموعه داده را به دو بخش تقسیم کنید: یکی برای آموزش، دیگری برای آزمایش2. مدل را روی مجموعه آموزشی آموزش دهید3. اعتبار مدل را در مجموعه آزمایشی تأیید کنید4. مرحله 1 تا 3 را چند بارتکرار کنید این عدد به روش اعتبار سنجی که استفاده می کنید بستگی داردهمانطور که می دانید، تکنیک های CVزیادی وجود دارد. برخی از آنها معمولا استفاده می شوند، برخی دیگر فقط در تئوری کار می کنند. بیایید روش‌های اعتبارسنجی متقابل را که در این مقاله پوشش داده خواهد شد، ببینیم. Hold-out K-foldsLeave-one-outLeave-p-outStratified K-foldsRepeated K-foldsNested K-foldsCompleteHold-outساده ترین و رایج ترین تکنیک است. شما ممکن است درباره این روش ندانید اما مطمئناً هر روز از آن استفاده می کنید.الگوریتم تکنیک Hold-out:1. مجموعه داده را به دو بخش تقسیم کنید: مجموعه آموزشی و مجموعه تست. معمولاً 80 درصد مجموعه داده به مجموعه آموزشی و 20 درصد به مجموعه آزمایشی می‌رود، اما شما می توانید تقسیم بندی بهتری را اتخاب کنید.2. مدل را روی مجموعه آموزشی آموزش دهید3. در مجموعه آزمایشی اعتبار سنجی کنید4. نتیجه اعتبارسنجی را ذخیره کنیدهمینهما معمولاً از روش نگهدارنده در مجموعه داده‌های بزرگ استفاده می‌کنیم، زیرا فقط یک بار نیاز به آموزش مدل دارد.پیاده سازی آن واقعا آسان است،برای مثال شما میتوانید از sklearn.model_selection.train_test_split. استفاده کنیدبا این حال hold-out یک نقطه ضعف بزرگ دارد به عنوان مثال، مجموعه داده ای که از نظر پراکندگی کاملا یکنواخت نیست اگرچه ممکن است پس از تقسیم در یک نقطه ناهنجار قرار بگیریمبه عنوان مثال، مجموعه آموزشی مجموعه تست را نشان نخواهد داد. هر دو مجموعه تمرین و تست ممکن است بسیار متفاوت باشند، یکی از آنها ممکن است آسان تر یا سخت تر باشد. علاوه بر این، این واقعیت که ما مدل خود را فقط یک بار آزمایش می کنیم ممکن است یک گلوگاه(bottleneck) باشدبا توجه به دلایل ذکر شده در بالا، ممکن است نتیجه به دست آمده با تکنیک Hold-out نادرست در نظر گرفته شود.k-Fold تکنیکی است که معایب روش Hold-out را به حداقل می رساند. k-Fold روش جدیدی را برای تقسیم مجموعه داده معرفی می کند که به غلبه بر &quot; تست فقط یک بار گلوگاه &quot; کمک می کند.الگوریتم تکنیک k-Fold:1. تعدادی عدد از folds – k انتخاب کنید معمولاk 5 یا 10 است اما شما می توانید هر عددی را انتخاب کنید که کمتر از طول مجموعه داده باشد.2. مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید (به آنها foldsگفته می شود)3. k – 1 folds انتخاب کنید که مجموعه آموزشی خواهد بود. باقیمانده مجموعه آزمایشی خواهد بود4. مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار اعتبارسنجی متقابل، باید یک مدل جدید مستقل از مدل آموزش داده شده در تکرار قبلی آموزش دهید.5. در مجموعه آزمایشی اعتبار سنجی کنید6. نتیجه اعتبارسنجی را ذخیره کنید7. مراحل را 3 تا 6 بار تکرار کنید.8. هربار از باقیمانده ها به عنوان مجموعه تست استفاده کنید در پایان، شما باید مدل را روی هر دسته ای که دارید اعتبارسنجی کرده باشید.برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید را محاسبه کنید.برای اجرای k-fold cross validation میتواند از sklearn.model_selection.KFold استفاده کنید.به طور کلی همیشه بهتر است به جای Hold-out از تکنیک k-Foldاستفاده کنیم. از آنجایی که آموزش و تست بر روی چندین بخش مختلف مجموعه داده انجام می شود، در مقایسه دو روش، k-Foldنتیجه پایدارتر و قابل اعتمادتری ایجاد میکند. اگر تعداد fold را افزایش دهیم تا مدل را روی بسیاری از زیر مجموعه‌های مختلف داده آزمایش کنیم، می‌توانیم امتیاز نهایی را قوی‌تر کنیم.با این حال، روش k-Fold یک نقطه ضعف دارد. افزایش kمنجر به آموزش مدل های بیشتر می شود و فرآیند آموزش ممکن است واقعاً گران و زمان بر باشد.Leave-one-outروش leave one out یا LOOCV یک مورد شدید یا افراط شده از K-Fold CV است. تصور کنید که k برابر با n باشد که n تعداد نمونه های دیتاست است. چنین k-Fold ای معادل تکنیک Leave-one-outخواهد بودالگوریتم تکنیک LOOVCV:1. یک نمونه از مجموعه داده را به عنوان داده تست خود انتخاب کنید.2. در این مرحلهN-1 نمونه باقی مانده داده آموزش ما خواهد بود.3. مدل را روی مجموعه آموزشی آموزش دهید، در هر تکرار، یک مدل جدید باید آموزش داده شود4. روی داده تست ارزیابی را انجام دهید5. نتیجه ارزیابی را ذخیره کنید6. مراحل1 تا 5، n بار تکرار کنید (برای n نمونه، nمجموعه آموزشی و تست متفاوت داریم)7. برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 5 به دست آوردید را محاسبه کنید.کتابخانه sklearnبرای روش LOOCV هم یک روش دارد که میتوان آن را در model_selection، در بخش sklearn.model_selection.LeaveOneOutپیدا کرد.بزرگترین مزیت Leave-one-out cross validation این است که داده زیادی را هدر نمی دهد. ما فقط از یک نمونه از کل مجموعه داده به عنوان مجموعه تست استفاده می کنیم، در حالی که بقیه نمونه ها متعلق به مجموعه آموزشی است. اما در مقایسه با k-Fold CV، LOOCV نیاز به ساخت n مدل به جای k مدل دارد، و می دانیم که n که مخفف تعداد نمونه در مجموعه داده است. بسیار بیشتر از k است. این بدان معناست که LOOCV از نظر محاسباتی گرانتر از k-Fold است، ممکن است زمان زیادی طول بکشد تا اعتبار سنجی متقابل با استفاد از روش LOOCVانجام شود. همچنین، جامعه علوم داده یک قاعده کلی بر اساس شواهد تجربی و تحقیقات مختلف دارد که اعتبارسنجی متقابل 5 یا 10 برابر باید بر LOOCV ترجیح داده شود.Leave-p-outروش leave-p-out cross validation یا LPOCVمشابه LOOCV است زیرا pنمونه را به عنوان مجموعه تست و باقی را به عنوان مجموعه آموزشی در نظر میگیرد، هر آنچه که برای LOOCVگفته شد برای LPOCV نیز صادق است. با این حال، شایان ذکر است که بر خلاف LOOCV و k-Fold ، در LPOCV اگر p بیشتر از 1 باشد مجموعه داده های تست همپوشانی خواهند داشت.الگوریتم تکنیک LPOCV:1. ابتدا P نمونه از مجموعه داده انتخاب کرده و به عنوان مجموعه داده تست در نظر میگیریم1. 2.سپس N-p نمونه باقی مانده مجموعه داده آموزش خواهند بود2. مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود3. روی مجموعه داده های تست مدل را ارزیابی کنید4. نتیجه ارزیابی را ذخیره کنید5. مراحل 2 تا 5 را به تعداد Cpnتکرار کنید6. برای بدست آوردن امتیاز نهایی میانگین نتایجی که در مرحله 5 بدست آوردید را محاسبه کنیدمیتوانید Leave-p-out CV را با استفاده از sklearn.model_selection.LeavePOutاجرا کنیدروش LPOCVتمام معایب LOOCV را دارد، اما، با این وجود به اندازه LOOCV قوی است.Stratified k-Foldگاهی ممکن است با عدم توازن زیادی در مقدار هدف در مجموعه داده ها مواجه شویم به عنوان مثال در مجموعه داده های مربوط به قیمت ساعت‌های مچی، ممکن است تعداد بیشتری از ساعت‌های مچی قیمت بالایی داشته باشند در مورد طبقه‌بندی، در مجموعه داده‌های گربه‌ها و سگ‌ها ممکن است تغییر زیادی به سمت طبقه سگ وجود داشته باشد.تکنیک K-Fold طبقه بندی شده نوعی از تکنیک استاندارد K-Fold CV است که به گونه ای طراحی شده است که در چنین مواردی از عدم تعادل هدف موثر است، این روش به صورت زیر عمل می کند:تکنیک k-foldطبقه بندی شده مجموعه داده را به kدسته تقسیم می کند به طوری که هر دسته تقریباً دارای درصد مشابهی از نمونه های هر کلاس هدف به عنوان مجموعه کامل است.در مورد رگرسیون، Stratified k-Foldاطمینان حاصل می کند که میانگین مقدار هدف تقریباً در همه دسته ها برابر است.الگوریتم تکنیک stratified k-fold:1. یک عدد برای k انتخاب کنید2. مجموعه داده را به k دسته تقسیم کنید، هر دسته باید تقریباً دارای درصد مشابهی از نمونه‌های هر کلاس هدف باشد سپس K-1دسته را به عنوان مجموعه  آموزشی انتخاب کنید و باقی مانده مجموعه آموزشی را به عنوان مجموعه داده تست در نظر بگیرید3. مدل را بر روی مجموعه داده های آموزشی، آموزش دهید4. روی مجموعه داده های تست مدل را ارزیابی کنید5. نتیجه ارزیابی را ذخیره کنید6. مراحل 3 تا 6 را k بار تکرار کنید، هر بار از دسته باقی مانده به عنوان مجموعه تست استفاده کنید7. در پایان، شما باید مدل را روی هر دسته ای که دارید اعتبارسنجی کرده باشید8. برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید را محاسبه کنیدهمانطور که ممکن است متوجه شده باشید، الگوریتم تکنیک Stratified k-Fold مشابه K-Folds استاندارد است و شما نیازی به کدنویسی اضافی ندارید زیرا این روش همه کارهای لازم را برای شما انجام می دهد.روش Stratified k-Fold هم یک sklearn - sklearn.model_selection.StratifiedKFold داردتمام موارد ذکر شده در بالا در مورد K-Fold CV برای تکنیک Stratified k-Fold نیز صادق است. هنگام انتخاب بین روش های مختلف CV، مطمئن شوید که از روش مناسب استفاده می کنید. به عنوان مثال، ممکن است فکر کنید که مدل شما عملکرد بدی دارد، فقط به این دلیل که از K-Fold CV برای اعتبارسنجی مدلی استفاده می‌کنید که روی مجموعه داده با عدم تعادل در کلاس ها آموزش داده شده است. برای جلوگیری از آن، همیشه باید یک تجزیه و تحلیل مناسب روی داده های خود انجام دهید.Repeated k-Foldروش Repeated k-Fold cross-validation یا Repeated random sub-samplings CVاحتمالا قوی ترین تکنیک CV در این مطلب است. در این روش kتعداد دسته ها نیست بلکه تعداد دفعاتی است که ما مدل را آموزش میدهیم.ایده کلی این است که در هر تکرار، نمونه‌هایی را به‌طور تصادفی از سرتاسر مجموعه داده به عنوان مجموعه تست انتخاب می‌کنیم. به عنوان مثال، اگر تصمیم بگیریم که 20٪ از مجموعه داده ها مجموعه تست ما باشد، 20٪ نمونه به طور تصادفی انتخاب می شوند و 80٪ بقیه به مجموعه آموزشی تبدیل می شوند.الگوریتم تکنیک Repeated k-Fold:1. 1.ابتدا K را انتخاب کنید (تعداد دفعاتی که مدل آموزش می بیند)2. تعدادی نمونه را به عنوان مجموعه آموزشی انتخاب کنید3. مجموعه داده را تقسیم کنید4. مدل را روی مجموعه داده های آموزشی، آموزش دهید، در هر تکرار اعتبارسنجی متقابل باید یک مدل جدید آموزش داده شود5. روی مجموعه داده های تست مدل را ارزیابی کنید6. نتیجه ارزیابی را ذخیره کنید7. مراحل 3 تا 6 را k مرتبه تکرار کنید8. برای بدست آوردن امتیاز نهایی میانگین نتایجی که در مرحله 6 به دست آوردید را محاسبه کنیدروش Repeated k-fold مزایای روشنی نسبت به k-fold استاندارد دارد، اولاٌ، نسبت تقسیم داده تست و آموزش به تعداد تکرارها بستگی ندارد. دوماٌ، ما حتی می توانیم نسبت های منحصر به فردی را برای هر تکرار تنظیم کنیم. سوماٌ، انتخاب تصادفی نمونه‌ها از مجموعه داده‌ها، Repeated k-Fold را برای سوگیری انتخاب قوی‌تر می‌کند.با این حال، برخی از معایب وجود دارد. k-Fold CV تضمین می‌کند که مدل روی همه نمونه‌ها آزمایش می‌شود، در حالی که repeated k-fold بر اساس تصادفی‌سازی است که به این معنی است که برخی از نمونه‌ها ممکن است هرگز برای قرار گرفتن در مجموعه آزمایش انتخاب نشوند و همزمان ممکن است برخی از نمونه ها چندین بار انتخاب شوند.کتابخانه Sklearn به شما در پیاده سازی Repeated k-Fold CV کمک می کند. فقط نیاز است از sklearn.model_selection.RepeatedKFoldاستفاده کنید.در اجرای sklearn این تکنیک باید تعداد دسته هایی که می خواهید داشته باشید (n_splits) و تعداد دفعاتی که تقسیم انجام می شود (n_repeats) را تنظیم کنید. بدین ترتیب تضمین میشود که در هر تکرار دسته های مختلفی خواهید داشت.Nested k-Foldبرخلاف سایر تکنیک‌های CV که برای ارزیابی کیفیت یک الگوریتم طراحی شده‌اند، Nested k-Fold CV محبوب‌ترین راه برای تنظیم پارامترهای یک الگوریتم است. تصور کنید که ما یک پارامتر p داریم که معمولاً به الگوریتم پایه ای که ما برای اعتبارسنجی متقابل انتخاب می کنیم بستگی دارد. به عنوان مثال، برای رگرسیون لجستیک، ممکن است پارامتر جریمه را انتخاب کنیم که برای تعیین norm مورد استفاده در جریمه استفاده می شود.الگوریتم تکنیک Nested k-Fold:1. ابتدا K را انتخاب کنید. یک عدد از دسته به عنوان مثال بیایید فرض کنیم ما عدد 10 رو انتخاب کردیم2. پارامتر p را انتخاب کنید فرض کنید الگوریتم ما logistic regression است و p پارامتر penalty و برابر باp = {‘l1’, ‘l2’, ‘elasticnet’, ‘none’} است3. مجموعه داده ها را به 10 دسته تقسیم کنید و یکی از آن ها را برای آزمایش رزرو کنید4. یکی از دسته ها را برای اعتبارسنجی (validation) رزرو کنید5. برای هر مقدار p روی 8 دسته آموزشی باقیمانده آموزش را انجام دهید و روی دسته اعتبارسنجی آن را ارزیابی کنید. اکنون 4 اندازه گیری دارید6. مراحل 4 تا 5 را 9 بار تکرار کنید. دسته آموزش و اعتبار سنجی را با هم عوض کنید، هم اکنون 9*4 اندازه گیری دارید7. حال P را طوری انتخاب کنید که میانگین خطای تمرین را بیش از 9 برابر به حداقل برساند. از آن pبرای ارزیابی روی مجموعه تست استفاده کنید8. از مرحله 2، 10 بار مراحل را تکرار کنید و از هر دسته به نوبت به عنوان دسته تست استفاده کنید9. میانگین و انحراف معیار اندازه گیری شده روی 10 دسته تست را ذخیره کنید10. الگوریتمی که بهترین عملکرد را دارد، الگوریتمی بود که بهترین میانگین در میان این 10 دسته تست را داشتاین تکنیک از نظر محاسباتی گران تمام میشود زیرا در طول مراحل 1 تا 10 تعداد زیادی مدل باید آموزش و ارزیابی شوند. با این حال، Nested k-Fold CVمعمولا استفاده می شود و حتی ممکن است در چندین کار یادگیری ماشین واقعاً مؤثر باشد.متأسفانه، هیچ روش تعریف شده ای در sklearn وجود ندارد که بتواند Nested k-Fold را برای شما انجام دهد. این همان لحظه ای است که مجبورید در گوگل درباره پیاده سازی آن توسط فردی دیگر سرچ کنید و یا خودتان آن را پیاده سازی کنیدComplete Cross-Validationروش Complete Cross-Validation کم استفاده ترین تکنیک CV است. ایده کلی این روش این است که ما یک عدد k (طول مجموعه آموزشی) را انتخاب می کنیم و روی هر تقسیم ممکن حاوی k نمونه در مجموعه آموزشی اعتبار سنجی می کنیم. مقدار آن تقسیم‌ها را می‌توان به صورت Cnkمحاسبه کرد که nطول مجموعه داده است. اگر kبالاتر از 2 باشد، باید مدل خود را چندین بار آموزش دهیم و همانطور که قبلاً متوجه شدیم یک فرایند گران قیمت و با محاسباتی زیاد است.به همین دلیل است که Complete Cross-Validation در تحقیقات نظری و یا در صورت وجود فرمول موثری که به حداقل رساندن محاسبات کمک کند، استفاده می شود.الگوریتم تکنیک Complete Cross-Validation:1. ابتدا K را انتخاب کنید -طول مجموعه اموزشی2. مجموعه داده ها را تقسیم کنید3. روی مجموعه آموزشی، مدل را آموزش دهید4. روی مجموعه داده های تست مدل را ارزیابی کنید5. نتیجه ارزیابی را ذخیره کنید6. مراحل 2 تا 5 را به تعداد Cnkتکرار کنید7. برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 5 به دست آوردید را محاسبه کنیدCross-Validation in Machine Learningبیشتر تکنیک های اعتبار سنجی متقابل ذکر شده در بالا به طور گسترده در يادگيري ماشين استفاده می شوند. مهم است که بدانيد استفاده از تکنیک مناسب CV ميتواند در زمان شما صرفه جویی کند و به انتخاب بهترین مدل برای کار کمک کند. این بدان معناست که اولاً، بهتر است همیشه مدل را اعتبار سنجي متقابل کنید و دوماٌ باید یک روش CV را انتخاب کنید. بنابراین، دانستن مزایا و معایب تکنیک‌های اعتبارسنجی متقابل حیاتی است.شایان ذکر است که اگر می‌خواهید مدل را اعتبارسنجي متقابل کنید، همیشه باید دفترچه راهنمای مدل را بررسی کنید زیرا برخی از الگوریتم‌های ML، به عنوان مثال، CatBoost روش‌های CVداخلی خود را دارند. ممکن است آنها را مربوط به وظیفه ML خود بیابید و به جای روش های داخلی sklearn از آنها استفاده کنید.به طور کلی، همانطور که ممکن است متوجه شده باشید، بسیاری از تکنیک‌های CV دارای متود هايي در sklearnهستند. من به شدت توصیه می کنم از آنها استفاده کنید زیرا این روش ها برای کارهای پیچیده تر زمان زیادی را صرفه جویی می کنند.Cross-Validation in Deep Learningاعتبار سنجی متقابل در یادگیری عمیق (DL) ممکن است کمی مشکل باشد زیرا اکثر تکنیک های CV حداقل چند بار نیاز به آموزش مدل دارند.در یادگیری عمیق، معمولاً به دلیل هزینه‌های مرتبط با آموزش مدل‌های مختلف، از CV اجتناب کنید. به جای انجام k-Fold یا سایر تکنیک های CV، ممکن است از یک زیرمجموعه تصادفی از داده های آموزشی خود به عنوان نگهدارنده برای اهداف اعتبار سنجی استفاده کنید.به عنوان مثال، کتابخانه یادگیری عمیق Keras به شما امکان می دهد یکی از دو پارامتر را برای تابع fit که آموزش را انجام می دهد، ارسال کنید.1.درصدی از داده هایی که باید برای اعتبار سنجی نگهداری شوند(validation_split)2.تاپلی از (X, y) که باید برای اعتبارسنجی استفاده شود. این پارامتر validation_split را override میکند، به این معنی که شما می توانید تنها یکی از این پارامترها را در یک زمان استفاده کنید.(validation_data)همین رویکرد در آموزش های رسمی سایر فریمورک های DLمانند PyTorch و MxNet استفاده می شود. همچنین در این آموزش ها پیشنهاد می شود که مجموعه داده را به سه بخش تقسیم کنید: آموزش، اعتبار سنجی و آزمایش.1. آموزش – بخشی از مجموعه داده برای آموزش2. اعتبار سنجی - بخشی از مجموعه داده برای اعتبارسنجی در حین آموزش3. تست - بخشی از مجموعه داده برای اعتبار سنجی نهایی مدلبا این حال، اگر مجموعه داده کوچک است (شامل صدها نمونه) می توانید از اعتبارسنجی متقابل در وظایف DLاستفاده کنید. در این مورد، یادگیری یک مدل پیچیده ممکن است یک کار بی ربط باشد، بنابراین مطمئن شوید که کار را بیشتر پیچیده نکنید.بهترین روش ها و نکاتشایان ذکر است که گاهی اوقات انجام اعتبارسنجی متقابل ممکن است کمی مشکل باشد. به عنوان مثال، اشتباه منطقی هنگام تقسیم مجموعه داده بسیار آسان است که ممکن است منجر به یک CVغیرقابل اعتماد شود.نکاتی که ممکن است برای cross-validating مد نظر داشته باشید :1. هنگام تقسیم داده ها منطقی باشید (آیا روش تقسیم منطقی است)2. از روش CV مناسب استفاده کنید (آیا این روش برای مورد استفاده من قابل اجرا است)3. هنگام کار با سری های زمانی، گذشته را تأیید نکنید (به اولین نکته مراجعه کنید)4. هنگام کار با داده های پزشکی یا مالی، به یاد داشته باشید که به صورت شخصی تقسیم کنید. از داشتن داده برای یک نفر هم در آموزش و هم در مجموعه تست خودداری کنید زیرا ممکن است به عنوان نشت داده در نظر گرفته شود5. هنگام برش تکه‌ها از تصاویر بزرگ‌تر، به یاد داشته باشید که با شناسه تصویر بزرگ تقسیم کنیدالبته نکات از کابرد به کاربرد متفاوت است و پوشش همه آنها تقریبا غیرممکن است. به همین دلیل است که انجام یک تجزیه و تحلیل داده های اکتشافی جامد قبل از شروع اعتبارسنجی متقابل یک مدل همیشه بهترین روش استجمع بندی:اعتبار سنجی متقابل ابزار قدرتمندی است. هر دانشمند داده باید با آن آشنا باشد. در زندگی واقعی، شما نمی توانید پروژه ای را بدون cross-validation بر روی یک مدل به پایان برسانید.به نظر من بهترین تکنیک های CV، Nested k-Fold و k-Fold استاندارد هستند. من شخصاً از آنها در پروژه تشخیص تقلب استفاده کردم. K-Foldتودرتو و همچنین GridSeachCV به من کمک کرد تا پارامترهای مدل خود را تنظیم کنم. از طرف دیگر، k-Fold برای ارزیابی عملکرد مدل من استفاده شد.در این مقاله، ما متوجه شدیم که اعتبارسنجی متقابل چیست، چه تکنیک‌های CV در طبیعت وجود دارد و چگونه آنها را پیاده‌سازی کنیم. در آینده قطعاً الگوریتم های ML حتی بهتر از امروز عمل خواهند کرد. با این حال، اعتبار سنجی متقابل همیشه برای پشتیبان گیری از نتایج شما مورد نیاز است.امیدواریم با این اطلاعات، مشکلی در تنظیم CVبرای پروژه بعدی یادگیری ماشینی خود نخواهید داشت!منابع :https://www.geeksforgeeks.org/cross-validation-machine-learning/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>mohaddeseh eslahi</category>
                <author>mohaddeseh eslahi</author>
                <pubDate>Wed, 15 Dec 2021 15:26:51 +0330</pubDate>
            </item>
                    <item>
                <title>چرا یادگیری ماشین؟</title>
                <link>https://virgool.io/@mohaddeseh.eslahiii/%DA%86%D8%B1%D8%A7-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-rhxp3qfi8lcx</link>
                <description>سرگذشت هوش مصنوعی...آلن تورینگ یکی از تاثیرگذارترین افراد در حوزه هوش مصنوعی است و بسیاری مقاله‌ای که او در سال ۱۹۵۰ منتشر کرد را تولد هوش مصنوعی می‌دانند.آزمون تورینگ : هدف این آزمون بررسی هوشمندی ماشین بود.در این آزمون یک شخص به شکل غیر مستقیم با شخص دیگر و یک ماشین در ارتباط است و نمی داند کدامشان ماشین است. او از آنها سوالاتی می پرسد و اگر از روی جواب آنها نتواند شخص را از ماشین شخیص دهد می گوییم ماشین تست تورینگ قبول شده است.آزمون تورینگدر کتاب« هوش مصنوعی، یک رویکرد مدرن» دیدگاه‌های مختلف از دو بعد مورد بررسی قرار گرفته‌اند:· هوشمندی یا در رفتار است یا در تفکر· هوشمندی در انسان‌گونه بودن یا در منطقی بودن است.اگر همه حالات را در نظر بگیریم هوش مصنوعی چیزی است که:منطقی فکر کند.منطقی رفتار کند.مانند انسان فکر کند.مانند انسان رفتار کند.یادگیری ماشین همان هوش مصنوعی نیست!ویژگی‌های یادگیری ماشین: یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیمتغییر خود با دیدن داده‌های جدید است؛ یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر می‌دهد.یادگیری عمیقعمری بسیار کوتاه‌تر از یادگیری ماشین دارد.استفاده از شبکه‌های عصبی مصنوعی یکی از انواع روش‌های یادگیری ماشین است این شبکه‌ها از ساختار ذهن انسان الگوبرداری شده‌اند و ساختاری لایه لایه دارند.یادگیری عمیق می‌تواند الگوهای پیچیده‌ تری را در داده پیدا کند.هوش مصنوعی : توانایی ماشین برای تقلید از رفتار انسان و اتخاذ تصمیم هوشمندانه مانند انسانیادگیری ماشین: توانایی ماشین برای یادگیری بدون نیاز به برنامه نویسی اختصاصییادگیری عمیق: استفاده از شبکه عصبی مصنوعی مانند مغز انسان برای یادگیری مسائل مختلفموقعیت‌های شغلی مرتبط با یادگیری ماشینData Analystتحلیل‌گر داده  (Data Analyst) : معماری مناسب برای جمع آوری اطلاعات یک سازمان را بررسی می کند و پایگاه داده مناسب برای این کار را انتخاب می کند؛پس از آماده سازی و انتخاب قالب مناسب آنها را در پایگاه داده ای که طراحی کرده ذخیره می کند.سپس بعد از بررسی داده از داده ها اطلاعات مفید استخراج می کند که برای این کار باید اطلاعاتی در زمینه فعالیت های سازمان و اهداف آن داشته باشد.او نتایج را به شکل قابل فهم و ساده در اختیار افراد مختلف سازمان می گذارد.همچنین باید قدرت تحلیل بالا و دید نقادانه به مسائل داشته باشد.داشتن مهارت های برنامه نویسی برای تحلیل گر داده ضروری نمی باشد.Data Scientistدانشمند داده ( Data Scientist ) : نیازمند دانش آماری و ریاضیاتی و برنامه نویسی قوی تری نسبت به تحلیل گر داده است.همه اموری که تحلیل گر داده انجام می دهد،دانشمند داده هم می تواند انجام دهد علاوه بر آن باید با مفاهیم یادگیری ماشین و دانش برنامه نویسی آشنا باشد.دانشمند داده امور داده‌کاوی را معمولا با زبان‌های برنامه‌نویسی و کتابخانه‌های آن انجام می‌دهد ولی تحلیل‌گر از پلتفرم‌ها و نرم‌ افزار‌ها استفاده می‌کند. تحلیل‌گر با همه در ارتباط است و معمولا سوالات را دیگران برایش مطرح می‌کنند اما دانشمند داده خودش سوالات را طرح می‌کند، سوالاتی که در تصمیمات شرکت تاثیرگذار هستند.Data Engineerمهندس داده (Data Engineer) :می توان کار یک مهندس داده را با مفاهیم کلان‌ داده شرح داد یا روند رسیدن داده خام به دست مصرف‌ کنندگان داده را به او نسبت داد.او پس از مشورت با دیگر اعضای شرکت انتخاب می‌کند که چه داده‌ای از میان سیل داده تولیدی در اختیار شرکت قرار بگیرد. پس از انتخاب منابع داده، داده‌های منابع مختلف را یکپارچه می‌کند و برای نگهداری بهینه آن‌ها برنامه‌ریزی می‌کند.Machine Learning Engineerمهندس یادگیری ماشین  (Machine Learning Engineer) : نقطه تلاقی مهندسی نرم‌افزار و علم داده است. مانند مهندس داده در فرآیند رسیدن داده از محل تولید تا مدل نقش داشته و با ساختار‌ های داده و پیچیدگی‌های مرتبط با آن آشنایی دارد.دانش یادگیری ماشین برخلاف مهندس داده برای مهندس یادگیری ماشین الزامی است.او داده را تا رسیدن به مدل همراهی می‌کند، و مسئول رساندن خروجی به کاربر نهایی نیز هست.پس از انجام بررسی‌های لازم، مدل نظری را وارد فرآیند عملیاتی می‌کند. باید پیچیدگی‌های محاسباتی و حافظه‌ای را محاسبه کند و مدل طراحی شده توسط دانشمند داده را برای کار در مقیاس بزرگ آماده کند. وظایف او جنبه نظری و عملیاتی دارند.به این صورت که او باید دانش کاملی از الگوریتم‌ها و روش‌های یادگیری ماشین داشته باشد.هم قبل از استقرار مدل، آن را مورد بررسی و تحلیل قرار دهد و هم بر فرآیند عملیاتی ساختن آن و محاسبه پیچیدگی‌ها نظارت داشته باشد. سپس بعد از از استقرار، مسئول نظارت و رسیدگی به آن خواهد بود.داده و انواع آنداده‌ها عنصر محوری یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند.کلمات(زبان طبیعی)تشخیص گفتار،دسته‌بندی نوشتارها یا نظرات،پاسخ دادن به سوالاتتصویر(بینایی ماشین)تشخیص پلاک خودروها، تصاویر پزشکی اشعه ایکس، MRI یا سونوگرافیجداول بانک (قبول یا رد درخواست وام مشتری)،سیستم های توصیه گر(فروشگاه های اینترنتی)  انواع داده تا اینجا را داده‌های ساختار نیافته و نوع جدولی را داده ساختارمند می‌نامیم.داده‌های عددی( مثل سن فرد یا موجودی حساب او)  داده‌های دسته‌ای( مثل جنسیت یا شهر محل زندگی )سری زمانی: ماشین می‌تواند با دیدن تغییرات ویژگی مشخصی از یک داده در طول زمان، الگوی تغییرات آن را یاد بگیرد و به مسائل بر حسب زمان‌ ، در یک زمان مشخص پاسخ دهد( ارزش یک سهم در بورس، نوار قلب)مراحل انجام یادگیری ماشین  به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:1. یک الگوریتم (مدل) برای تصمیم‌گیری2. یک معیار برای امتیازدهی اینکه عملکرد مدل چقدر خوب بوده3. بررسی خودکار کیفیت مدل بر اساس امتیاز4. یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدلانواع یادگیری ماشینیادگیری با نظارت نمونه‌هایی که دارای برچسب هستند شامل دو دسته:طبقه‌بندی (classification) :پیدا کردن برچسب به صورت متغیری گسسته (مانند مرد یا زن بودن)می‌باشد.رگرسیون (regression): تخمین مقدار یک ویژگی به صورت متغیری پیوسته(مانند قیمت و دما) برای یک نمونه می‌باشد. این الگوریتم‌ها برای پیش‌بینی روند بازار، قیمت خانه و ... به کار می‌روند.یادگیری بی‌نظارت  نمونه های بدون برچسب هستند. به طور کلی به سه دسته تقسیم‌بندی می‌شوند:خوشه‌بندی :(clustering)در این گام باید معیاری برای سنجش فاصله بین داده‌ها انتخاب کنیم.کاهش ابعاد (dimensionality reduction):کاهش دادن تعداد ویژگی‌های آموزش مدل یادگیری ماشیناستخراج قانون وابستگی (association rule mining)یادگیری تقویتی عامل هوشمند، طبق حالت جاری،حرکتی انجام می‌دهد و بر اساس آن حرکت بازخورد هایی مثبت یا منفی دریافت می کند و عامل با این بازخورد خط ‌مشی خود را تغییر می‌دهد.این یادگیری وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد.سنجش یادگیری برای بررسی دقت مدل آموزش داده شده باید پاسخ‌های آن را روی داده‌ی جدیدی تست کرد. با تعداد زیادی سوال مختلف و سپس محاسبه‌ی دقت مدل روی تمامی آن‌ها، به همین دلیل معمولا تعدادی از دادگان برای انجام ارزیابی کنار گذاشته می‌شوند (دادگان آزمایش((test)  و باقی آن‌ها برای آموزش (دادگان آموزش (train) )مدل استفاده می‌شود.زبان ها و ابزار هاپایتون برای علم داده پایتون به خصوص در صنعت از همه پر‌کاربرد‌ تر است زیرا: پایتون کتابخانه‌ها و ابزار‌هایی قوی و متعدد دارد کدهای پایتون قابل فهم است جامعه‌ای بزرگ از توسعه‌دهندگانچند پارادایمی بودنپایتون در مقابل Rپایتون و R  دو زبان پرطرفدار در حوزه‌ی علم داده هستند. اشتراکات زیادی از جمله رایگان و متن باز بودن بین دو زبان وجود دارد. مستندات هر دو زبان با کمک کاربران نوشته‌ شده است و هر دو اجتماعات فعالی در اینترنت دارند. اما هرکدام برتری‌هایی نسبت به دیگری دارند.پایتون کتابخانه‌های متعدد و قوی‌ای دارد که در بالا به آنها اشاره شده است.تقریبا هر ۱۸ ماه یک بار نسخه‌ی جدید و با ثباتی از پایتون عرضه می‌شود.پایتون دارای نوشتار ساده است.زبان R توانایی کشیدن نمودارهای با کیفیت و متنوعی را دارد.زبان R به سرعت در حال توسعه است و تقریبا برای همه‌ی تکنیک‌های آماری پکیج دارد.کتابخانه‌های علم‌داده در پایتوننامپای (Numpy)داده ها در نهایت به شکل آرایه‌ای از اعداد درمی‌آید.پردازش و محاسبات روی آرایه‌ها سریعتر انجام می‌شود. اعضای یک آرایه همه از یک نوع می‌باشند و این ویژگی باعث می‌شود تا آرایه‌ها حجم کمتری در رم اشغال کنند. همچنین توابع بسیاری برای انجام انواع عملیات بر روی آرایه‌ها دارد که نسبت به توابع خود پایتون سریع‌تر اجرا می‌شوند. (می‌توان محاسبات را بدون استفاده از حلقه‌های تکرار انجام داد).پانداس (Pandas) ساختار اصلی داده به شکل دیتا فریم است که در واقع یک آرایه دو‌ بعدی است که در آن سطر‌ها و ستون‌ها عنوان دارند. می‌توان عملیات بسیار بیشتری بر روی داده انجام داد.با استفاده از ساختار‌های داده و امکاناتی که تعبیه شده، عملیات تحلیل و پاک‌سازی و آماده‌سازی داده را در پایتون می‌توان خیلی سریع و آسان انجام داد.مت‌پلات‌لیب (Matplotlib) ساخت نمودارهایی که بتوانند اطلاعات را به خوبی انتقال دهند یکی از مهمترین کارها در تحلیل داده است.این کتابخانه بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است.سایکت‌لرن (scikit-learn) معروف‌ترین و پرکاربردترین کتابخانه یادگیری ماشین در پایتون می‌باشد.حاوی ابزارهای متنوعی برای یادگیری ماشین و مدل‌سازی آماری است هدف از ساخت آن تمرکز بر مدل‌سازی داده به جای دستکاری و مرتب‌سازی و خلاصه کردن داده می‌باشد. واسط کاربری بسیار منسجمی دارد و کار با آن بسیار آسان است.چالش ها و محدودیت هاچالش‌های مربوط به دادهداده اساس یادگیری‌ ماشین است و هیچ الگوریتم و مدلی با داده بد نمی‌تواند عملکرد خوبی داشته باشد.تعداد ناکافی داده  الگوریتم‌ها و مدل های یادگیری‌ ماشین برای آموزش باید از داده استفاده کنند. اگر به تعداد کافی داده به الگوریتم تزریق نکنیم، نمی‌توانیم انتظار عملکرد خوبی داشته باشیم.داده‌ بی‌کیفیت داده‌ بی‌کیفیت پر است از مقادیر اشتباه و گم‌شده، این اشتباهات اجازه نمی‌دهند مدل به عملکرد بالا دست پیدا کند.ویژگی‌های مناسب انتخاب ویژگی‌هایی که مدل بتواند از آن‌ها بیاموزد و از دل آن‌ها الگوهایی برای پیش‌بینی آینده استخراج کند.چالش‌های الگوریتمیبیش‌ برازش (Overfitting) مدل داده‌های آموزش را زیاد از حد یاد گرفته است.کم‌ برازش (Underfitting) مدل نتواند به خوبی از دادگان آموزش، یاد بگیرد. داده نامناسب ، (داده بی‌کیفیت که اطلاعات دقیق و جامعی از هدفی که قصد مدل کردن آن را داریم به دست نمی‌دهد) یکی از چندین دلیل کم‌ برازش است.زمان : مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، طول مدت توسعه محصول را تحت تاثیر قرار می‌دهد و زمان مصرفی توسط مدل برای پیش‌بینی نمونه‌ها زمانی است که کاربر‌ نهایی تجربه می‌کند. دانشمند داده همواره سعی می‌کند هر دو زمان را کمینه کند.فرایند آموزش مدل به زمان‌بر بودن معروف است. الگوریتم‌ها برای یادگیری زمان زیادی مصرف می‌کنند؛ بنابراین باید مدلی انتخاب کنیم که پیچیدگی زمانی خوبی داشته باشدیادگیری ماشین در عملتخمین وزن افراد :در این مسئله با در اختیار داشتن قد و جنسیت افراد باید وزن آن‌ها را پیش‌بینی کنیم.هر ردیف از دادگان مسئله مربوط به یک فرد و مشخصات آن طبق جدول زیر است:در حل این مسئله از کتابخانه‌های: scikit learn برای مدل‌سازی، pandas برای خواندن و دستکاری داده و از  seaborn برای مصورسازی استفاده شده است.در این مسئله، اطلاعات هر فرد که شامل قد، وزن و جنسیت اوست، یک نمونه به شمار می‌آید.تکلیف T در این سوال، پیش‌بینی وزن افراد است!تجربه E در این مسئله، اطلاعات هر یک از افراد است که مدل با دیدن آن‌ می‌تواند سنجه P را در انجام تکلیف T بهبود دهد.سنجه P برای این سوال MAE است( Mean Absolute Error یا میانگین خطای مطلق)توضیحات گام به گام کد نویسی خواندن داده از فایل csv تغییر واحد داده‌هامصورسازی داده ساختن دادگان آموزش و آزمایش انتخاب مدل مناسب و آموزش تخمین مقادیر تست و ارزیابی عملکرد مدلبیش تر بدانیدچرخه تب تکنولوژی نمودار رشد تکنولوژی‌­های مختلف را در طی زمان نشان می‌دهد. هر تکنولوژی ۵ مرحله اصلی را طی می‌کند. به این صورت که ابتدا معرفی می‌شود و شروع به مشهور شدن می‌کند. در این مرحله اغلب شرکت‌ها به استفاده از این فناوری جدید روی می‌آورند. در مرحله دوم که اوج قله است، نام آن تکنولوژی در همه‌جا شنیده شده و با جذب سرمایه‌گذار، بسیاری از استارت‌ آپ‌ها شروع به معرفی و استفاده از آن می‌کنند. اما در مرحله سوم محدودیت‌های این تکنولوژی شناخته می‌شود و آهسته از شهرت آن کاسته شده و بسیاری استفاده از آن را کنار می‌گذارند. در مرحله چهارم، تنها برخی کسانی که در عرصه‌ آن تکنولوژی باقی‌مانده‌اند شروع به فعالیت اصلی در این حوزه کرده و تکنولوژی شروع به رشد می‌کند تا زمانی که به مرحله پایانی یعنی پختگی و ثبات نسبی برسد.هوش مصنوعی عمومیساختن عامل هوشمندی که مانند انسان از هوشی عمومی برخوردار باشد که توانایی آموختن در مواجهه با هر مسئله جدیدی را داشته باشد و محدود به یک زمینه یا مسئله خاص نباشد.شرکت‌های پیشروشرکت DeepMind  شرکت دیپ‌ مایند هدف بلند مدت خود را حل مسئله هوشمندی و ساخت سیستم‌های حل مسئله با عمومیت و توانایی بیشتر که از آن به همان هوش مصنوعی عمومی یاد می‌کند اعلام کرده است. از پروژه‌های دیپ‌ مایند می‌توان به تشخیص بیماری‌های چشمی از روی تصاویر، بهینه کردن انرژی در مراکز داده گوگل و بهبود محصولات گوگل با استفاده از هوش مصنوعی اشاره کرد.شرکت OpenAI هدف خود را ساختن هوش مصنوعی عمومی‌ای می‌داند که برای بشریت مفید واقع شود. مدل زبانیGPT-3  و مدل ساخت تصاویر از روی متن DALL.E  از محصولات این شرکت هستندگروه AI شرکت Facebook  زمینه‌های تحقیقاتی این بخش شامل ابعاد مختلف یادگیری ماشین از جمله بینایی ماشین و پردازش زبان طبیعی می‌شود اما معروف‌ترین محصول آن یک کتابخانه متن‌باز یادگیری ماشین به نام PyTorch است. این ابزار سادگی در استفاده و امکانات زیادی که دارد.گروه AI شرکت Googleشرکت گوگل هم به پشتوانه منابع پردازشی و داده‌ای عظیمش گروهی ویژه هوش مصنوعی تاسیس کرده است که به دنبال توسعه هوش مصنوعی و استفاده از آن در محصولات و زمینه‌های مختلف است.چرا از یادگیری‌ ماشین استفاده می‌کنیم؟ یادگیری‌ ماشین به شرکت‌ها این امکان را می‌دهد که کارهایی که قبلاً تنها توسط انسان‌ها امکان‌پذیر بود را با سرعت بالاتر و دقت بیشتر انجام دهند. استفاده از یادگیری‌ ماشین به دلایل زیر خیلی آسان‌تر و فراگیرتر شده است:افزایش بی حد و حصر داده‌هاذخیره سازی مقرون به صرفه داده‌هاافزایش قدرت پردازنده‌ها و کاهش هزینه‌های آن‌هامنبع :https://quera.ir/college/land/college/8522/</description>
                <category>mohaddeseh eslahi</category>
                <author>mohaddeseh eslahi</author>
                <pubDate>Wed, 24 Nov 2021 22:19:04 +0330</pubDate>
            </item>
            </channel>
</rss>