
در این صفحه میتوانید تمامی سؤالهای مطرح شده در خصوص دورهی رایگان علم داده که بطور کامل در کانال یوتیوب علم داده منتشر شده است را مشاهده نمائید.
اضافه کردن ستون با add_constant
سؤال: سوالم این هست که در جلسه بیستم که مربوط به لجستیک رگرسیون هست هم در ویدیو بخش اول دقیقه 32 و هم در بخش دوم دقیقه 12 ، وقتی داریم از روش OLS استفاده میکنیم وقتی چند تا فیچر هم داریم باز از Add-constant استفاده شده ، مگه add_constant برای وقتی نبود که ما فقط یک فیچر داریم و میخوایم x رو از حالت تک بعدی خارج کنیم ؟
پاسخ: سلام دوست عزیز. از
add_constant
به این منظور استفاده میکنیم که یک ستون با مقادیر ثابت 1 اضافه کنیم کنار سایر ستونهای خودمون. در واقع با اینکار میخواهیم intercept رو هم یکجورایی وارد بازی کنیم. اگر اینکار رو انجام ندهیم اینترسپت دخالتی در تعیین ضرایب نداره که کاملن اشتباه هست. پس اینجا تعداد متغیرها اصلن مهم نیست برای ما.
فراخوانی دیتاست روی گوگل کولب
سؤال: من از گیت هاب دیتاست های صفحه ی خودتون رو که فرمودید دانلود کردم ولی نمیتونم داخل گوگل کلب فراخوانیشون کنم. ممنون میشم راهنمایی بفرماییدتو ویدیوی دوم جلسه ی دوازدهم گفتید خودتون از تایپ نام دیتا ست استفاده کردید چون قبلا اپلود کردید. داخل گوگل کلب وقتی میخوام اپلود کنم فایل هایی csv نمیان برامممنون میشم نحوه ی اپلود و فراخوانی فایل دیتاست داخل گوگل کلب رو بفرمایید.
پاسخ: سلام دوست عزیز. نحوه خواندن فایل از کامپیوتر به گوگل کولب در دقیقه ۳:۳۰ از این ویدیو توضیح داده شده است ???
رگرسیون لجستیک و دستهبندی
سؤال: آقای دکتر من دو سوال داشتم.
1- یکی اینکه فرق بین logistic regression و clussification چیه مثلا در ویدئوی آخری هم targets یا outputs ها 0 و 1 بودند . آیا می توان برای مثال در دیتاست مربوط به قبولی (به صورت 0 و 1) با توجه به نمرات و حضور در کلاس از شیوه clussification استفاده کرد و یا برای ویدئوی جلسه آخر از logestic regresstion
2- و اینکه ذر ویدئوی آخر که output هامون binary هستند چرا از binary_crossentropy برای loss استفاده نکردیم و از sparse_categorical_crossentropy استفاده کردیم.
پاسخ: سلام. رگرسیون لجستیک یکی از الگوریتمهایی هست که کار دستهبندی (کلاسیفیکیشن) رو برای ما انجام میدهد، ولی تنها الگوریتم با این عملکرد نیست. اما در مورد سوال دوم، ببین شما اینجا میتونید از
binary_crossentropy
هم استفاده کنید چون خروجی دو تا سطح یا مقدار بیشتر نداره اما چون از one hot استفاده کردیم بهتره که
sparse_categorical_crossentropy
رو بکار بگیریم. در حالت کلی و در کار، دیتاآنالیست باید چندبار این آیتمها رو تغییر بده و در نهایت بهترینش رو انتخاب کند.
دامی وریبل، تاثیر حضور در کلاس و نمره چی پی ای
سؤال: سلام در ارتباط با بحث دامی ها تو مسئله تاثیر حضور در کلاس و نمره چی پی ای ما به حضور عدد یک نسبت دادیم و عدم حضور صفر، برای مسئله ی قیمت ماشین ستون نوع موتور که شامل ، بنزین و گازوئیل و… می شه اینجا باید به ترتیب خاصی بهشون عدد نسبت بدیم ؟
پاسخ: نه نیاز به رعایت ترتیب نیست. فقط در ستونی که مثلاً مقدار بنزین درست هست، عدد ۱ رو تخصیص میدیم و اگر بنزینی نباشه طبیعتاً صفر. اگر گازوییل باشه، عدد ۱ نباشه صفر و الی آخر.
ادامه سؤال: اگه داخل ستون ما چهار ولیو کتگوریکال داشته باشیم چطور ؟ همین ستون نوع موتور که در مسئله ماشین دست دو بررسی کردین همینطور بود . شما گفتین بنزین باشه یک میزاریم اگه نباشه صفر، اما سطری که مثلن بنزین نیس جاش گازوئیل نوشته یا گاز نوشته …اینارو صفر میزاریم ؟ فقط به بنزین مقدار یک می دیم ؟
ادامه پاسخ: در این حالت سه ستون جدید باید ایجاد کنیم، مثلاً بنزین، گازوئیل، برقی که اگر برای یک از ردیفها، ماشین بنزینی بود، فقط در ستون بنزین 1 داریم و مابقی صفر. حالا تکلیف چهارمین حالت چی میشه؟ اگر برای یک ردیف، هر سه (یعنی بنزین، گازوئیل، برقی) برابر با صفر شوند یعنی حالت چهارم رخ داده؛ یعنی ماشین ما از این سه نوع نیست و قطعاً باید از نوع چهارم باشد.
استانداردسازی StandardScaler در مقابل scale (بسیار مهم)
سؤال: سلام آقای دکتر وقتتون بخیر باشه. آقای دکتر در جلسه ی 23 قسمت 3 دقیقه ی 11 ما اومدیم داده ها رو استاندارد کردیم ولی با روشی که تا الان استاندارد می کردیم متفاوته ؟ این روش چه تفاوتی با اون روش StandardScaler داره که بعدش فیت می کردیم و بعد transform. تو این ویدیو از یک روش دیگه استاندارد کردیم x_scaled = preprocessing.scale(x)؟ اینا با هم تفاوتی دارن؟
پاسخ: سلام سارا جان.
scale
یک دیتاست رو برای ما استاندارد میکنه ولی
StandardScaler
ویژگیهای موجود در یک دیتاست رو. میتونی وارد بخش مستندسازی این دو بشی و توضیحات دقیق رو اونجا ببینی
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.scale.html
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html
انتهای لینک اول یک اخطاری داره که خیلی مهمه. بهش خیلی دقت کن. میگه در حالت کلی اگر بلد نیستی تو مدلهات نباید از این تکنیک استفاده کنی چون باعث درز اطلاعات میشه
Warning
Risk of data leak
Do not use scale
unless you know what you are doing. A common mistake is to apply it to the entire data before splitting into training and test sets. This will bias the model evaluation because information would have leaked from the test set to the training set. In general, we recommend using StandardScaler
within a Pipeline in order to prevent most risks of data leaking: pipe = make_pipeline(StandardScaler(), LogisticRegression())
.
دادههای کتگوریکال و get_dummies
سؤال: سلام آقای دکتر یک سوال امروز در انجام پروژه کلاسترین کشورها برام پیش اومد. اینکه وقتی مثلا شیش تا قاره داریم یا دادههای کتگوریکالمون زیادن مصلا ده تا پونزده تا باز هم باید با همین روش مپ، مپینگ انجام بدیم چون اون روش get_dummies برای اینجور شرایط استفاده نمیشه درسته؟
پاسخ: وقتی تعداد زیاد باشه باید از روشی بنام one-hot encoding استفاده کنیم که جلوتر به اون خواهیم پرداخت. یک مثالی داریم در خصوص یک فروشگاه زنجیرهای، اونجا فکر کنم اینرو میگم. در حالتی که تعداد دادههای کتگوریکال بسیار زیاد باشد هم باید از روشی بنام binary encoding استفاده کنیم. در این مقاله اکثر روشهای خوب (6 روش را دقیق شرح داده) تبدیل دادهی رستهای به عددی رو نوشته، حتمن نگاهی بندازید بهش.
دامی وریبل و multicollinearity
سؤال: سلام آقای دکتر روزتون بخیر. من کامل متوجه نشدم چرا موقع ساختن دامی وریبل دراپ نکردن یکیشون موجب multicollinearity میشه؟
پاسخ: فرض کن یک ستون از دادههای کتگوریکال داریم با سه مقدار مختلف. از روی این ستون، سه تا دامی وریبل میسازیم. اگر هر سه ویژگی جدید اضافه شده رو در مدل بیاریم، کار خراب میشه. چون رفتار متغیر سوم کاملاً وابسته است به رفتار دوتایی قبلی. چرا؟ چون اگر مقدار متغیر اول و دوم صفر باشند، سومی قطعاً باید یک باشه. پس این وابستگی بین متغیرهای جدید اضافه شده رو با حذف یکی از متغیرها از بین میبریم
دادههای گمشده
سوال: در مورد missing value حذف کردنش بهتره یا اینکه پر کردنش با میانگین؟
پاسخ: تا جایی که ممکن هست، دیتاهامون رو حذف نکنیم، بهتره. اما گاهاً دیتاست ما اونقدر بزرگ هست که اگر بخش خیلی کوچکی از اون رو بزاریم کنار، باز هم نتیجهی بدی نخواهیم گرفت. ولی دقت کن که همیشه دادههای گمشده رو با میانگین پر نمیکنند، میتونیم با مد یا میانه هم اونها رو جایگزین کنیم. توصیه میکنم دو تا ویدیو از همکارمون، آقای دکتر توماج، در خصوص مدیریت دادههای گمشده رو در آدرس زیر ببینید
در این دو ویدیو روشهایی رو برای مدیریت کردن دادههای گمشده بیان میکنند
تخصیص مقدار برای چارک (quantile)
سؤال: سلام، در ویدیو جلسه 16 – بخش 2- دقیقه 27:40، عدد 0.99 یا در ادامش 0.01 برای quantile بر چه اساسی انتخاب کردیم؟ همیشه همین اعداد رو در نظر میگیریم؟ یعنی همیشه برای اصلاح tail ها داده های کمتر از 99 درصد یا 1 درصد کل داده ها رو در نظر میگیریم؟ یا بر اساس تجربست؟ اگر بر اساس تجربه است میشه راهنماییمون کنید که رایج ترین مقدارها چند هستن؟
پاسخ: نه قانون و قاعده خاصی نداره و همه چیز دست تحلیلگر هست. ولی خب هر چقدر کمتر دیتا رو کنار بزاریم، بهتره. مثلاً شما میتونید بجای ۹۹ درصد از ۹۷ استفاده کنید که فاصله ماکسیمم و میانگین، باز هم کمتر بشه.
جلوتر که به یادگیری ماشین برسیم میبینیم که یکی از چالشهای اساسی کار با این الگوریتمها و تحلیلها اینه که عموماً قاعدهی مشخص و استانداردی وجود نداره و فقط باید چندین بار کارهایی گوناگونی انجام بدهیم تا بفهمیم کدوم بهینهتر هست
آماره تی یا آزمون زد؟
سوال: یک سوال داشتم اینکه در هفته 10 فیلم های آموزشی الویت استفاده از جدول ها بر اساس تعداد sample ها هست یا بر اساس وجودیا عدم وجود population variance ?
مثلا اگر در یک مسئله تعداد samle space برابر 40 شد و population variance هم نداشتیم و یا … از کدام table می توان استفاده کرد.(جلسه A10 ,B10)
پاسخ: که واریانس جامعه مشخص نیست و نمونهی ما بیشتر از ۳۰ عضو داشته باشد، با فرض نرمال بودن، از z-test استفاده میکنیم و واریانس نمونه رو بعنوان تخمینی از واریانس جامعه در نظر میگیریم. حالتهای دیگری که در ویدیوها مطرح نشدند، عموماً در دنیای واقعی ظاهر نخواهند شد. حتی همینها هم خیلیهاش تنها برای فهم و درک مطلب هستند. چون اون بیرون در اکثر مواقع تعداد نمونهها خیلی خیلی از ۳۰ بیشتر هست.
ایجاد یک ماشین حساب با پایتون
تمرین سوم احتمالات از هفته اول
سوال: سلام وقت شما بخیر
1_ در رابطه با تمرین سوم بخش ii و iii چرا شبیه به هم حل نشدند ؟ تو بخش دوم اون سه تا اتاق رو از تعداد کل کم کرد و شد 7-3 = 4 اتاق و 9-1 = 8 رنگ، در حالی که در بخش سوم دوتا رو یکی در نظر گرفت و تعداد اتاقها 7-1 = 6 و تعداد رنگها همان 9 در نظر گرفته شد و تغییری نکرد.
2_ اشتباه تایپی که به نظرم اومد رو در تصویر مشخص کردم اگر اشتباه میکنم لطفا بفرمایید.
3 – من فقط تونستم سوال 1 و 2 رو کامل درست حل کنم از سوال 3 هم فقط بخش اول .ممنوم مبشم سوالات بیشتری بدید چون فکر میکنم به تمرین بیشتر نیاز دارم .
4 _ چطور از صورت سوال متوجه بشم از تغییرات قراره استفاده کنم یا ترکیبات؟
پاسخ:
۱- فرق این هست که در حالت iii دقیقاً رنگی رو که دو اتاق باید با اون نقاشی شود، مشخص نشده. پس هر کدوم از ۹ رنگ میتونند این دو اتاق را رنگ کنند، در حالی که در بند ii اینطور نیست و دقیقاً گفته که باید سه اتاق مشخص رو با سفید رنگ کرد، برای همین هم یکی از رنگها کم کردیم.
۲- اشتباه تایپی دوم که مشخص کردی درسته، ولی اولی همون ۴ هست.
۳- ببینید چون دامنه مطالبی که باید بگیم، کم نیست پس باید سعی کنیم توجهمون رو تنها روی یک یا دو فیلد نزاریم. مثلاً الان ما فقط درگیر نوشتن پاسخهای سوالات پایتون هستیم. ولی اگر وقت شد حتماً.
۴- فرق تغییرات با ترکیبیات در ترتیب هست. اگر جایی ترتیب مهم باشه، کار ما تغییرات هست و اگر جایی ترتیب مهم نباشه، مسئله ترکیبیات هست، مثلاً کسی دست داخل یک کیسه که ۱۰ تا تیله داخلش هست میکنه و میخواد ۳ تا خارج کنه. پس ترتیب مهم نیست. ولی اگر بخواد این ۱۰ تیله رو در ۳ مکان بچیند ترتیب مهمه.
مثال کاربرد قضیه بیز در پزشکی
سوال: تنها تفاوتی که بین جواب خودم با پاسخ درج شده در فایل ارسالی دیدم، مربوط به قست آخر بود.
چرا احتمال دچار نبودن به مننژیت به شروط مربوطه محاسبه شده؟
پاسخ نهایی به صورت بازه ای از اعداده؟
پاسخ: اون نماد <> نشون دهندهی بازه نیست، در واقع یک زوج مرتب هست که بخش اول احتمال ابتلای شخص به مننژیت با اون دو شرط هست و قسمت دوم احتمال عدم ابتلا به مننژیت با شرایط مذکور.
احتمالات و سرمایه گذاری، جلسه هفتم بخش اول
سوال: در مثال مریوط به سهم گوگل
بر چه اساسی برای محاسبه ی امیدریاضی فقط از دو مقدار حالت call ( برای شرایطی که قیمت سهم رشد کنه)
و not call ( برای شرایطی که سهم نزول کنه) استفاده کردین ؟
ما در اینجا چهار حالت داشتیم چرا فقط دوتاش انتخاب شدن برای محاسبه ی امید ریاضی؟
پاسخ: ببین ما امید ریاضی رو در واقع فقط برای شروع حرکت شخص که میخواد بره پیشنهاد بده حساب میکنیم. در دقیقه سه اگر دقت کنی، شروع این پیشنهاد برای شخص فقط دو حالت داشت. اگر سهم افزایش پیدا کنه و حالت دوم اگر سهم کاهش پیدا کنه. در واقع امید ریاضی رو فقط برای این دو حالت محاسبه میکنیم. اگر مثبت باشه، خب به نفع شخص است و اگر منفی باشه، نباید این پیشنهاد رو مطرح کند. پس ما با اون چهار حالت کاری نداریم.
سوال سوم از تمرینات هفته اول
سوال: چرا برای حل سوال نامبرده از تغییرات(ترتیب) استفاده شده؟
مگر در این سوال در حالت بدون تکرار، ترتیب گزینش رنگ ها نقشی در عمل دارد؟
روش حل بنده با استفاده از فرمول ترکیب بود چرا که گمان می کردم حل آن مانند سوالات بسیاری باشد که ترتیب در آن اهمیتی ندارد(نظیر سوال انتخاب سه کارمند از بین ده فرد برای ارائه شرکت که در ویدیوهای آموزشی تدریس شد)
پاسخ: ببین ما ۷ تا اتاق داریم. یعنی ۷ خونهی متفاوت داریم که باید رنگ بشه، مثلاً اتاق۱، اتاق۲ الی اتاق۷. نه تا هم رنگ داریم. پس اتاق اول ۹ حالت، دومی ۸ حالت الی آخر. پس ترتیب مهمه.
جلسه چهارم بخش دوم
سوال: میخاستم بدونم وقتی میخایم تابع توزیع احتمال رو برای شیر آمدن حساب کنیم چرا احتمال شیر نیامدن رو هم توی فرمول میاریم ؟
y:احتمال شیر آمدن
n: تعداد آزمایش
آدرس ویدئو: Weeks 1, 2\Week 1\Session 4\Part 2 \ 9th minute
پاسخ: اینجا y پیشامد نیست. ما اینجا n بار آزمایش رو انجام دادیم و قصد داریم دقیقاً y مرتبه شیر بیاد. پس باید n-y مرتبه هم خط بیاد. بهمین دلیل پای خط هم وارد بازی میشه.