<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Aryan Esmaili</title><link>https://virgool.ir/feed/@arian.esmaeli.ae</link><description></description><language>fa</language><pubDate>2026-11-11 13:53:03</pubDate><image><url>https://files.virgool.ir/upload/users/1731845/avatar/avatar.png</url><title>Aryan Esmaili</title><link>https://virgool.ir/@arian.esmaeli.ae</link></image><item><title>آموزش ماشین لرنینگ با پایتون ( پارت ششم -مدل لاجیستیک رگرشن)</title><link>https://virgool.ir/@arian.esmaeli.ae/machinelearningwithpythonp6-gvuhgcgviior</link><description>لازم به ذکره این دوره نسخه ترجمه شده دوره ماشین لرنینگ سایت SoloLearn هست و من فقط ترجمه اون رو انجام دادم. این قسمت آشنایی ما با مدل لاجیستیک رگرشن هست و اینکه چطور میتونیم یه مدل با sklearn بسازیم.مدل لاجیستیک رگرشنبرای مشخص کردن بهترین خط ممکن برای جدا کردن دیتامون، باید یه راهی برای امتیازدهی به خطمون داشته باشیم. بیاید به یه دیتاپوینت نگاه کنیم.به طور آرمانی(ایده آل)، اگر دیتاپوینت ما یه مسافره که زنده مونده، دیتاپوینتش سمت راست خط و دور از خطه، و اگه دیتاپوینت ما مسافری باشه که زنده نمونده، دیتاپوینت ما باید سمت چپ خط و دور از خط باشه. هر چی دیتاپوینت ما دورتر از خط باشه ما با اطمینان بیشتری میگیم که نقطه ما در سمت درستی از خط قرار گرفته.برای هر دیتاپوینت، ما یه امتیاز داریم که یه مقدار بین 0 و 1 هست. ما میتونیم اون رو به عنوان احتمال بقای مسافر در نظر بگیریم. اگه مقدار به 0 نزدیک باشه اون پوینت سمت چپ و دور از خطه و معنیش اینه که ما با مطمئنیم که اون مسافر مرده. اگه مقدار به 1 نزدیکه یعنی اون پوینت سمت راست و دور از خطه  و به این معنیه که ما مطمئنیم که مسافر سالم مونده. اگر مقدار 0.5 باشه به این معنیه که نقطه ما دقیقا روی خط میوفته و ما شک داریم مسافر زنده مونده باشه.معادله حساب کردن این امتیاز زیر قرار گرفته، اما درک مفهوم این معادله خیلی مهم تر از خودشه.یادتون باشه که معادله خط ما به فرم 0 = ax+by+c هست( x کرایه، y سن و a b c هم ضریب هستن). عدد e هم یه ثابت ریاضیاتیه که تقریبا میشه 2.71828.این تابع سیگمویید نام داره (the sigmoid ).لاجیستیک رگرشن تنها یه پیشبینی نمیده ( بقا یافته یا نه) بلکه یه احتمال به ما میده (80 درصد احتمال بقا وجود داره).احتمال اتفاق افتادن (likelihood)برای محاسبه اینکه خط ما چقدر خوبه، باید ببینیم آیا پیشبینی های ما درست هستن یا نه. به طور آرمانی اگه ما با یه احتمال بسیار زیاد پیشبینی کنیم که یه مسافر زنده میمونه، پس اون مسافر واقعاً زنده میمونه.پس ما اگر چیزی رو درست پیشبینی کنیم جایزه میگیریم و اگر چیزی رو غلط پیشبینی کنیم جریمه میشیم.این معادله احتمال پیشامد  (likelihood) هست. بازم، مفهوم معادله خیلی مهم تر از خودشه.اینجا p احتمال بقای پیشبینی شده از بخش های قبله.احتمال پیشامد یه عدد بین 0 و 1 هست. هر چی عدد بیشتر، خط بهتر.بیاید به چند تا احتمال نگاه کنیم. اگر مقدار پیشبینی شده p 0.25 و مسافر زنده نمونده باشه، ما یه امتیاز 0.75 میگیریم. (خوب) اگر مقدار pپیشبینی شده 0.25 و مسافر زنده مونده باشه، ما یه امتیاز 0.25 میگیریم (بد).ما تمام امتیاز های جداگانه برای هر دیتاپوینت رو باهم ضرب میکنیم تا یک امتیاز برای خطمون بدست بیاریم ؛ بنابراین میتونیم خطوط مختلف رو باهم مقایسه کنیم و بهترینش رو پیدا کنیم.بیاید فرض کنیم برای آسانی محاسبه ما 4 تا دیتاپوینت داریم.ما امتیاز کل رو با ضرب کردن امتیاز ها توی هم بدست میاریم:0.25 x 0.75 x 0.6 x 0.8 x = 0.09مقدار همیشه قراره خیلی کوچیک باشه ازونجایی که این مقدار احتمال درست پیشبینی کردن بی نقص همه چیزه. یه مدل بی نقص احتمال پیشبینی 1 برای همه کیس های مثبت و 0 برای همه کیس های منفی داره.احتمال پیشامد نحوه امتیازدهی و مقایسه کردن انتخاب های ممکن برای پیدا کردن بهترین خطهساختن یک مدل لاجیستیک رگرشن با sklearnحالا که ما نحوه کارکرد لاجیستیک رگرشن رو متوجه شدیم، بیاید کد بزنیم تا یه مدل بسازیم.برای این کار ما قراره یه ماژول جدید پایتون به نام scikit-learn رو به شما معرفی کنیم.این ماژول، که اسمش معمولا به sklearn خلاصه میشه، ابزار علمی ماست.تمام الگوریتم های ماشین لرنینگ ساده ای که ما کار میکنیم تو sklearn قرار داده شده. خواهید دید که با نوشتن فقط چند خط ما میتونیم چندین مدل قدرتمند بسازیم.یادتون باشه که scikit-learn پیوسته داره آپدیت میشه. اگه ورژن ماژول شما یکم با مال من فرق بکنه، همچنان همه چیز کار میکنه اما بعضی جاها ممکنه شما مقادیر متفاوتی با من رو ببینید.آماده کردن دیتا با Pandasقبل از اینکه ما از sklearnبرای ساخت یه مدل استفاده کنیم، باید دیتا رو با Pandasآماده کنیم.بیاید برگردیم به دیتاستمون و دستور های Pandas رو یادآوری کنیم.اول، باید تمام ستون هامون رو عددی کنیم. این کارو با عددی کردن ستون Sex انجام میدیم.df[&#39;male&#39;] = df[&#39;Sex&#39;] == &#39;male&#39;حالا، بیاید تمام فیچر هارو جمع کنیم و یه آرایه numpy  به نام x بسازیم. ما اول تمام ستون هایی که مد نظرمون هستن رو انتخاب میکنیم و متود values رو روشون میزنیم تا به آرایه numpy تبدیل بشن.X = df[[&#39;Pclass&#39;, &#39;male&#39;, &#39;Age&#39;, &#39;Siblings/Spouses&#39;, &#39;Parents/Children&#39;, &#39;Fare&#39;]].valuesحالا بیاید تارگت رو بگیریم و اون رو تو متغیری به نام yذخیره کنیم.y = df[&#39;Survived&#39;].valuesکد کامل:import pandas as pddf = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)df[&#39;male&#39;] = df[&#39;Sex&#39;] == &#39;male&#39;X = df[[&#39;Pclass&#39;, &#39;male&#39;, &#39;Age&#39;, &#39;Siblings/Spouses&#39;, &#39;Parents/Children&#39;, &#39;Fare&#39;]].valuesy = df[&#39;Survived&#39;].valuesprint(X)print(y)یه عادت رایج اینه که ما آرایه 2 بعدی فیچر هامون رو x و آرایه 1 بعدی تارگتمون رو y نام گذاری کنیم.با ایمپورت کردن لاجیستیک رگرشن شروع میکنیم.from sklearn.linear_model import LogisticRegressionتمام مدل های sklearnبه عنوان کلاس های پایتون ساخته میشن. اول یه ممبر از کلاس میسازیم:model = LogisticRegression()حالا ما میتونیم از دیتایی که قبلا آماده کردیم برای train(تمرین دادن) کردن مدلمون استفاده کنیم. متود fit برای ساخت مدل استفاده میشه. 2 آرگیومنت میگیره: X  ( که همون فیچر هامون و یه آرایه 2بعدی هست) و y ( که تارگتمون و یه آرایه 1 بعدی هست).برای سادگی، بیاید اول فرض کنیم ما یه مدل لاجیستیک رگرشن رو فقط بر حسب کرایه و سن میسازیم.X = df[[&#39;Fare&#39;, &#39;Age&#39;]].valuesy = df[&#39;Survived&#39;].valuesحالا از متود fit استفاده میکنیم تا مدل رو بسازیم.model.fit(X, y)فیت کردن مدل به معنی اینه که ما داریم از دیتا استفاده میکنیم تا بهترین خط رو پیدا کنیم.میتونیم ضریب هامون رو با اتریبیوت های coef_  و intercept_ببینیم.print(model.coef_, model.intercept_)کد کامل:import pandas as pdfrom sklearn.linear_model import LogisticRegressiondf = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)X = df[[&#39;Fare&#39;, &#39;Age&#39;]].valuesy = df[&#39;Survived&#39;].valuesmodel = LogisticRegression()model.fit(X, y)print(model.coef_, model.intercept_)خروجی:[[ 0.01615949 -0.01549065]] [-0.51037152]این مقدار به این معنیه که معادله ما به این شکله:0 = 0.0161594x + -0.01549065y + -0.51037152این خطیه که روی گراف کشیده میشه. میتونید ببینید که کارش تو جدا کردن نقاط زرد و بنفش خوبه ( اما عالی نیست).ما خودمون رو با استفاده کردن از 2تا از فیچرها محدود کردیم، پس در بخش های بعدی از همه فیچر ها استفاده میکنیم.ممکنه حفظ کردن عبارات import برای هر مدل sklearnسخت باشه، اگه یادتون نمیمونه از داکیومنتیشن scikit-learn استفاده کنید.با مدل پیشبینی کنید.ما خودمون رو با استفاده کردن از فقط 2تا از فیچر ها در قسمت قبلی واقعا محدود کردیم. پس بیاید مدلمون رو با به کار بردن همشون دوباره بسازیم.X = df[[&#39;Pclass&#39;, &#39;male&#39;, &#39;Age&#39;, &#39;Siblings/Spouses&#39;, &#39;Parents/Children&#39;, &#39;Fare&#39;]].valuesy = df[&#39;Survived&#39;].valuesmodel = LogisticRegression()model.fit(X, y)حالا میتونیم از متود predict استفاده کنیم تا پیشبینی انجام بدیم.اولین مسافر دیتاست به این شکله:[3, True, 22.0, 1, 0, 7.25]این به این معنیه که مسافر در Pclass 3، مذکر، 22ساله، دارای یک همراه(خواهر برادر یا همسر)، 0 والد یا فرزند و 7.25 دلار پرداخت کرده. بیاید ببینیم مدل برای این مسافر چه چیزی پیشبینی میکنه. حواستون باشه که حتی اگر فقط 1 دیتاپوینت هم به مدل بدین متود predict یه آرایه 2بعدی numpy رو میگیره و یه آرایه 1 بعدی برمیگردونه.print(model.predict([[3, True, 22.0, 1, 0, 7.25]]))خروجی:[0]خروجی ما 0 هست که به این معنیه که مدل پیشبینی میکنه که مسافر زنده نمونده.بیاید ببینیم مدل ما برای 5 ردیف اول دیتا چی پیشبینی میکنه و با آرایه تارگت مقایسش کنیم.print(model.predict(X[:5]))  # [0 1 1 1 0]print(y[:5]) # [0 1 1 1 0]بنظر میاد همرو درست پیشبینی کردیم!به مدل امتیاز بدیمما میتونیم با شمردن تعداد دیتاپوینت هایی که درست پیشبینی شدن یه کلیتی از صحت کارکرد مدلمون بدست بیاریم. به این میگن امتیاز دقت ( accuracy score ).یه آرایه از مقادیر yپیشبینی شده درست میکنیم:y_pred = model.predict(x)حالا میتونیم یه آرایه از مقادیر Boolean درست کنیم که نشون بده آیا مقادیر درست پیشبینی شدن یا نه:y == y_predبرای گرفتن تعداد این پیشبینی های درست، میتونیم از تابع جمع زدن numpyاستفاده کنیم.print((y == y_pred).sum())خروجی: 714این به این معنیه که از 887 دیتاپوینت، مدل 714 مورد رو درست پیشبینی میکنه.برای گرفتن درصد صحیح، این مقدار رو تقسیم بر تعداد کل مسافرین میکنیم. تعداد کل مسافرین رو با استفاده از اتریبیوت shape بدست میاریم.امتیاز دقت ( اکیورسی اسکور) به شکل زیر به دست میاد:print((y == y_pred).sum() / y.shape[0])خروجی:0.8049605411499436پس دقت مدل ما 80 درصد هست. در واقع، مدل ما درباره 80% دیتاپوینت ها پیشبینی درستی رو ارائه میده.انجام این محاسبه رایجه اما خود sklearn این فرمول رو برای ما در قالب متود scoreآماده کرده. متود scoreاز مدل برای پیشبینی x استفاده میکنه و درصد تطابق اونهارو با yمیشمره.print(model.score(X, y))خروجی:0.8049605411499436با این روش جایگزین برای محاسبه دقت، ما همان مقدار، 80٪ را دریافت می کنیم.</description><category>Aryan Esmaili</category><author>Aryan Esmaili</author><pubDate>Tue, 16 Aug 2022 01:13:42 +0430</pubDate></item><item><title>آموزش ماشین لرنینگ با پایتون ( پارت پنجم- کلسیفیکیشن)</title><link>https://virgool.ir/Rocket/machinelearningwithpythonp5-a6sp5u5ut2bi</link><description>لازم به ذکره این دوره نسخه ترجمه شده دوره ماشین لرنینگ سایت SoloLearn هست و من فقط ترجمه اون رو انجام دادم.در این قسمت ما با  کلسیفیکیشن (دسته بندی) آشنا میشیم.کلسیفیکیشن چیست؟کلسیفیکیشن در کجای دنیای ماشین لرنینگ جای می گیرد؟ماشین لرنینگ در سطح بالا از یادگیری نظارت شده و نظارت نشده تشکیل میشه.یادگیری نظارت شده به این معنیه که ما داده های تاریخی را برچسب گذاری میکنیم و از اونها برای اطلاع رسانی به مدل خود استفاده میکنیم. ما به اون برچسب یا چیزی که میخوایم پیشبینیش کنیم تارگت میگیم. پس در یادگیری نظارت شده، یه هدف مشخص(تارگت) برای اون اطلاعات گذشته مون داریم و در یادگیری نظارت نشده هدف مشخصی نداریم.در یادگیری نظارت شده، کلسیفیکیشن (دسته بندی) و رگرشن رو داریم.مسائل کلسیفیکیشن مسائلین که توی اونا تارگت ما یه &#34;دسته&#34; (کتگوری) ست. (یعنی میخوایم ببینیم به چه دسته ای تعلق میگیره) ( معمولا True یا False ه اما میتونه چندین کتگوری هم باشه). مشکلات رگرشنی اون هایین که تارگت ما یه مقدار عددی هست.برای مثال، پیشبینی کردن قیمت یک خونه یه مسئله رگرشنی هست.تحت نظارته =&gt; چون ما دیتای فروش های گذشته اون خونه رو داریم. رگرشنه =&gt; چون قیمت خونه یه عدده. پیشبینی کردن اینکه آیا کسی وامی که گرفته رو پس میاره یا نه یه مشکل کلسیفیکیشنه. تحت نظارته =&gt; چون ما گذشته طرف رو داریم(همون وام های قبلی که گرفته)، کلسیفیکیشنه =&gt; چون میخوایم ببینیم آیا طرف جز دسته خوش قول هاست یا بدقول ها.لاجیستیک رگرشن با اینکه رگرشن توی اسمش داره اما یه الگوریتم برای حل کردن مشکلات کلسیفیکیشنه، نه مشکلات رگرشنترمینولوژی کلسیفیکیشنبیاید دوباره به دیتاست تایتانیک نگاه کنیم:ستون Survived ( بقا یافته) چیزیه که ما سعی داریم پیشبینیش کنیم. ما به این میگیم تارگت.میبینید که یه لیست از 1 ها و 0 هاست. 1 یعنی مسافره زنده مونده، 0 یعنی مسافره بقا پیدا نکرده.باقی ستون ها اطلاعاتی راجب مسافرن که ما میتونیم ازشون استفاده کنیم تا تارگت رو پیشبینی کنیم. به این ستون ها میگیم یه فیچر (ویژگی-خصوصیت). فیچر ها دیتایی هستن که ما برای پیشبینی کردن از اونها استفاده میکنیم.درحالی که میدونیم کدوم مسافر های توی دیتاست زنده موندن، میخوایم راجب مسافرهایی که نتونستیم همچین اطلاعاتی راجبشون جمع آوری کنیم پیشبینی کنیم. ما یک مدل ماشین لرنینگ میسازیم تا این کارو واسمون انجام بده.ممکنه بشنوید به فیچر ها predictors (پیشبینی کننده ها) هم بگنیک مدل خطی برای کلسیفیکیشندسته بندی گرافیکیدر پایان ما قراره از همه فیچر ها استفاده کنیم ولی بیاید برای سادگی اول فقط از 2تا فیچر استفاده کنیم ( کرایه و سن). استفاده کردن از 2 فیچر مارو قادر میسازه تا بتونیم دیتا رو در یک گراف نشون بدیم.بر روی محور x ها ما کرایه و روی محور y ها سن مسافر هارو داریم. نقاط زرد مسافر هایین که زنده موندن و نقاط بنفش مسافر هایین که زنده نموندن.میتونید ببینید که نقاط زرد بیشتری در کف گراف نسبت به بالاش دیده میشه. این بخاطر اینه که بچه ها احتمال زنده بودنشون نسبت به بزرگسال ها بیشتربوده، که با دید اولیه ما سازگاره. به طور مشابه، نقاط زرد بیشتری در سمت راست گراف دیده میشه که به معنی اینه که مسافرایی که پول بیشتری دادن، احتمال زنده بودنشون بیشتر بوده.کار یک مدل خطی (linear Model)اینه که بهترین خطی رو پیدا کنه که دو دسته (کلاس) مارو از هم جدا میکنه، که نقاط زرد روی یک سمت و نقاط بنفش روی سمت دیگری باشه.این یه مثال برای یک خط خوبه. این خط برای پیشبینی مسافران جدید استفاده میشه. اگه دیتاپوینت  مسافرا سمت راست اون خط قرار بگیره، ما پیشبینی میکنیم که اونا زنده موندن. اگر روی سمت چپ باشن، پیشبینی میکنیم که زنده نموندن.معادله خطیک خط با معادله زیر تعریف میشه:0 = ax + by + cمقادیر a و b و c ، ضریب هستند. هر 3 مقدار منفردی یه خط مخصوص به خودش رو ایجاد میکنه.بیاید به خطی نگاه کنیم که در اون a=1,  b = -1,  c = -30 هست.0 = (1)x + (-1)y + (-30)سه ضریب 1 و -1 و -30 هستنیادتون باشه که ما توی نمودارمون کرایه محور x  و سن محور y رو تشکیل میداد.برای کشیدن یک خط از یک معادله خط، ما به 2 نقطه از اون نیاز داریم.میتونیم ببینیم که برای مثال، نقطه (30,0) بر روی سمت راست خط ما میوفته. ( 30 کرایه، 0 سن). اگر ما اونو وارد معادله کنیم، جواب میده.30 – 0 – 30 = 0ما همچنین میتونیم ببینیم که نقطه (50, 20) روی خط قرار داره ( کرایه 50، سن 20).این چیزیه که خط ما روی نمودار بنظر میاد:پیشبینی کردن بر حسب خطبیاید دوباره به همون خط نگاه کنیم:0 = (1)x + (-1)y – 30اگر ما دیتای یه مسافر رو بگیریم، میتونیم از این معادله استفاده کنیم تا مشخص کنیم اون مسافره کدوم طرف این خط میوفته. برای مثال، بیاید بگیم که یه مسافر داریم که کرایه ش 100 دلار و سنش 20 سال هست.اگر ما این مقادیر رو وارد معادله کنیم جواب 50 رو به ما میده.از اونجایی که جوابمون مثبته، نقطه ما سمت راست خط میوفته و ما پیشبینی میکنیم که اون مسافر زنده مونده.حالا بیاید بگیم که یه مسافر کرایه 10دلار  و 50 سال سن داشته.اگر این مقادیر رو وارد معادله کنیم جواب -70 میده و از اونجایی که منفیه، سمت چپ خط ما میوفته و ما پیشبینی میکنیم که اون زنده نمونده.چی باعث میشه یه خط خوب باشه؟ بیاید به 2 خط متفاوت نگاه کنیم.اولی همون خطیه که تا الان باهاش کار میکردیم. بیاید بهش بگیم خط 10 = (1)x + (-1)y - 30حالا ما یک معادله دیگر برای یک خط دیگر داریم. بیاید به این بگیم خط 2.0 = (4)x + (5)y – 400اگه به دو خط نگاه کنیم میبینیم که خط 1 نقاط زرد بیشتری روی سمت راستش داره و نقاط بنفش بیشتری روی سمت چپ خودش داره. خط 2 نقاط زیادی روی سمت راست خودش نداره. هم نقاط زرد و هم نقاط بنفش بیشترشون روی سمت چپ اون هستن. این باعث میشه ما خط 1 رو ترجیح بدیم چون کار جدا کردن نقاط زرد و بنفش رو بهتر انجام میده.ما نیازه که این ایده رو از نظر ریاضیاتی بیان کنیم تا بتونیم اونو بصورت الگوریتمی حل کنیم و بهترین خط رو پیدا کنیم.لاجیستیک رگرشن یک راه ریاضیاتی برای پیدا کردن بهترین خطه.</description><category>Aryan Esmaili</category><author>Aryan Esmaili</author><pubDate>Tue, 16 Aug 2022 00:49:58 +0430</pubDate></item><item><title>آموزش ماشین لرنینگ با پایتون ( پارت چهارم- matplotlib)</title><link>https://virgool.ir/Rocket/machinelearningwithpythonp4-vgluoq9ttwrn</link><description>لازم به ذکره این دوره نسخه ترجمه شده دوره ماشین لرنینگ سایت SoloLearn هست و من فقط ترجمه اون رو انجام دادم.در این قسمت ما با کتابخونه Matplotlib آشنا میشیم.طرح پراکندگی( Scatter plot )ما با استفاده از matplotlib دیتامون رو نمایش میدیم. نمایش دادن دیتامون میتونه به ما کمک کنه که راجب دیتامون یه پیش زمینه پیدا کنیم.اول باید matplotlib رو ایمپورت کنیم. یه عادت رایج اینه که اونو به اسم plt ایمپورت کنیمimport matplotlib as pltاز تابع scatter استفاده میکنیم تا دیتامون رو نمایش بدیم. اولین پارامتر تابع scatter محور x یا جهت افقی ماست و دومین پارامتر محور yیا جهت عمودی هست.plt.scatter(df[‘Age’], df[‘Fare’])خروجی:این کد Age رو روی محور افقی و Fare رو روی محور عمودی نشون میده.واسه اینکه تفسیرش راحت تر بشه، لیبل های xو yرو اضافه میکنیم:plt.xlabel(&#39;Age&#39;)plt.ylabel(&#39;Fare&#39;)خروجی:ما همچنین میتونیم از دیتامون استفاده کنیم تا نمودار پراکندگیمون رو رنگی کنیم. این به هرکدوم از 3 کلاس ما یه رنگ متفاوت میده. ما پارامتر c رو اضافه میکنیم و بهش یه سری pandas میدیم. در این مورد، سری pandasما 3 مقدار ممکن داره(مسافر فرست کلس، کلاس دوم و سوم)، پس ما میبینیم که هر نقطه نمودارمون یکی از این سه رنگ رو میگیرهplt.scatter(df[&#39;Age&#39;], df[&#39;Fare&#39;], c=df[&#39;Pclass&#39;])خروجی:نقاط بنفش فرست کلس، سبز ها کلاس دو و نقاط زرد کلاس سه هستن.یه اسکتر پلات( scatter plot/ طرح پراکندگی) برای نشون دادن تمام مقادیر دیتای شما روی یک نمودار استفاده میشه. برای ارائه بصری دیتامون باید اونو به دو مورد محدود کنیم.خطحالا که میتونیم دیتاپوینت هامون رو بصورت منفرد نشون بدیم، بیاید ببینیم چطور میشه روی نمودار خط بکشیم. تابع plot این کارو میکنه. چیزی که در دنباله اومده یه خط میکشه که تقریبا فرست کلس رو از کلاس 2 و 3 جدا کنه. ما همینطوری و بدون محاسبه خط رو از نقطه (0,85) تا (80, 5) کشیدیم. سینتکس ما یه لیست مقادیر xو یه لیست مقادیر y داره.plt.plot([0, 80], [85, 5])خروجی:میتونید ببینید که نقاط زرد و سبز اکثرا زیر خط قرار دارن و نقاط بنفش اکثرا بالان. ما این کارو دستی انجام دادیم اما در درس بعدی یاد میگیریم چطور اینو با الگوریتم انجام بدیم.در matplotlib ، ما از تابع scatter استفاده میکنیم تا یه اسکتر پلات بسازیم و از plotاستفاده میکنیم تا یه خط بکشیم</description><category>Aryan Esmaili</category><author>Aryan Esmaili</author><pubDate>Sat, 13 Aug 2022 21:27:29 +0430</pubDate></item><item><title>آموزش ماشین لرنینگ با پایتون ( پارت سوم- Numpy)</title><link>https://virgool.ir/@arian.esmaeli.ae/machinelearningwithpythonp3-izwjgcmnpdn9</link><description>لازم به ذکره این دوره نسخه ترجمه شده دوره ماشین لرنینگ سایت SoloLearn هست و من فقط ترجمه اون رو انجام دادم.در این پارت ما با کتابخونه Numpy آشنا میشیماصلا Numpy چی هست؟در واقع Numpy یه پکیج پایتونه که باهاش جدول های مقادیر عددی و لیست هارو دستکاری میکنیم. باهاش میشه کلی محاسبات آماری انجام داد. همچنین ما تو Numpy به لیست یا جدول دیتا یه آرایه Numpy  یا Numpy Array میگیم.ما معمولا این دیتارو به صورت دیتافریم Pandas میگیریم و به آرایه Numpy تبدیلش میکنیم. دیتافریم های Pandas از این جهت خیلی خوبن که ما اسم ستون ها و بقیه اطلاعات متنی رو داریم که باعث میشه خوندنشون برای آدما خیلی راحت باشه. یه دیتافریم Pandas، در عین حال که خوندنش برای آدما آسونه؛ فرمت ایده آل برای انجام محاسبات نیست. آرایه های Numpy درسته که خوندنشون برای آدما سخت تره، اما فرمتی که دارن باعث میشه بتونیم محاسبات لازم رو روشون انجام بدیم.&#34; در واقع Numpy یه ماژول پایتون برای انجام محاسبات روی جدول های دیتاست. منشا Pandas، Numpy هست&#34;تبدیل کردن یه سری Pandas به یه آرایه Numpyما معمولا درحالی شروع به کار میکنیم که دیتامون به شکل یه دیتافریم Pandas هست، ولی بعدش نیاز پیدا میکنیم که دیتامون رو به شکل آرایه Numpy در بیاریم.در واقع این کار توسط اتریبیوتِ (attribute)  values انجام میشه.بیاید ستون Fare(کرایه) رو به یه آرایه Numpy تبدیل کنیم.اول یادآوری میکنم که با استفاده از یه جفت Bracket ما ستون Fare رو سلکت میکنیم:df[‘fare’]بعد از اتریبیوت values استفاده میکنیم تا مقادیر رو به صورت یه آرایه Numpy بگیریم.df[‘Fare’].valuesکد کامل:import pandas as pddf = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)print(df[&#39;Fare&#39;].values)و این چیزیه که آرایه بالا به نظر میاد:array([ 7.25 , 71.2833, 7.925, 53.1, 8.05, 8.4583,...نتیجه یه آرایه 1 بعدی هست. اینو ازونجا میتونیم بگیم که فقط 1 مجموعه Bracket ( [] ) داریم و آرایه مون فقط بطور افقی ادامه پیدا میکنه. اتریبیوت values یه سری Pandas اون رو به صورت یه آرایه Numpy به ما میدهتبدیل کردن از یه دیتافریم Pandas به یه آرایه Numpyاگر ما به جای یه سری Pandas یه دیتافریم Pandas داشته باشیم، ما بازم میتونیم از اتریبیوت values استفاده کنیم اما ایندفعه بهمون یه آرایه Numpy 2 بعدی برمیگردونه.یادتون باشه ما برای ساختن یه دیتافریم Pandas از سینتکس زیر استفاده میکنیم:df[[‘Pclass’, ‘Fare’, ‘Age’]]دوباره، ما برای گرفتن یه آرایه Numpy ازش، از اتریبیوت values استفاده میکنیم.df[‘Pclass’, ‘Fare’, ‘Age’]].valuesکد کامل:import pandas as pddf = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)print(df[[&#39;Pclass&#39;, &#39;Fare&#39;, &#39;Age&#39;]].values)این چیزیه که آرایه بالا به نظر میرسه:array([[ 3. , 7.25 , 22. ],[ 1. , 71.2833, 38. ],[ 3. , 7.925 , 26. ],... ,[ 3. , 23.45 , 7. ],[ 1. , 30. , 26. ],[ 3. , 7.75 , 32. ]])این یه آرایه 2 بعدیه؛ اینو ازونجا میتونیم بگیم که 2 مجموعه Bracket ( [] ) داریم و هم آرایه مون افقی و هم عمودی گسترش پیدا میکنه.اتریبیوت values اگر روی یه دیتافریم Pandas اعمال بشه، یه آرایه 2بعدی به ما برمیگردونه.اتریبیوت  Shapeما برای مشخص کردن اندازه (size) آرایه Numpy مون از اتریبیوت Shape استفاده میکنیم. در واقع این اتریبیوت به ما میگه که آرایه ما چند ستون و ردیف داره.بیاید اول یه آرایه با استفاده از Pclass و Fare و Ageبسازیم:arr = df[[‘Pclass’, ‘Fare’, ‘Age’]].valuesاگر ما به shape نگاه کنیم، تعداد ستون ها و ردیف هارو بهمون نشون میده:print(arr.shape) خروجی: (887,3)این نتیجه این معنی رو میده که ما 887 ردیف و 3 ستون داریم.&#34;از اتریبیوت Shape برای پیدا کردن تعداد ردیف ها و ستون های یه آرایه Numpy استفاده کنید. شما همچنین میتونید از shape روی یک دیتافریم Pandas استفاده کنید ( df.shape ).&#34;از یک آرایه Numpy انتخاب کنیم!بیاید فرض کنیم ما آرایه Numpy زیر رو ساختیم:arr = df[[‘Pclass’, ‘Fare’, ‘Age’]].valuesما میتونیم یه عنصر(المنت/element) منفرد رو از یه ارایهNumpy به شکل زیر انتخاب کنیم:arr[0, 1]این به معنی ستون دوم ( ایندکس(شاخص) از 0 شروع میشه پس 1 به معنی ستون دومه) ردیف اول ( ایندکس 0) هست. (یادتون باشه سینتکس بصورت (rows, columns) هست یعنی اول ردیف و بعد ستون رو وارد میشه)پس، کرایه اولین مسافر 7.25 بوده که خروجی کد بالاست?ما همچنین میتونیم کل ردیف اول رو از مسافر اول بگیریم( ایندفعه بدون مشخص کردن یه ستون خاص):print(arr[0])برای مشخص کردن یه ستون منفرد، مثلا در این مورد ستون Age، باید از یه سینتکس خاص استفاده کنیم(توضیحات اضافه : اسم این سینتکس slicing به معنی برش زدن هست و در زبان پایتون معمولا برای جدا کردن قسمتی از string ها یا list ها کاربرد داره، خصوصا تو List ها) :print(arr[ : , 2])این سینتکس میتونه به این شکل تفسیر بشه که ما داریم همه ردیف هارو میگیریم، اما فقط از ستون با ایندکس 2 ( یعنی ستون چندم؟).&#34;با استفاده از سینتکس های متفاوت در میان Bracketها، ما میتونیم مقادیر منفرد، ردیف کامل یا ستون کامل رو انتخاب (جدا) کنیم.&#34;ماسک کردن (Masking)بعضی وقتا ما میخوایم تمام ردیف هاییو انتخاب کنیم که یه سری خصوصیات ( criteria ) خاصی دارن.مثلا در این مثال ما تمام ردیف هایی ( مسافر هایی) که بچه ان ( در واقع در ستون Age مقداری کمتر از 18 دارن) رو انتخاب میکنیم.یادآوری نحوه انتخاب کردن و ساخت آرایه اون:arr = df[[‘Pclass’, ‘Fare’, ‘Age’]].valuesیادتون باشه که ما ستون Age رو به شکل زیر ازآرایه میگیریم:arr[ : , 2]ما اول چیزیو میسازیم که بهش Mask میگیم. در واقع Mask یه آرایه از مقادیر Boolean (True/False) که بهمون میگه آیا این مسافر بچه/کودک هست یا نه.mask = arr[:, 2] &lt; 18بیاید یه نگاهی به آرایه mask بندازیم تا مطمئن بشیم میفهمیم چی به چیه:array([False, False, False, False, False, False, False, True, False,...مقدار False در واقع به معنی بالغ بودن فرد (مسافر) و مقدار True به معنی بچه بودن اونه، پس 7 مسافر اول ما فرد بزرگسال/بالغ بودن ولی هشتمین مسافر ما یک کودکه و نهمین مسافر ما بازم یه بزرگساله.حالا ما از mask استفاده میکنیم تا فقط اون مقادیری رو انتخاب کنیم که برامون مهمن:arr[mask]حالا بیاید به این آرایه جدید نگاه کنیم:array([[3., 21.075, 2.],[2., 30.0708, 14.],[3., 16.7, 4.],[3., 7.8542, 14.],اگه یادتون باشه ستون سوم سن مسافرین بود، پس تمام ردیف های اینجا متعلق به مسافر هاییه که کودک هستن. ( توضیحات اضافه: درواقع ما اینجا اومدیم از arr فقط اطلاعات مسافرانی رو جمع آوری کردیم که کودک بودن. یعنی تک تک ردیف های این آرایه آخری، Pclass و Fare و Age کودکان بودن نه بزرگسالان مابین اونها)عموما ما نیازی نداریم که متغیر mask رو تعریف کنیم و کل کار بالا رو میتونیم تو یه خط انجام بدیم:arr[arr[:, 2] &lt;18]کد کامل:import pandas as pddf = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)# take first 10 values for simplicityarr = df[[&#39;Pclass&#39;, &#39;Fare&#39;, &#39;Age&#39;]].values[:10]mask = arr[:, 2] &lt; 18print(arr[mask])print(arr[arr[:, 2] &lt; 18])&#34;یه ماسک یه آرایه Boolean هست که بهمون میگه کدام مقادیر آرایه مورد نظر ما هستن&#34;جمع زدن و شمردنفرض کنید میخوایم ببینیم چندتا از مسافرینمون کودک ان. ما همچنان همون تعریف آرایه قبل و داریم و همونطوری باید بچه هارو انتخاب کنیم:arr = df[[&#39;Pclass&#39;, &#39;Fare&#39;, &#39;Age&#39;]].valuesmask = arr[:, 2] &lt; 18یادتون باشه که مقادیر True به عنوان 1 و مقادیر False به عنوان 0 تفسیر میشن. ما میتونیم این آرایه رو جمع بزنیم و این در واقع معادل شمردن مقادیر True هست.(توضیحات اضافه: چون False های ما 0 هستن عملا جمع زدنشون تفاوتی ایجاد نمیکنه و sum ما فقط نتیجه جمع زده شدن True ها ( 1 ها) هست.)print(mask.sum())همچنان، ما اونقدرا به متغیر mask نیاز نداریم:print((arr[:,2] &lt; 18).sum())کد کامل:import pandas as pddf = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)# take first 10 values for simplicityarr = df[[&#39;Pclass&#39;, &#39;Fare&#39;, &#39;Age&#39;]].values[:10]mask = arr[:, 2] &lt; 18print(arr[mask])print(arr[arr[:, 2] &lt; 18])جمع زدن یه آرایه مقادیر بولین به ما تعداد مقادیر Trueرو میده</description><category>Aryan Esmaili</category><author>Aryan Esmaili</author><pubDate>Sat, 13 Aug 2022 21:20:06 +0430</pubDate></item><item><title>آموزش ماشین لرنینگ با پایتون ( پارت دوم - Pandas)</title><link>https://virgool.ir/@arian.esmaeli.ae/machinelearningwithpythonp2-tpdijymsvuup</link><description>لازم به ذکره این دوره نسخه ترجمه شده دوره ماشین لرنینگ سایت SoloLearn هست و من فقط ترجمه اون رو انجام دادم.در این قسمت ما  با کتابخونه Pandas آشنا میشیم.خواندن اطلاعات با pandasاصلا Pandas چی هست؟این کورس با زبان پایتون که یکی از پراستفاده ترین زبان ها برای ماشین لرنینگ است نوشته شده.یکی از دلایل ما اینه که ماژول های مفید متعددی برای کار کردن با دیتا در پایتون وجود داره. اولین ماژولی که ما قراره معرفی کنیم اسمش Pandas هست.درواقع Pandas یه ماژول پایتونه که به ما کمک میکنه اطلاعات رو بخونیم و دستکاری کنیم. یکی از چیزای باحال راجب Pandas اینه که شما میتونید دیتا رو وارد کنید و به شکل یه جدول (table) ببینیدش که خیلی خوانا تره، ولی همچنین اطلاعات میتونه بصورت عددی تفسیر بشه که بتونید روش یه عالمه محاسبه انجام بدید.ما به جدول اطلاعات میگیم چارچوب داده(DataFrame / دیتا فریم).پایتون تمام نیاز های ماشین لرنینگی مارو برآورده میکنه. ما از Pandas برای دستکاری دیتا استفاده میکنیم.دیتاتون رو وارد کنید!با ایمپورت کردن Pandas شروع میکنیم. یه عادت رایج اینه که Pandas رو با اسم pd ایمپورت کنیم که بعدا بشه راحت تر تایپش کرد.import pandas as pdما با یه دیتاست از مسافران تایتانیک کار خواهیم کرد. درباره هر مسافر ما یک سری اطلاعات به علاوه اینکه آیا از حادثه زنده موندن یا نه داریم.اطلاعات ما به فرمت CSV ( Comma-Separated values)  ذخیره شده. فایل titanic.csv  در پایین قرار گرفته. اولین خط هدر (header / سرتیتر) و هر خط بعدیش اطلاعات یه مسافره.Survived,Pclass,Sex,Age,Siblings/Spouses,Parents/Children,Fare&#xA;0,3,male,22.0,1,0,7.25&#xA;1,1,female,38.0,1,0,71.2833&#xA;1,3,female,26.0,0,0,7.925&#xA;1,1,female,35.0,1,0,53.1ما قراره دیتا رو به Pandas بدیم تا بتونیم به شکل یه دیتافریم ببینیمش.تابع read_csv یه فایل به فرمت csv رو میگیره و به یه دیتافریم pandas تبدیلش میکنه.df = pd.read_csv(‘titanic.csv’)الان dfدیتافریم pandas ماست که دیتاست تایتانیک رو توی خودش داره.حالا ما میتونیم از متود headاستفاده کنیم تا به دیتامون یه نگاهی بندازیم. متود head 5 ردیف (row) اول دیتافریم رو برمیگردونه.print(df.head())خروجی:دیتا عموما به صورت فایل های csv ذخیره میشه، که ما میتونیم به آسونی با تابع read_csv اون رو بخونیم. متود head 5ردیف اول رو برمیگردونه.دیتا رو خلاصه کنیممعمولا، دیتای ما برای اینکه ما همش رو یکجا نمایش بدیم خیلی بزرگه.نگاه کردن به ردیف های اول اولین قدم برای درک کردن دیتامونه، اما، ما بعدش میخوایم که به یه سری آمار خلاصه شده نگاه کنیم.میتونیم تو pandas از متود describe (توصیف) استفاده کنیم. این متود به ما یه جدول از آمار راجع به ستون ها ( columns ) بر میگردونه.print(df.describe())ما همچنین یه خط به کد زیر اضافه میکنیم تا پایتون رو مجبور کنیم هر 6تا ستون رو بهمون نشون بده. بدون این خط کد پایتون نتایج رو خلاصه میکنه.import pandas as pd&#xA;pd.options.display.max_columns = 6&#xA;df = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)&#xA;print(df.describe())خروجی:برای هر ستون ما چند آمار میبینیم. حواستون باشه که این آمار فقط برای ستون های عددی هستن.بیاید مرور کنیم هرکدوم از این آمار چه معنی دارن:Count -&gt; تعداد ردیف هاییه که مقدار (value) دارن. در این کیس ما ( تایتانیک) همه مسافرا به ازای هر ستون یه مقدار دارن، پس مقادیرمون 887 تان که تعداد کل مسافر هاست.Mean -&gt; همون میانگین ماست.Std -&gt; خلاصه شده عبارت standard deviationهست. انحراف معیار یه معیار برای نشون دادن پراکندگی دیتاست.مینیمم یا Min -&gt; کمترین مقدار25% -&gt; چارک اول (چارک25)50% -&gt; چارک دوم (چارک 50) همون میانه.75% -&gt; چارک سوم ( چارک 75)ماگزیمم یا Max -&gt; بزرگترین مقدار (ماگزیمم)ما برای اینکه یه دید اولیه از دیتامون پیدا کنیم از متود describe استفاده میکنیمدستکاری کردن دیتا با Pandasانتخاب کردن یک ستونما معمولا فقط با بعضی از ستون هایی که تو دیتاست داریم سر و کله میزنیم. برای اینکه یه ستون رو انتخاب کنیم، از Square Bracket ها و اسم ستون استفاده میکنیم:در این مثال ما ستونی که اطلاعات کرایه ( Fare ) مسافرین رو داره انتخاب میکنیمCol = df[‘Fare’]&#xA;print(col)نتیجه کد بالا چیزیه که ما بهش میگیم یه سریِ Pandas (Pandas Series).یه سری مثل یه دیتافریم میمونه، اما فقط یه ستونه.“یه سری pandas یه ستون از یه دیتافریم pandas هست&#34;کد کامل:import pandas as pd&#xA;df = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)&#xA;col = df[&#39;Fare&#39;]&#xA;print(col)انتخاب کردن چندین ستونما همچنین میتونیم چندین ستون از دیتافریم اولیه مون رو انتخاب کنیم و درواقع یه دیتافریم کوچیک تر ایجاد کنیم.ما قراره فقط ستون های Age ، Sex ، و Survived رو از دیتافریم اصلیمون انتخاب کنیمما این مقادیر رو به این شکل توی یه لیست میزاریم:[‘Age’, ‘Sex’, ‘Survived’]حالا ما این لیست رو میزاریم بین همون bracket های سابقمون. وقتی یه دیتافریم خیلی واسه نمایش داده شدن بزرگه، میتونید از متود head استفاده کنید تا فقط 5 ردیف اولش رو پرینت کنید:small_df = df[[&#39;Age&#39;, &#39;Sex&#39;, &#39;Survived&#39;]]&#xA;print(small_df.head())کد کامل:import pandas as pd&#xA;df = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)&#xA;small_df = df[[&#39;Age&#39;, &#39;Sex&#39;, &#39;Survived&#39;]]&#xA;print(small_df.head())خروجی:وقتی فقط داریم یه ستون از دیتافریم جدا میکنیم، از یه جفت Square Bracket استفاده میکنیم، اما وقتی چندین ستون رو میخوایم انتخاب و جدا کنیم؛ از 2 جفت Square Bracket استفاده میکنیم.ساختن یک ستونما معمولا دیتامون رو به شکل متفاوتی از شکلی که بهمون داده میشه و هست، میخوایم. مثلا دیتای ما جنسیت مسافر رو به شکل یه string ( “male” برای مرد و “female”برای زن) داره. شکلی که الان داره بسیار واسه ما آدما مناسبه و خوندنش راحته؛ اما وقتی ما بعدا بخوایم محاسبات روی دیتامون انجام بدیم؛ ما این ستون جنسیت رو به شکل مقادیر Boolean(True/False) میخوایم.ما میتونیم به راحتی توی دیتافریمی که داریم ستونی ایجاد کنیم که اگر مسافرمون مرد بود مقدار True و اگر زن بود مقدار False رو داشته باشه.حالا اول میایم ستون Sex رو انتخاب میکنیم:df[‘Sex’]ما یه سری pandas  درست میکنیم که قراره یه مجموعه از True ها و False ها باشه (اگر مسافرمون مرد بود مقدار True و اگر زن بود مقدار False)print(df[&#39;Sex&#39;] == &#39;male&#39;)حالا ما میخوایم با این نتایج یه ستون بسازیم. برای ساختن یه ستون جدید ما از همون سینتکس بِرَکِت دار استفاده میکنیم و این مقدار جدید رو بهش میدیم:df[‘male’] = df[‘Sex’] == ‘male’کد کامل:import pandas as pd&#xA;df = pd.read_csv(&#39;https://sololearn.com/uploads/files/titanic.csv&#39;)&#xA;df[&#39;male&#39;] = df[&#39;Sex&#39;] == &#39;male&#39;&#xA;print(df.head())دیتافریم ما الان به شکل تصویر زیر هست. به ستون جدید در انتها توجه کنید:معمولا دیتای ما در فرمت ایده آلی قرار نداره. خوشبختانه pandas ساختن ستون های جدید برحسب اطلاعاتمون رو آسون کرده و واسه همین ما میتونیم دیتامون رو اونطوری که میخوایم بچینیم.</description><category>Aryan Esmaili</category><author>Aryan Esmaili</author><pubDate>Sat, 13 Aug 2022 21:06:51 +0430</pubDate></item><item><title>آموزش ماشین لرنینگ با پایتون ( پارت اول - معرفی )</title><link>https://virgool.ir/Rocket/machinelearningwithpythonp1-m7cudvafw3uf</link><description>لازم به ذکره این دوره نسخه ترجمه شده دوره ماشین لرنینگ سایت SoloLearn هست و من فقط ترجمه اون رو انجام دادم.خوش آمدید!به شما بابت قدم بزرگی که برای تبدیل شدن به یک متخصص ماشین لرنینگ برداشته اید تبریک میگویم!ما از زبان برنامه نویسی پایتون در این کورس استفاده می کنیم.ماشین لرنینگ درواقع یک راه برای گرفتن اطلاعات (Data) و تبدیل اونها به یک بینش (insight) هست. ما از قدرت کامپیوتر استفاده میکنیم تا مثال هایی از گذشته رو آنالیز کنیم و یک مدل بسازیم که میتونه یه نتیجه رو برای مثال های جدید پیشبینی کنه.ما هرروز با مدل های ماشین لرنینگ سروکار داریم. برای مثال، وقتی نتفلیکس یک برنامه رو به شما معرفی میکنه، اونها یک مدل رو برحسب اینکه شما و بقیه چه برنامه هایی رو مشاهده کردین استفاده میکنن تا پیشبینی کنن شما از چی خوشتون میاد. وقتی آمازون یه قیمت برای یک آیتم انتخاب میکنه، یک مدل رو بر حسب اینکه چقدر آیتم های مشابه اون قبلا فروش رفتن استفاده میکنه. وقتی بانک به شما بخاطر فعالیت مشکوک حساب بانکیتون زنگ میزنه، اونها از یه مدل بر حسب فعالیت گذشته شما استفاده کردن تا رفتار مشکوک رو شناسایی کنن.در این کورس ما چندین تکنیک رو یاد میگیریم تا مسائل ماشین لرنینگ رو حل کنیم.&#34;ماشین لرنینگ میتونه برای ساخت یک ربات سخنگو (chatbot)، تشخیص دهنده اسپم یا تشخیص تصویر ( image recognition ) استفاده بشه&#34;پایتون یکی از زبان های بسیار رایجی هست که توسط متخصصین ماشین لرنینگ استفاده میشه.ما در این کورس چون هم دسترسی بهش راحته و هم قوی هست، ازش استفاده میکنیم و فرض رو بر روی این میزاریم که شما زبان پایتون رو فرا گرفتید.در این کورس ما چندین پکیج پایتون استفاده میکنیم که در حل مسائل ماشین لرنینگ مفید هستن. ما قراره از pandas , numpy , matplotlib, scikit-learn استفاده کنیم:)برای خوندن و دستکاری اطلاعات(Data ) از pandas ، برای محاسبات داده های عددی از numpy ، برای نشان دادن دیتا بصورت نمودار از matplotlib و برای ساخت مدل های ماشین لرنینگ از scikit-learn استفاده میکنیم.هرکدام از این پکیج ها بسیار گسترده هستن اما ما قبل از استفاده راجع به توابع (function) هایی که استفاده میکنیم صحبت خواهیم کرد.همچنین بخاطر اینکه پایه ماشین لرنینگ آمار هست یکسری مباحث ساده آمار هم مرور خواهیم کرد.&#34;این کورس هم مسائل تئوری و هم عملی تکنیک ماشین لرنینگ رو پوشش میده، اما ما روی اینکه چطور اونها رو در مثال های واقعی استفاده کنیم تمرکز داریم&#34;ماشین لرنینگ چیست؟در ماشین لرنینگ، ما درباره یادگیری تحت نظارت (supervised) و نظارت نشده (unsupervised) بحث میکنیم.یادگیری تحت نظارت  ( supervised ) زمانیه که ما هدف ( target ) مشخصی رو بر حسب اطلاعات گذشته داریم؛ مثلا، زمانی که میخوایم بدونیم یک ویلا به چه قیمتی فروش میره.یادگیری نظارت نشده ( unsupervised learning ) زمانیه که اطلاعاتی در گذشته وجود نداره که جواب به ما بده؛ به زبان دیگر جواب ما در گذشته یافت نمیشه. برای مثال: مشخص کردن مباحثی که در بررسی یک رستوران راجع به اونها بحث میشه.در این کورس ما تمرکزمون روی یادگیری نظارت شده ( تحت نظارت/supervised) هست. در یادگیری نظارت شده ما با مسائل رگرسیونی (Regression) و مسائل دسته بندی ( classification) روبرو هستیم.&#34;رگرسیون&#34; درواقع به پیشبینی یک مقدار عددی گفته میشه؛ مثلا قیمتی که یه ویلا در اون فروش میره. و &#34;دسته بندی&#34; پیشبینی اینه که یه چیزی در چه دسته ای قرار میگیره؛ مثلا آیا این شخصی که اومد از ما وام گرفت، وامش رو برمیگردونه (دسته خوش قول ها که باید بهشون وام بدیم) یا سابقه ش ( همون past Data) نشون میده این آدم احتمال زیاد برنمیگردونه و به مشکل میخوریم باهاش( دسته بد قول ها)؟.تمرکز ما بر روی مسائل دسته بندی هست.مثال های ما مسائل زیر خواهند بود:پیشبینی اینکه چه کسانی در غرق شدن تایتانیک جون سالم به در خواهند برد.مشخص کردن یک عدد از روی دستخط یک نفر. استفاده کردن از اطلاعات نمونه برداری بافتی ( بیوپسی/ biopsy) برای مشخص کردن اینکه آیا این توده سرطانی هست یا نه؟سعی کنید دسته هارو در مثال های بالا پیدا کنیدما قراره از یک سری تکنیک های محبوب برای حل این مشکلات استفاده کنیم.در بخش های آینده با جزئیات بیشتری به هرکدومشون خواهیم پرداخت: لاجیستیک رگرسیون ( Logistic Regression ) درخت های تصمیم گیری ( Decision Trees ) جنگل های تصادفی (Random Forests) شبکه های نورونی ( Neural Networks)در پایان این کورس شما قادر خواهید بود که یک مجموعه داده (Dataset) بگیرید و با استفاده از پایتون چندین مدل مختلف بسازید تا بهترین مدل برای مسئله رو پیدا کنید.&#34;ماشین لرنینگ میتونه برای حل کردن بازه بزرگی از مسائل استفاده بشه. این کورس بر روی یادگیری نظارت شده و دسته بندی تمرکز داره&#34;مروری بر آمارمیانگین:وقتی با اطلاعات سر و کار داریم لازمه که یک سری آمار ساده رو محاسبه کنیم.فرض کنیم لیستی از سن افراد حاضر در یک کلاس رو داریم.ما اونهارو برای محاسبه راحت تر به صورت صعودی مرتب کردیم.“15, 16, 18, 19, 22, 24, 29, 30, 34”میانگین (mean) رایج ترین شاخص مرکزگراست.این مقادیر رو باهم جمع کنید و بر تعداد مقادیر تقسیم کنید:میانه( median ) مقداری ست که در وسط قرار می گیرد. در این مورد، چون ما 9 تا مقدار داریم، مقدار میانه 5مین است که همان 22 است.چارک هامیانه همچنین میتونه به عنوان چارک 50 نیز در نظر گرفته بشه. این به این معنیه که 50 درصد دیتا از میانه کوچک تر و 50 درصد از میانه بزرگتره. این به ما میگه وسط داده ها کجاست ولی معمولا ما به درکی از پراکندگی دیتا نیاز داریم و واسه همین معمولا به چارک اول ( 25) و سوم ( 75) نگاه میکنیم.چارک 25 اون مقداریه که در یک چهارم دیتا قرار داره ( ربع اولشه? ) و همچنین مقداریه که 25 درصدِ دیتا ازش کمتره و 75 درصدِ دیتا ازش بزرگتره.مشابها، چارک 75 در سه چهارمِ دیتا قرار داره و 75 درصد دیتا ازش کوچیکتر و 25 درصد دیتا از اون بزرگتره.اگه دوباره به سنین نگاه کنیم:15, 16, 18, 19, 22, 24, 29, 30, 34ما 9 مقدار(value) داریم. پس 25% دیتا تقریبا میشه 2 داده (datapoint) پس سومین داده بزرگتر از 25 درصد اطلاعاته. پس، سومین داده چارک 25 ماست که میشه همون 18(داده سوم).به طور مشابه، 75% دیتا تقریبا میشه 6 داده، پس داده 7م از75% دیتا بزرگتره و میشه چارک 75 که همون 29 هست (داده هفتم).بازه کامل دیتا بین 15 و 34ه. چارک های 25 و 75 بهمون میگن که 50 درصد دیتا بین 18 و 29 قرار دارن. این بهمون کمک میکنه درک کنیم دیتا چطور پراکنده شده.&#34; اگر تعداد زوجی از داده ها بهتون داده شد، برای پیدا کردن میانه(یا همون چارک 50)، میانگین 2 داده وسطی رو بدست میارید&#34;انحراف معیار و واریانسما میتونیم با استفاده از انحراف معیار(standard deviation) و واریانس دیتامون درک بهتری نسبت به پراکندگی دیتامون بدست بیاریم. انحراف معیار و واریانس معیارهای اینن که بفهمیم چقدر دیتامون پراکندست و چقدر پخش و پلاست.ما فاصله هر داده تا میانگین رو اندازه میگیریم.بیاید دوباره به سن هامون نگاه کنیم:15, 16, 18, 19, 22, 24, 29, 30, 34یادتون باشه میانگینمون 23 ست.بیاید حساب کنیم هر مقدارمون چقدر از میانگین فاصله داره. 15 8تا از میانگین فاصله داره.این لیست تمام فاصله هاست:8, 7, 5, 4, 1, 1, 6, 7, 11ما این مقادیر رو به توان 2 میرسونیم و باهم جمع میکنیم:نمونه مجذور فاصله اعداد از میانگینما این مقدار جدید ( 362) رو تقسیم بر تعداد داده هامون میکنیم و این به ما واریانس رو میده.برای بدست آوردن انحراف معیار، ریشه این عدد بدست اومده رو حساب میکنیم و 6.34 بدست میاد.اگر دیتامون بطور عادی مثل گراف زیر پراکنده شده باشه، 68% جمعیت در یک انحراف معیار از میانگین قرار دارن. در این گراف، ما منطقه ای که یک انحراف معیار از میانگین فاصله داره رو هایلایت کردیم. میتونید ببینید که منطقه هایلایت شده تقریبا دو سوم ( در واقع 68 درصد) منطقه زیر منحنی هست. اگر فرض کنیم دیتامون به طور عادی پخش شده باشه، میتونیم بگیم 68 درصد دیتامون در 1 انحراف معیار از میانگین قرار داره.آمار با پایتونما میتونیم تمام این اعمال رو با پایتون حساب کنیم. ما از پکیج numpy استفاده میکنیم. ما بعدا از numpy برای دستکاری آرایه ها (array manipulation)استفاده خواهیم کرد ولی فعلا از چند تا تابع آماری برای محاسبات آماری استفاده میکنیم:MeanMedianPercentileStd (انحراف معیار)Varاول پکیج رو import میکنیم. بسیار رایجه که اون رو به اسم npایمپورت کنید.import numpy as npبیاید اول دیتامون رو در قالب لیست داشته باشیم:data = [15, 16, 18, 19, 22, 24, 29, 30, 34]الان میتونیم از توابع numpy استفاده کنیم. برای میانگین، میانه، انحراف معیار و واریانس ما صرفا دیتا رو به عنوان لیست به تابع میدیم. اما واسه چارک باید لیست دیتا و چارک رو وارد کنیم ( عددی بین 0 تا 100 ).Import numpy as npdata = [15, 16, 18, 19, 22, 24, 29, 30, 34]print(“mean: ”, np.mean(data))print(“median: “, np.median(data))print(“75th percentile: “, np.percentile(data, 50))print(“standard deviation: ”, np.std(data))print(“variance : ” , np.var(data))&#xA;</description><category>Aryan Esmaili</category><author>Aryan Esmaili</author><pubDate>Sat, 13 Aug 2022 20:42:21 +0430</pubDate></item></channel></rss>