<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های کلینیک دکتر کمالی</title>
        <link>https://virgool.io/feed/@masoumeh_sharifi</link>
        <description>Artificial Intelligence Engineer ✔ It &amp; Software Engineer ✔SEO Specialist  ✔Graphic Artist  ✔Web Designer  ✔Programmer  ✔M U T ✔August 1997✔</description>
        <language>fa</language>
        <pubDate>2026-06-10 14:33:31</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1354778/avatar/RNHxMT.png?height=120&amp;width=120</url>
            <title>کلینیک دکتر کمالی</title>
            <link>https://virgool.io/@masoumeh_sharifi</link>
        </image>

                    <item>
                <title>بررسی دو مفهوم under-fitting و over-fitting در یادگیری ماشین</title>
                <link>https://virgool.io/@masoumeh_sharifi/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%AF%D9%88-%D9%85%D9%81%D9%87%D9%88%D9%85-under-fitting-%D9%88-over-fitting-%D8%AF%D8%B1-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-yiog2zcakjux</link>
                <description>در این پست می خواهیم به دو مفهوم بسیار مهم over-fit و under-fit بپردازیم.under-fit over-fit و این دو مفهوم از مفاهیمِ اساسی‌ است که در بحثِ طبقه‌بندیِ داده‌ها مورد بحث قرار می‌گیرند. هدف از مقاله جاری این است که با مفهوم Overfitting و Underfitting آشنا شده تا بتوانیم الگوریتم‌هایی ارائه کنیم تا از این دو پدیده در امان باشند.بصورت خلاصه معانی این دو مفهوم به شکل زیر است:مفهوم Over-fit: عملکرد یادگیری بسیار خوب بوده، اما عملکرد بر روی مجموعه داده ای های دیگر (dataset) خوب نیست.مفهوم Under-fit: نه تنها یادگیری خوب نبوده است، بلکه عملکرد آن بر روی مجموعه داده ای های دیگر نیز ضعیف است.به مثال زیر توجه کنید:اجازه بدهید با یک مثال شروع کنیم. فرض کنید شما برای یک امتحانِ آخرِ ترم در حال درس خواندن هستید. استاد هم به شما ۱۰۰ عدد نمونه سوال داده است تا با استفاده از آن‌ها بتوانید خود را برای امتحان آماده کنید. اگر شما طوری مطالعه کنید که فقط این ۱۰۰ نمونه سوال را کامل بلد باشید و هر سوالِ دیگری که کمی از این ۱۰۰ سوال فاصله داشته باشد، اشتباه جواب دهید، یعنی ذهنِ شما بر روی سوالاتِ آموزشی که استاد برای یادگیری داده است Overfit یا بیش‌برازش شده است. حال اگر تمامی سوالات را به صورت مفهومی بلد باشید ولی هیچ کدام از سوالات را به صورتِ دقیق بلد نباشید، حتی اگر دقیقاً همان سوال‌ها هم در جلسه امتحان به شما داده شود، باز هم نمی‌توانید به درستی و با دقت پاسخ آن ها را بدهید، البته شاید بتوانید یک پاسخ نصفه و نیمه از سوالات بنویسید. اینجا ذهن شما Underfit شده است. این در حالی است که سوالات دیگری که نزدیک به این سوالات هستند را هم شاید بتوانید نصفه و نیمه پاسخ دهید (ولی دقیق نمی‌توانید).در دنیای الگوریتم‌ها Overfit شدن به معنای این است که الگوریتم فقط داده‌هایی که در مجموعه آموزشی (train set) یاد گرفته است را می‌تواند به درستی پیش‌بینی کند ولی اگر داده‌ای کمی از مجموعه‌ی آموزشی فاصله داشته باشد، الگوریتمی که Overfit شده باشد، نمی‌تواند به درستی پاسخی برای این داده‌های جدید پیدا کند و آن‌ها را با اشتباهِ زیادی طبقه‌بندی می کند.در Underfit شدن نیز زمانی رخ می دهد که الگوریتم یک مدلِ خیلی کلی از مجموعه آموزشی به دست می‌آورد. یعنی حتی اگر خودِ داده‌های مجموعه‌ی آموزشی را نیز به این الگوریتم بدهیم، این الگوریتم خطایی قابل توجه خواهد داشت.فرض کنید نقطه‌ها در شکل زیر نمونه سوالاتی هستند که استاد برای آمادگی در امتحان همراه با پاسخِ آن‌ها به ما داده است. سوال در محور افقی داده می‌شود و پاسخ در محور عمودی است. به این معنی که به شما X داده می‌شود و شما باید از روی عددِ این X، عددِ Y (عدد روی محور عمودی) را تشخیص دهید. مثلاً اگر مختصاتِ عدد نخست سمت چپدر تصویر زیر [۶, ۱] باشد، به این معنی است که اگر عدد ۱ را به این الگوریتم بدهیم، الگوریتم عدد ۶ را برگرداند. پس با این حساب اگر به الگوریتم عدد ۱.۱ را دادیم، این الگوریتم (که یادگیری را قبلاً از روی داده‌ها انجام داده است) احتمالاً باید عددی نزدیک به ۶ را برگرداند. این ها در واقع همان مجموعه آموزشی ما هستند:خط آبیِ موجود، در واقع یادگیریِ مدل طبقه‌بندی است (به صورت دقیق‌تر در این‌جا رگرسیون داریم). همان‌طور که می‌بینید در سمت چپ، خطی که الگوریتمِ طبقه‌بندیْ یادگرفته است از تمامی داده‌ها به مقدار قابل توجهی فاصله دارد. یعنی در این شکل (سمت چپ) underfitting رخ داده است. این در حالی است که در شکل سمت راست، overfitting رخ داده. توجه کنید که در شکلِ سمت راست، اگر یک نقطه جدید (مثلا یک سوال جدید در امتحان) داده شود (نقطه سبز رنگ داده شده) الگوریتم خطای بسیار زیادی دارد. یعنی مقدار Yی که برمیگرداند بسیار با مقدار واقعی فاصله دارد – چون الگوریتم خیلی نتوانسته است که یادگیری را عمومی سازی کند و نسبت به مقادیر جدید خطای بالایی نشان می‌دهد. شکل وسط نیز یک خط معقول و درست برای یک طبقه بند را نشان می دهد که overfit یا underfit نشده است.این دو خطای معروف در حوزه طبقه‌بندی هستند که الگوریتم های مختلف طبقه بندی باید از آن ها اجتناب کنند.</description>
                <category>کلینیک دکتر کمالی</category>
                <author>کلینیک دکتر کمالی</author>
                <pubDate>Fri, 14 Jan 2022 19:24:20 +0330</pubDate>
            </item>
                    <item>
                <title>روش درخت تصمیم در شناسایی بیماری</title>
                <link>https://virgool.io/@masoumeh_sharifi/%D8%B1%D9%88%D8%B4-%D8%AF%D8%B1%D8%AE%D8%AA-%D8%AA%D8%B5%D9%85%DB%8C%D9%85-%D8%AF%D8%B1-%D8%B4%D9%86%D8%A7%D8%B3%D8%A7%DB%8C%DB%8C-%D8%A8%DB%8C%D9%85%D8%A7%D8%B1%DB%8C-zgmpgfoh8ngc</link>
                <description>امروز قصد داریم مقاله تخصصی در زمینه یادگیری ماشین که از درخت تصمیم به عنوان روش اصلی استفاده کرده را بررسی کنیم.الگوریتم درخت تصمیم گیریدر مقاله زیر می خواهیم بررسی کنیم دلایل اینکه افراد مختلف مبتلا به آنفارکتوس قلبی مبتلا می شوند چیست؟آدرس url  مقاله اصلی است در انتهای مطلب ذکر می شود. در این قسمت ما به طور خلاصه آن را بررسی می کنیم:درخت تصیمیم یک الگوریتم یادگیری ماشینی بسیار محبوب است. درخت تصمیم مشکل یادگیری ماشین را با تبدیل داده ها به یک نمایش درختی حل می کند. هر گره داخلی نمایش درختی یک ویژگی و هر گره برگ نشان دهنده یک برچسب کلاس است. الگوریتم درخت تصمیم می تواند برای حل مسائل رگرسیون و طبقه بندی استفاده شود. ممکن است دوست داشته باشید ویدیویی در مورد Decision Tree از ابتدا در پایتون تماشا کنید.در داده کاوی از دو روش پیش گویی و توصیفی استفاده می کنیم.برای پیدا کردن الگو قابل تفسیر می توانیم از تکنیک توصیف کننده استفاده کنیم.همانطور که از نام تکنیک دوم &quot;پیش گویی کننده&quot; پیداست، برای به کار گیری چند منظوره از آن استفاده می کنیم.مرحله اولیه : دریافت اطلاعات از فرد متخصص برای بررسی در مراحله اولیه باید از یک دکتر کمک بگیریم که جراح و متخصص قلب و عروق باشد تا اطلاعات کامل و علمی در رابطه با بیماری به ما بدهد.مرحله دوم: بررسی و تحقیقبعد از دریافت اطلاعات علمی باید سوابق بیماران مبتلا به بیماری را در یک بیمارستان بررسی کنیم. بنابراین آزمایش افراد مبتلا به بیماری و افراد سالم را بررسی کردیم و اطلاعات مفیدی از این ارزیابی به روش درخت تصمیم بدست آوردیم.مرحله سوم: دسته بندی اطلاعات و نتیجه گیریاکثر بیماران مبتلا به آنفارکتوس قلبی دچار مشکلات زیر بودند:سابقه بیماری دیابتابتلا به بیماری های عروق كرونرسوابق خانوادگی سو مصرف مواد مخدرچربی خون بالااما درصد زیادی از افراد سالم فشار خون بالا داشتند.در واقع با بررسی دقیق و استفاده از درخت تصمیم می توانیم بیماری ها را دسته بندی کنیم  و موارد تاثیر گذار در هر کدام را شناسایی و با اطلاع رسانی بین مردم باعث کاهش ابتلا به آن ها شویم.با بررسی این روش دریافتیم که افرادی که بیماری دیابت، چربی خون، بیماری قلبی کرونر مبتلا هستند و یا از سیگار و سایر دخانیات استفاده می کنند، سابقه بیماری در خانواده آن ها وجود دارد و ... باید نسبت به سایر افراد مراقبت های بیشتری داشته باشند و چکاپ های لازم را در زمان مناسب انجام دهند تا در صورت بروز مشکل، سریعتر شناسایی و جهت درمان آن اقدام شود.لینک مقاله اصلیhttps://www.sid.ir/fa/journal/ViewPaper.aspx?id=228815</description>
                <category>کلینیک دکتر کمالی</category>
                <author>کلینیک دکتر کمالی</author>
                <pubDate>Mon, 10 Jan 2022 00:26:28 +0330</pubDate>
            </item>
                    <item>
                <title>اعتبار سنجی (Cross-Validation) در یادگیری ماشینی: چگونه آن را به درستی انجام دهیم</title>
                <link>https://virgool.io/@masoumeh_sharifi/%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1-%D8%B3%D9%86%D8%AC%DB%8C-cross-validation-%D8%AF%D8%B1-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86%DB%8C-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A2%D9%86-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%D8%AF%D9%87%DB%8C%D9%85-e6ihpt4rmqxb</link>
                <description>اعتبار سنجیسامانه های قاعده پایه در یادگیری ماشین (Machine Learning) اصولا به توانایی های یک الگوریتم جهت اثر بخشی در ورودی های مختلف اشاره دارد. در واقع در یادگیری ماشین با کاهش عملکرد در ورودی های جدید می توانیم از نمونه های تحت آموزش استفاده کنیم.یک راهکار مناسب برای انسان ها فراگیر کردن است. در این دسته از پروژه ها امکان دسته بندی وجود دارد. به عنوان مثال : شناسای یک سگ برای انسان حتی اگر آن نژاد را قبلا ندیده باشد، بسیار راحت است. اما همین کار برای یک مدل در ML چالش برانگیز است. به همین خاطر بررسی در توانایی الگوریتم برای فراگیری و تعمیم مهم است که جهت ساخت مدل به آن نیاز داریم.برای این کار از Cross-Validation (CV) استفاده می کنیم.در این مقاله به موارد زیر خواهیم پرداخت:    اعتبار متقابل چیست؟ (تعریف، هدف استفاده و تکنیک ها)تکنیک‌های مختلف CV: •	نگه‌داشتن، k-folds•	Leave-one-out•	Leave-p-out•	k-fold طبقه‌بندی شده•	k-fold مکرر•	k-folds تودرتو•	CV کامل    نحوه استفاده از این تکنیک ها: sklearn    اعتبار سنجی متقابل در یادگیری ماشینی: sklearn، CatBoost    اعتبار سنجی متقابل در یادگیری عمیق: Keras، PyTorch، MxNet    بهترین شیوه ها و نکات: سری های زمانی، داده های پزشکی و مالی، تصاویرCross-Validation (اعتبار سنجی متقابل) چیست؟اعتبار سنجی متقابل یک روش برای ارزیابی یک مدل در ماشین لرنینگ و همچنین آزمایش نحوه عملکرد آن است. از CV اصولا در فعالیت های کاربردی یادگیری ماشین استفاده می شود. این کار درمقایسه و انتخاب یک مدل مناسب برای مسئله مدل‌سازی پیش‌بینی‌کننده خاص کمک می‌کند. درک و پیاده سازی CV ساده است، همچنین تعصب کمتری نسبت به سایر روش‌های مورد استفاده برای شمارش امتیازهای کارایی مدل دارد. همه موارد ذکر شده اعتبارسنجی متقابل را به ابزاری قدرتمند جهت انتخاب بهترین مدل برای کار خاص تبدیل می کند.روش های مختلفی وجود دارد که ممکن است برای اعتبارسنجی متقابل در یک مدل استفاده شود. با این حال، همه آنها یک الگوریتم مشابه دارند:    مجموعه داده را به دو بخش تقسیم کنید: 1- برای آموزش، 2-  برای آزمایش    مدل را برروی مجموعه آموزشی آموزش دهید.    اعتبار مدل را در مجموعه آزمایشی تأیید کنید.    1-3 مرحله را چندین بار تکرار کنید. تعداد تکرار کار به روشی که استفاده می کنید بستگی دارد.همانطور که می دانید، تکنیک های CV بسیاری وجود دارد. برخی از تکنیک ها اصولا مورد استفاد قرار می گیرد.  برخی دیگر فقط در تئوری کار می کنند. در ادامه روش‌های اعتبارسنجی متقاطع را که در این مقاله پوشش داده خواهد شد، نمایش داده می شود:•	Hold-out•	K-folds•	Leave-one-out•	Leave-p-out•	Stratified K-folds•	Repeated K-folds•	Nested K-folds•	Complete Hold-outاعتبار سنجی متقابل Hold-out ساده ترین و رایج ترین روش مورد استفاده است. شاید اطلاع نداشته باشید که این روش نگهدارنده است اما مطمئناً هر روز از آن استفاده می کنید.الگوریتم تکنیک Hold-out:    مجموعه داده را به دو بخش تقسیم کنید: مجموعه آموزشی و مجموعه تست. معمولاً 80 درصد مجموعه داده به مجموعه آموزشی و 20 درصد به مجموعه آزمایشی اطلاق می گردد، اما شما می‌توانید هر تقسیم‌بندی را انتخاب کنید که در مدل شما مناسب و کاربردی تر باشد.1-	 مدل را روی مجموعه آموزشی آموزش دهید.2-	در مجموعه آزمایشی اعتبار سنجی کنید.3-	نتیجه اعتبارسنجی را ذخیره کنید.خودشه.ما معمولاً از روش نگهدارنده در مجموعه داده‌های بزرگ استفاده می‌کنیم، چون این روش ها فقط یک بار نیاز به آموزش مدل دارد.اجرای نگهدارنده واقعاً آسان است. برای مثال، می‌توانید این کار را با استفاده از 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,                                            با این حال،  Hold-out یک نقطه ضعف بزرگ دارد.به عنوان مثال، مجموعه داده ای که از نظر توزیع کاملاً یکنواخت نیست. اگر چنین است، ممکن است پس از تقسیم در یک نقطه ناهموار قرار بگیریم. به عنوان مثال، مجموعه آموزشی مجموعه تست را نشان نخواهد داد. هر دو مجموعه تمرین و تست ممکن است بسیار متفاوت باشند، یکی از آنها ممکن است آسان تر یا سخت تر باشد.علاوه بر این، این واقعیت که ما مدل خود را فقط یک بار آزمایش می کنیم ممکن است یک گلوگاه برای این روش باشد. با توجه به دلایل ذکر شده در بالا، ممکن است نتیجه به دست آمده با تکنیک Hold-out نادرست در نظر گرفته شود.k-foldK-Fold CV روشی است که معایب روش نگهدارنده را به بسیار کاهش می د هد و به حداقل می ر ساند. k-Fold روش جدیدی برای تقسیم مجموعه داده معرفی می کند که به غلبه بر test only once bottleneck”&quot; کمک می کند.الگوریتم تکنیک k-Fold:1.	تعدادی folds را انتخاب کنید k. معمولاً 5 تا 10 K  است، اما می‌توانید هر عددی را انتخاب کنید که کمتر از طول مجموعه داده باشد.2.	مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید (به آنها folds گفته می شود)3.	k – 1 folds را انتخاب کنید که مجموعه آموزشی خواهد بود. تای باقیمانده مجموعه آزمایشی خواهد بود4.	مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار اعتبارسنجی متقاطع، باید یک مدل جدید مستقل از مدل آموزش داده شده در تکرار قبلی آموزش دهید.5.	در مجموعه آزمایشی اعتبار سنجی کنید6.	نتیجه اعتبارسنجی را ذخیره کنید7.	مراحل را 3 تا 6 هزار بار تکرار کنید. هر بار از چین باقی مانده به عنوان مجموعه تست استفاده کنید. در پایان، شما باید مدل را روی هر فولد که دارید اعتبارسنجی کرده باشید.8.	برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید.اعتبار سنجی متقاطع k-Foldبرای انجام اعتبارسنجی متقاطع k-Fold می توانید از 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(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, test_index)    X_train, X_test = X[train_index], X[test_index]    y_train, y_test = y[train_index], y[test_index]به طور کلی همیشه بهتر است به جای Hold-out از تکنیک k-Fold استفاده کنید. از آنجایی که آموزش و آزمایش بر روی چندین بخش مختلف از مجموعه داده صورت می گیرد، به طور مو به مو، مقایسه k-Fold نتیجه پایدارتر و قابل اعتمادتری به دست می دهد. ما می توانیم تعداد امتیاز کلی را قوی‌تر کنیم، اگر تعداد folds را  افزایش دهیم تا مدل را روی بسیاری از زیر مجموعه‌های گوناگون آزمایش کنیم.با این حال، روش k-Fold یک نقطه ضعف دارد. افزایش k منجر به آموزش مدل های بیشتر می شود و فرآیند آموزش ممکن است واقعاً گران و زمان بر باشد.Leave-one-outاعتبار سنجی متقابل (LOOCV) یک مورد شدید از K-Fold CV است. تصور کنید که k برابر با n باشد که n تعداد نمونه های مجموعه داده است. چنین مورد k-Fold معادل تکنیک Leave-one-out است.الگوریتم تکنیک LOOCV:1.	یک نمونه از مجموعه داده را انتخاب کنید که مجموعه آزمایشی خواهد بود2.	n – 1 نمونه باقیمانده مجموعه آموزشی خواهد بود3.	مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود4.	در مجموعه آزمایشی اعتبار سنجی کنید5.	نتیجه اعتبارسنجی را ذخیره کنید6.	مراحل 1 تا 5 n بار تکرار کنید، همانطور که برای n نمونه، n مجموعه آموزشی و تست متفاوت داریم.7.	برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 5 به دست آوردید.ضاعتبار سنجی متقابلبرای LOOCV 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(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, test_index)    X_train, X_test = X[train_index], X[test_index]    y_train, y_test = y[train_index], y[test_index]بزرگترین مزیت این روش نسبت به Leave-one-out این است که داده های زیادی را هدر نمی دهد. ما فقط از یک نمونه از کل مجموعه داده به عنوان یک مجموعه آزمایشی استفاده می کنیم، در حالی که بقیه مجموعه آموزشی است. اما وقتی با k-Fold CV مقایسه می‌شود، LOOCV نیاز به ساخت n مدل به جای k مدل دارد، وقتی می‌دانیم که n که مخفف تعداد نمونه‌های مجموعه داده است بسیار بیشتر از k است. این بدان معناست که LOOCV از نظر محاسباتی گرانتر از روش k-Fold است، ممکن است زمان زیادی طول بکشد تا اعتبار متقابل مدل با استفاده از LOOCV.بنابراین، جامعه علوم داده یک قاعده کلی بر اساس شواهد تجربی و تحقیقات مختلف دارد که نشان می‌دهد اعتبارسنجی متقاطع 5 یا 10 برابر باید بر LOOCV ترجیح داده شود.Leave-p-outاعتبار سنجی متقاطع Leave-p-out  شبیه به ترک یک خروجی CV است زیرا تمام مجموعه های آموزشی و آزمایشی ممکن را با استفاده از نمونه های p به عنوان مجموعه آزمایشی ایجاد می کند. تمام موارد ذکر شده در مورد LOOCV و برای LpOC درست است.با این حال، شایان ذکر است که بر خلاف LOOCV و مجموعه‌های تست k-Fold برای LpOC اگر p بالاتر از 1 باشد، همپوشانی دارند.الگوریتم تکنیک LpOC:1.	نمونه های p را از مجموعه داده انتخاب کنید که مجموعه آزمایشی خواهد بود2.	n - p نمونه باقیمانده مجموعه آموزشی خواهد بود.3.	مدل را روی مجموعه آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود.4.	در مجموعه آزمایشی اعتبار سنجی کنید.5.	نتیجه اعتبارسنجی را ذخیره کنید.6.	مراحل 2 تا 5 Cpn را تکرار کنید.7.	میانگین نتایجی که در مرحله 5 به دست آوردید برای به دست آوردن امتیاز نهایی استفاده کنید.می‌توانید Leave-p-out CV را با استفاده از 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(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, test_index)    X_train, X_test = X[train_index], X[test_index]    y_train, y_test = y[train_index], y[test_index]LpOC تمام معایب LOOCV را دارد، اما، با این وجود، به اندازه LOOCV قوی است.Stratified k-Foldدر برخی مواقع ممکن است با عدم تعادل زیادی در مقدار هدف در مجموعه داده مواجه شویم. به عنوان مثال، در مجموعه داده‌های مربوط به قیمت ساعت‌های مچی، ممکن است تعداد بیشتری از ساعت‌های مچی قیمت بالایی داشته باشند. در مورد طبقه‌بندی، در مجموعه داده‌های گربه‌ها و سگ‌ها ممکن است تغییر زیادی به سمت طبقه (نژاد) سگ وجود داشته باشد.K-Fold طبقه بندی شده نوعی از تکنیک استاندارد K-Fold CV است که به گونه ای طراحی شده است که در چنین مواردی از عدم تعادل هدف موثر باشد.به صورت زیر عمل می کند. Stratified k-Fold مجموعه داده را بر روی k folds تقسیم می کند به طوری که هر folds تقریباً دارای درصد مشابه ی از نمونه های هر کلاس هدف به عنوان مجموعه کامل است. در مورد رگرسیون، Stratified k-Fold اطمینان حاصل می کند که میانگین مقدار هدف تقریباً در همه چین ها برابر است.الگوریتم Stratified k-Fold :1.	تعدادی folds-k را انتخاب کنید .2.	مجموعه داده را به k برابر تقسیم کنید. هر folds باید تقریباً دارای درصد مشابهی از نمونه‌های هر کلاس هدف در مجموعه کامل باشد.3.	k – 1 folds را انتخاب کنید که مجموعه آموزشی خواهد بود. folds باقیمانده مجموعه آزمایشی خواهد بود.4.	مدل را روی مجموعه آموزش دهید. در هر تکرار یک مدل جدید باید آموزش داده شود.5.	در مجموعه آزمایشی اعتبار سنجی کنید.6.	نتیجه اعتبارسنجی را ذخیره کنید.7.	مراحل را 3 تا 6 هزار بار تکرار کنید. هر بار از folds باقی مانده به عنوان مجموعه تست استفاده کنید. در پایان، شما باید مدل را روی هر folds که دارید اعتبارسنجی کرده باشید..8.	برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید را استفاده کنید.همانطور که ممکن است متوجه شده باشید، الگوریتم تکنیک Stratified k-Fold مشابه K-Folds استاندارد است. شما نیازی به کدنویسی اضافی ندارید زیرا این روش همه کارهای لازم را برای شما انجام می دهد.Stratified k-Fold همچنین یک روش داخلی در sklearn دارد – sklearn.model_selection.StratifiedKFold.import 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(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, test_index)    X_train, X_test = X[train_index], X[test_index]    y_train, y_test = y[train_index], y[test_index]تمام موارد ذکر شده در بالا در مورد K-Fold CV برای تکنیک Stratified k-Fold صادق است. هنگام انتخاب بین روش های مختلف CV، مطمئن شوید که از روش مناسب استفاده می کنید. به عنوان مثال، ممکن است فکر کنید که مدل شما عملکرد بدی دارد، صرفاً به این دلیل که از K-Fold CV برای اعتبارسنجی مدلی استفاده می‌کنید که بر روی مجموعه داده با عدم تعادل کلاس آموزش داده شده است. برای جلوگیری از آن، همیشه باید یک تجزیه و تحلیل داده های اکتشافی مناسب روی داده های خود انجام دهید.Repeated k-Foldاعتبارسنجی متقابل k-Fold مکرر یا CV نمونه‌برداری‌های تصادفی مکرر احتمالاً قئی تر و بهتر از تکنیک‌های CV در این مقاله است. این یک تغییر از k-Fold است اما در مورد K-Folds تکراری k تعداد folds نیست. تعداد دفعاتی است که ما مدل را آموزش خواهیم داد.ایده کلی این است که در هر تکرار، نمونه‌هایی را به‌طور تصادفی از سرتاسر مجموعه داده به عنوان مجموعه آزمایشی انتخاب می‌کنیم. به عنوان مثال، اگر تصمیم بگیریم که 20٪ از مجموعه داده ها مجموعه آزمایشی ما باشد، 20٪ نمونه به طور تصادفی انتخاب می شوند و 80٪ بقیه به مجموعه آموزشی تبدیل می شوند.الگوریتم تکنیک Repeated k-Fold:1.	k را انتخاب کنید - چند بار مدل آموزش داده می شود2.	تعدادی نمونه را انتخاب کنید که مجموعه آزمایشی خواهد بود3.	مجموعه داده را تقسیم کنید4.	روی مجموعه آموزشی تمرین کنید. در هر تکرار اعتبارسنجی متقاطع، یک مدل جدید باید آموزش داده شود5.	در مجموعه آزمایشی اعتبار سنجی کنید6.	نتیجه اعتبارسنجی را ذخیره کنید7.	مراحل را 3-6 هزار بار تکرار کنید8.	برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید.K-Fold مکرر مزایای واضحی نسبت به استاندارد k-Fold CV دارد.اولا نسبت تقسیم قطار/آزمایش به تعداد تکرارها بستگی ندارد. ثانیا، ما حتی می توانیم نسبت های منحصر به فردی را برای هر تکرار تنظیم کنیم.ثالثاً، انتخاب تصادفی نمونه‌ها از مجموعه داده‌ها، Repeated k-Fold را برای انتخاب قوی‌تر می‌کند.با این حال، برخی از معایب وجود دارد. k-Fold CV تضمین می‌کند که مدل روی همه نمونه‌ها آزمایش می‌شود، در حالی که K-Fold تکراری بر اساس تصادفی‌سازی است که به این معنی است که برخی از نمونه‌ها ممکن است هرگز برای قرار گرفتن در مجموعه آزمایش انتخاب نشوند. در همان زمان، برخی از نمونه ها ممکن است چندین بار انتخاب شوند.Sklearn به شما در پیاده سازی Repeated k-Fold CV کمک می کند. فقط از sklearn.model_selection.RepeatedKFold استفاده کنید. در اجرای sklearn این تکنیک باید تعداد folds که می خواهید داشته باشید (n_splits) و تعداد دفعاتی که تقسیم انجام می شود (n_repeats) را تنظیم کنید. این تضمین می کند که در هر تکرار چین های مختلفی خواهید داشت.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(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, test_index)    X_train, X_test = X[train_index], X[test_index]    y_train, y_test = y[train_index], y[test_index]Nested k-Foldبرخلاف سایر تکنیک‌های CV که برای ارزیابی کیفیت یک الگوریتم طراحی شده‌اند، Nested k-Fold CV محبوب‌ترین راه برای تنظیم پارامترهای یک الگوریتم است.تصور کنید که ما یک پارامتر p داریم که معمولاً به الگوریتم پایه ای که ما در حال تایید متقابل آن هستیم بستگی دارد. به عنوان مثال، برای Logistic Regression، ممکن است پارامتر جریمه باشد که برای تعیین هنجار مورد استفاده در جریمه استفاده می شود.الگوریتم تکنیک Nested k-Fold:1.	k را انتخاب کنید - تعدادی folds، به عنوان مثال، 10 - فرض کنیم این عدد را انتخاب کرده ایم2.	یک پارامتر p را انتخاب کنید. فرض کنید الگوریتم ما Logistic Regression است و p پارامتر جریمه p = {&#x27;l1&#x27;, &#x27;l2&#x27;, &#x27;elasticnet&#x27;, &#x27;none&#x27;} است.3.	مجموعه داده را به 10 folds تقسیم کنید و یکی از آنها را برای آزمایش رزرو کنید.4.	یکی از folds آموزشی را برای اعتبار سنجی رزرو کنید.5.	برای هر مقدار p روی 8 فولد آموزشی باقیمانده آموزش دهید و روی فولد اعتبارسنجی ارزیابی کنید. اکنون 4 اندازه گیری دارید.6.	مراحل 4-5 را 9 بار تکرار کنید. بچرخانید که کدام فولد آموزشی، فولد اعتبارسنجی است. اکنون اندازه گیری 9 * 4 دارید.7.	p را انتخاب کنید که میانگین خطای تمرین را بیش از 9 برابر به حداقل برساند. از آن p برای ارزیابی روی مجموعه تست استفاده کنید.8.	از مرحله 2 باید 10 بار تکرار کنید و از هر fold به نوبت به عنوان folds تست استفاده کنید.9.	میانگین و انحراف معیار اندازه گیری ارزیابی را در 10 برابر تست ذخیره کنید.10.	الگوریتمی که بهترین عملکرد را داشت، الگوریتمی بود که بهترین میانگین عملکرد خارج از نمونه را در 10 لایه آزمایشی داشت.این تکنیک از نظر محاسباتی گران است زیرا در طول مراحل 1 تا 10 تعداد زیادی مدل باید آموزش و ارزیابی شوند. با این حال، Nested k-Fold CV معمولا استفاده می شود و ممکن است در چندین کار ML واقعاً مؤثر باشد.متأسفانه، هیچ روش داخلی در sklearn وجود ندارد که بتواند CV Nested k-Fold را برای شما انجام دهد. این لحظه ای است که شما باید یا گوگل کنید و پیاده سازی شخصی را پیدا کنید یا خودتان آن را کدنویسی کنید.Complete Cross-ValidationCV کامل کم استفاده ترین تکنیک CV است. ایده کلی این است که ما یک عدد k - طول مجموعه آموزشی را انتخاب می کنیم و روی هر تقسیم ممکن شامل k نمونه در مجموعه آموزشی اعتبار سنجی می کنیم.مقدار آن تقسیم‌ها را می‌توان به صورت Сnk محاسبه کرد که n طول مجموعه داده است. اگر k بالاتر از 2 باشد، باید مدل خود را چندین بار آموزش دهیم که همانطور که قبلاً متوجه شدیم یک زمان فرآیند گران قیمت و از نظر محاسباتی است.به همین دلیل است که از CV کامل یا در تحقیقات نظری استفاده می شود و یا در صورت وجود فرمول مؤثری که به حداقل رساندن محاسبات کمک می کند.الگوریتم اعتبار سنجی متقاطع کامل:1.	یک عدد k را انتخاب کنید - طول مجموعه آموزشی2.	مجموعه داده را تقسیم کنید.3.	روی مجموعه آموزشی تمرین کنید.4.	در مجموعه آزمایشی اعتبار سنجی کنید.5.	نتیجه اعتبارسنجی را ذخیره کنید.6.	مراحل 2 تا 5 Сnk را تکرار کنید.7.	برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 5 به دست آوردید.Cross-Validation in Machine Learningبیشتر تکنیک های اعتبار سنجی متقابل ذکر شده در بالا به طور گسترده در ML استفاده می شود. مهم است که به خاطر داشته باشید که استفاده از تکنیک CV مناسب ممکن است در زمان شما صرفه جویی کند و به انتخاب بهترین مدل برای کار کمک کند.این بدان معناست که اولاً، بهتر است همیشه مدل را تأیید متقابل کنید و ثانیاً باید یک روش CV مربوطه را انتخاب کنید. بنابراین، دانستن مزایا و معایب تکنیک‌های اعتبارسنجی متقابل حیاتی است.شایان ذکر است که اگر می‌خواهید مدل را اعتبارسنجی متقاطع کنید، همیشه باید دفترچه راهنمای مدل را بررسی کنید زیرا برخی از الگوریتم‌های ML، برای مثال CatBoost روش‌های CV داخلی خود را دارند. ممکن است آنها را مربوط به وظیفه ML خود بیابید و به جای روش های داخلی sklearn از آنها استفاده کنید.به طور کلی، همانطور که ممکن است متوجه شده باشید، بسیاری از تکنیک‌های CV دارای روش‌های داخلی sklearn هستند. من به شدت توصیه می کنم از آنها استفاده کنید زیرا این روش ها در زمان زیادی برای کارهای پیچیده تر صرفه جویی می کنند.Cross-Validation in Deep LearningCross-validation در یادگیری عمیق (DL) ممکن است کمی مشکل باشد زیرا اکثر تکنیک‌های CV به آموزش مدل حداقل چند بار نیاز دارند.در یادگیری عمیق، معمولاً به دلیل هزینه‌های مرتبط با آموزش مدل‌های مختلف، از CV اجتناب می‌کنید. به جای انجام k-Fold یا سایر تکنیک‌های CV، ممکن است از زیرمجموعه‌ای تصادفی از داده‌های آموزشی خود به عنوان نگهدارنده برای اهداف اعتبارسنجی استفاده کنید.به عنوان مثال، کتابخانه یادگیری عمیق Keras به شما امکان می دهد یکی از دو پارامتر را برای تابع fit که آموزش را انجام می دهد، ارسال کنید.    validation_split: درصدی از داده هایی که باید برای اعتبار سنجی نگهداری شوند.    validation_data: چند عدد از (X, y) که باید برای اعتبارسنجی استفاده شود. این پارامتر پارامتر validation_split را نادیده می گیرد، به این معنی که شما می توانید تنها یکی از این پارامترها را در یک زمان استفاده کنید.همین رویکرد در آموزش های رسمی سایر فریمورک های DL مانند PyTorch و MxNet استفاده می شود. آنها همچنین پیشنهاد می کنند مجموعه داده را به سه بخش تقسیم کنید: آموزش، اعتبار سنجی و آزمایش.    آموزش : بخشی از مجموعه داده برای آموزش    اعتبار سنجی : بخشی از مجموعه داده برای اعتبارسنجی در حین آموزش    تست : بخشی از مجموعه داده برای اعتبار سنجی نهایی مدلبا این حال، اگر مجموعه داده کوچک است (شامل صدها نمونه) می توانید از اعتبارسنجی متقابل در وظایف یادگیری عمیق استفاده کنید. در این مورد، یادگیری یک مدل پیچیده ممکن است یک کار بی ربط باشد، بنابراین مطمئن شوید که کار را بیشتر پیچیده نکنید.Best practices and tipsشایان ذکر است که گاهی اوقات انجام اعتبارسنجی متقابل ممکن است کمی مشکل باشد.به عنوان مثال، اشتباه منطقی هنگام تقسیم مجموعه داده بسیار آسان است که ممکن است منجر به یک CV غیرقابل اعتماد شود.ممکن است نکاتی را بیابید که باید هنگام تایید متقابل یک مدل در زیر مد نظر داشته باشید:1.	هنگام تقسیم داده ها منطقی باشید (آیا روش تقسیم منطقی است)2.	از روش CV مناسب استفاده کنید (آیا این روش برای مورد استفاده من قابل اجرا است)3.	هنگام کار با سری های زمانی، گذشته را تأیید نکنید (به اولین نکته مراجعه کنید)4.	هنگام کار با داده های پزشکی یا مالی، به یاد داشته باشید که به صورت شخصی تقسیم کنید. از داشتن داده برای یک نفر هم در آموزش و هم در مجموعه تست خودداری کنید زیرا ممکن است به عنوان نشت داده در نظر گرفته شود5.	هنگام برش تکه‌ها از تصاویر بزرگ‌تر، به یاد داشته باشید که با شناسه تصویر بزرگ تقسیم کنیدالبته، نکات از کار به کار متفاوت است و پوشش همه آنها تقریبا غیرممکن است. به همین دلیل است که انجام یک تجزیه و تحلیل داده های اکتشافی جامد قبل از شروع اعتبارسنجی متقابل یک مدل همیشه بهترین روش است.Final thoughtsاعتبار سنجی متقابل ابزار قدرتمندی است. هر دانشمند داده باید با آن آشنا باشد. در زندگی واقعی، شما نمی توانید پروژه را بدون تایید متقابل یک مدل به پایان برسانید.به نظر من بهترین تکنیک های CV Nested k-Fold و استاندارد k-Fold هستند. من شخصاً از آنها در وظیفه تشخیص تقلب استفاده کردم. K-Fold تودرتو و همچنین GridSeachCV به من کمک کرد تا پارامترهای مدل خود را تنظیم کنم. از طرف دیگر، k-Fold برای ارزیابی عملکرد مدل من استفاده شد.در این مقاله، ما متوجه شدیم که اعتبارسنجی متقابل چیست، چه تکنیک‌های CV در طبیعت وجود دارد و چگونه آنها را پیاده‌سازی کنیم. در آینده الگوریتم های ML قطعاً حتی بهتر از امروز عمل خواهند کرد. با این حال، اعتبار سنجی متقابل همیشه برای پشتیبان گیری از نتایج شما مورد نیاز است.امیدواریم با این اطلاعات، مشکلی در تنظیم CV برای پروژه بعدی یادگیری ماشینی خود نخواهید داشت!منابع1.	https://www.geeksforgeeks.org/cross-validation-machine-learning/2.	https://machinelearningmastery.com/k-fold-cross-validation/3.	https://towardsdatascience.com/cross-validation-in-machine-learning-72924a69872f4.	https://towardsdatascience.com/why-and-how-to-do-cross-validation-for-machine-learning-d5bd7e60c1895.	https://scikit-learn.org/stable/modules/cross_validation.html</description>
                <category>کلینیک دکتر کمالی</category>
                <author>کلینیک دکتر کمالی</author>
                <pubDate>Tue, 14 Dec 2021 20:03:31 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری ماشین</title>
                <link>https://virgool.io/@masoumeh_sharifi/%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-lfmwymzb3zdm</link>
                <description>مقدمهحتما طرز کار مغز و نحوه اندیشه و تفکر تا کنون ذهن بسیاری از افراد را درگیر کرده است‌. ابتدا یونانی ها بر این باور بودند که در بدنه های مکانیکی از جنس آهن می‌توان مغز ساخته شده توسط بشر را قرار داد و این ایده شکل گرفت‌.شبیه سازی مغز انسانهوش مصنوعیبرخی تولد هوش مصنوعی را از مقالات آلن تورینگ از تاثیر گذارترین افراد در زمینه هوش مصنوعی می دانند. بسیاری از مقالات این دانشمند حدودا ۷۰ سال پیش در سال ۱۹۵۰ منتشر شد. وی همچنین تست تورینگ را یک معیار مناسب جهت ارزيابی و تشخیص هوش مصنوعی می دانست.تا کنون فیلم های زیادی بر اساس هوش مصنوعی ساخته شده است که مورد توجه بسیاری از افراد قرار گرفته، مانند فیلم ماتریس که در سال ۱۹۹۹ ساخته شد و در آن اتفاق هایی رخ می‌دهد که در دنیای واقعی نبوده اما به صورت هوشمندانه عمل می کنند. این فیلم سه گانه یکی ای محبوب ترین فیلم ها بین برنامه نویسان است.هوشمندی را می‌توان با اشکال مختلف تعریف کرد. اگر شما کتاب &quot;هوش مصنوعی، یک رویکرد مدرن&quot; را مطالعه کرده باشید،  درمی‌یابید که از منظر اول هوشمندی یا در رفتار است یا در تفکر و از منظر دوم هوشمندی در انسان‌گونه بودن یا در منطقی بودن است. اگر همهٔ حالات را در نظر بگیریم به چهار تعریف زیر می‌رسیم. هوش مصنوعی چیزی است که:	•	منطقی فکر کند.	•	منطقی رفتار کند.	•	مانند انسان فکر کند.	•	مانند انسان رفتار کند.به این دو مورد خوب توجه کنید:	1.	از نظر نیچه کاری درست است که منجر به افزایش قدرت شود.	2.	افلاطون فضیلت را از دید اجتماع بررسی و تعریف می‌کند. با این وجود با هر تفکر و تعریف ما مسیر و نتیجه متفاوت خواهیم داشت. بنابراین باید هوشمندی مد نظر را انتخاب کنیم.قدم بعدی ساخت عامل هوشمند است. عامل می‌تواند سخت‌افزاری یا نرم‌افزاری باشد و بر حسب محیطی که عامل قرار است در آن مورد استفاده قرار گیرد.یادگیری ماشینامروزه هر برنامه‌ای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته می‌شود.یکی از مهم‌ترین ویژگی‌های یادگیری ماشین، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است. در انواع دیگر هوش مصنوعی ممکن است شاهد نوعی از هوشمندی باشیم که از داده‌ها استفاده نمی‌کند. ویژگی دیگر یادگیری ماشین، تغییر خود با دیدن داده‌های جدید است؛ یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر می‌دهد.یادگیری ماشین در عصر جدیدهمانطور که می‌دانید امروزه از قدرت الگوریتم‌ های یادگیری ماشین امکانات بسیار مناسبی برای جامعه به وجود آورده است، از جمله صنعت، دانشگاه، حوزه سلامت، اقتصاد و تجارت، کسب و کارها و ... که همگی به نوعی به آن وابسته شده اند. همچنین زبان پایتون و R از محبوب‌ترین زبان‌های قابل استفاده برای یادگیری ماشین هستند.یادگیری ماشینموقعیت‌های شغلی مرتبط با یادگیری ماشینهمانطور که می‌دانید تحلیل و ارزیابی داده ها در یک شرکت از گذشته تا کنون حائز اهمیت است. به عنوان مثال یک فروشگاه را در نظر بگیرید، با بررسی فاکتورهای فروش می‌توان محصولات بهتری را به لیست اضافه و یا برخی موارد را حذف یا جایگزین نمود.نیاز جامعه به بررسی آمار و داده‌ها سبب به وجود آمدن تخصص‌هایی در این زمینه شد. احتمالا کلماتی مثل دانشمند داده، تحلیلگر داده، مهندس داده و مهندس یادگیری ماشین به گوشتان خورده است.تحلیل‌گر دادهفعالیت یک تحلیل گر داده عبارت است از:	1.	معماری مناسب برای جمع‌آوری اطلاعات	2.	داده‌های خام را از منابع داخلی و خارجی جمع‌آوری می‌کند و سپس در پایگاه های داده از قبل طراحی شده قرار می‌دهد.	3.	داده‌ها را مورد بررسی قرار می‌دهد و از داده اطلاعات مفید استخراج می‌کند.دانشمند دادهمی‌توان گفت دانشمند داده سطح بالاتری از تحلیلگر داده دارد. دانشمند داده امور داده‌کاوی را معمولا با زبان‌های برنامه‌نویسی و کتابخانه‌های آن انجام می‌دهد ولی تحلیل‌گر از پلتفرم‌ها و نرم‌افزار‌ها استفاده می‌کند. مهندس دادهبا ظهور کلان‌داده و انفجار داده، روش‌های پیشین مدیریت و ذخیره سازی داده پاسخگو نبود و مفاهیم و ابزار‌های جدیدی برای مدیریت این پدیده به‌وجود آمد. مهندس داده پس از مشورت با دیگر اعضای شرکت انتخاب می‌کند که چه داده‌ای از میان سیل دادهٔ تولیدی در اختیار شرکت قرار بگیرد. پس از انتخاب منابع داده، داده‌های منابع مختلف را یکپارچه می‌کند و برای نگهداری بهینهٔ آن‌ها برنامه‌ریزی می‌کند.مهندس یادگیری ماشینمهندس یادگیری ماشین نقاط مشترک فراوانی با مهندس داده دارد. هر دو در فرآیند رسیدن داده از محل تولید تا مدل نقش داشته و با ساختار‌های داده و پیچیدگی‌های مرتبط با آن آشنایی دارند. دانش یادگیری ماشین برای مهندس داده اجباری نبود ولی برای مهندس یادگیری ماشین الزامی است.یادگیری ماشین و صنعت معدندر معدن و صنایع معدنی نیز همچون سایر صنایع دیگر، یادگیری ماشین بسیار کاربردی است. در ادامه چهار مثال کاربردی از یادگیری ماشین در معدن را با هم مرور کنیم.	1.	پردازش تصاویر ماهواره ای	2.	پیش‌بینی متغیرهای ژئومتالورژیکی	3.	آنالیز تصاویر مربوط به جعبه مغزه‌ها	4.	پردازش تصاویر گرفته ‌شده از پهپاد برای شناسایی هدف‌های از پیش تعیین شدهسرگذشت یادگیری ماشینیادگیری ماشین در اکثر کاربردهای فعلی، یک برنامه کامپیوتری است که به داده دسترسی پیدا می‌کند و از آن برای آموزش خود استفاده می‌کند.تولد کلمه&quot; یادگیری ماشین&quot; برای اولین بار توسط آقای آرتور ساموئل بکار گرفته شد و آن را این چنین تعریف کرد: یادگیری ماشین زمینه‌ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه‌نویسی صریح را می‌دهد.ویژگی اصلی یادگیری ماشین خود آموزشی یا می‌باشد که به معنی استفاده از مدلسازی آماری و عدم استفاده از دستورات مستقیم می‌باشد.داده و انواع آنداده‌ها عنصر محوری یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند، به این صورت که ما داده‌ها را به عنوان ورودی به الگوریتم می‌دهیم تا خروجی مورد نیازمان را دریافت کنیم. زیر لیست انواع داده ها آماده است.	•	کلمات (زبان طبیعی)	•	تصویر	•	جداول	•	سری زمانیمراحل انجام یادگیری ماشینبه طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:	1.	یک الگوریتم (مدل) برای تصمیم‌گیری	2.	یک معیار برای امتیازدهی اینکه عمل‌کرد مدل چقدر خوب بوده	3.	بررسی خودکار کیفیت مدل بر اساس امتیاز	4.	یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدلانواع یادگیری ماشینیادگیری بانظارتدر این نوع از یادگیری، نمونه‌هایی که برای آموزش الگوریتم استفاده می‌شوند، دارای برچسب هستند. الگوریتم‌های یادگیری نظارت‌شده، به دو دسته طبقه‌بندی و رگرسیون دسته‌بندی می‌شوندیادگیری بی‌نظارتالگوریتم‌های یادگیری ماشین بی‌نظارت، که در آن مدل بدون دخالت انسان و با داده‌های بدون برچسب، الگوهای پنهان بین داده‌ها را پیدا می‌کند، به طور کلی به سه دسته خوشه‌بندی، کاهش ابعاد و استخراج قانون وابستگی تقسیم‌ بندی می‌شود. یادگیری تقویتییادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بی‌نظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد.پایتون برای علم دادهپایتون یک زبان برنامه نویسی است که از زمان اختراعش تا امروز به عنوان یک زبان برنامه نویسی سطح بالا در توسعه‌ی برنامه‌های وب و موبایل و همچنین در آنالیز داده و محاسبات علمی به کار رفته است.به دلیل متن‌باز بودن مفسر پایتون، نسخه‌های مختلفی از آن توسط افراد مختلفی توسعه داده شده است که پیاده‌سازی اصلی آن CPython نام دارد.چرا پایتون برای علم داده انتخاب شده؟	1-	پایتون کتابخانه‌ها و ابزار‌هایی قوی و متعدد دارد	•	نامپای (Numpy)	•	پانداس (Pandas)	•	مت‌پلات‌لیب (Matplotlib)	•	سایکت‌لرن (scikit-learn)	2-	کدهای پایتون قابل فهم است	3-	جامعه‌ای بزرگ از توسعه‌دهندگان	4-	چند پارادایمی بودنچرا از یادگیری‌ماشین استفاده می‌کنیم؟یادگیری‌ماشین به شرکت‌ها این امکان را می‌دهد که کارهایی که قبلاً تنها توسط انسان‌ها امکان‌پذیر بود را با سرعت بالاتر و دقت بیشتر انجام دهند.استفاده از یادگیری ماشین به دلایل زیر بسیار ساده است:	•	افزایش بی حد و حصر داده‌ها	•	ذخیره سازی مقرون به صرفه داده‌ها	•	افزایش قدرت پردازنده‌ها و کاهش هزینه‌های آن‌هاچالش‌های مربوط به دادهداده اساس یادگیری‌ماشین است و هیچ الگوریتم و مدلی با داده بد نمی‌تواند عملکرد خوبی داشته باشد. کمیت نامناسب داده، داده بی‌کیفیت و ویژگی‌های نامربوط از جمله چالش‌هایی است که به داده مربوط می‌شوند. برخی از این چالش ها شامل:	•	تعداد ناکافی داده	•	داده بی کیفیت 	•	ویژگی‌های مناسبچالش‌های الگوریتمیپس از آن‌که توانستیم چالش‌های مربوط به داده را مدیریت کنیم، سراغ الگوریتم و مدل می‌رویم. بیش‌برازش (Overfitting)، کم‌برازش (Underfitting) و زمان نمونه‌ای از چالش‌های مربوط به مدل‌ها و الگوریتم‌های هوش‌مصنوعی و یاد‌گیری‌ماشین هستند.چرخه تب تکنولوژیچرخه تب تکنولوژی نمودار رشد تکنولوژی‌­های مختلف را در طی زمان نشان می‌دهد. بر این اساس هر تکنولوژی ۵ مرحله اصلی را طی می‌کند.مرحله یک: ابتدا معرفی می‌شود و شروع به مشهور شدن می‌کند.مرحله دو: نام آن تکنولوژی در همه‌جا شنیده شده و با جذب سرمایه‌گذار، بسیاری از استارت‌آپ‌ها شروع به معرفی و استفاده از آن می‌کنند.مرحله سه: حدودیت‌های این تکنولوژی شناخته می‌شود و آهسته از شهرت آن کاسته شده و بسیاری استفاده از آن را کنار می‌گذارند.مرحله چهار و پنج: تنها برخی کسانی که در عرصه‌ٔ آن تکنولوژی باقی‌مانده‌اند شروع به فعالیت اصلی در این حوزه کرده و تکنولوژی شروع به رشد می‌کند تا زمانی که به مرحله پایانی یعنی پختگی و ثبات نسبی برسد.هوش مصنوعی عمومیمسئلهٔ هوش مصنوعی عمومی ابعاد متنوعی دارد و رشته‌های مختلفی را حول خود گرد می‌آورد. بخشی از مسائل آن به فلسفه و به طور دقیق‌تر فلسفه ذهن برمی‌گردد. تکینگی فناوریزمانی که پیشرفت تکنولوژی به نقطه‌ای غیرقابل کنترل و برگشت‌ناپذیر برسد که تمدن انسانی را تحت تاثیر قرار دهد.بسیاری از صاحب نظران معتقدند تا سال‌های دههٔ ۲۰۴۰-۲۰۵۰ شاهد چنین تحولات شگرفی خواهیم بود.	•	شرکت‌های پیشرو	•	شرکت DeepMind	•	شرکت OpenAI	•	گروه AI شرکت Facebook        •       گروه AI شرکت Googleمنبع: https://quera.ir/college/land/college/8522/</description>
                <category>کلینیک دکتر کمالی</category>
                <author>کلینیک دکتر کمالی</author>
                <pubDate>Thu, 25 Nov 2021 13:42:30 +0330</pubDate>
            </item>
            </channel>
</rss>