<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های رضا کشاورز</title>
        <link>https://virgool.io/feed/@rezakeshavarz</link>
        <description>رضا کشاورزم. یک تحلیلگر داده که مغزش همیشه درحال تحلیل جهان پیرامونشه. از تحلیل داده و هوش مصنوعی می نویسم اینجا.</description>
        <language>fa</language>
        <pubDate>2026-06-10 12:33:25</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/24097/avatar/ULkjXI.png?height=120&amp;width=120</url>
            <title>رضا کشاورز</title>
            <link>https://virgool.io/@rezakeshavarz</link>
        </image>

                    <item>
                <title>الفبای A/B testing</title>
                <link>https://virgool.io/@rezakeshavarz/%D8%A7%D9%84%D9%81%D8%A8%D8%A7%DB%8C-ab-testing-i9ziqxbkx9gi</link>
                <description>این‌روزها دیگه تقریبا همه از اهمیت تصمیم‌گیری داده-محور با خبرن. کسب و کارها تلاش می‌کنن از داده‌ای که توسط محصولشون تولید می‌شه استفاده کنن تا فرایندهاشون رو بهینه‌ و سود دهیشون رو بیشتر کنن.توی کسب و کارهای آنلاین، یه دغدغه همیشگی اینه که چطور محصول یا خدمات رو بهینه کنیم. مخصوصا وقتی که قراره با آدم‌ها تعامل داشته باشیم،‌ یه چالش اینه که نمی‌دونیم واکنششون نسبت به کارها و ایده‌های ما چطور می‌تونه باشه. توی این مطلب می خوایم ببینیم که چطور می‌شه ایده هامون رو به صورت داده-محور ارزیابی کنیم.مثلا توی یکتانت یه دغدغه هست: از بین آدم‌هایی که وارد صفحه اصلی وبسایت یکتانت می‌شن، درصد بالاییشون ثبت نام نمی‌کنن. عده‌ای بعد از یه نگاه به کلیت صفحه، می‌رن و دیگه برنمی‌گردن. درصورتی که اگر ثبت نام کنن، مشاوران یکتانت می تونن باهاشون ارتباط بگیرن و بهشون توی رسیدن به هدفشون کمک کنن. این در نهایت هم مشتری رو خوشحال‌تر می‌کنه، هم یکتانت رو.برای حل این مسئله، یه ایده مطرح شد: بیایم بریم سراغ رنگ شناسی. آیا اگر رنگ دکمه ثبت نام بالای صفحه رو تغییر بدیم به یه رنگ موثرتر، مثلا سبز مغز پسته ای، می‌تونیم تعداد بیشتری از مراجعان سایت رو ترغیب به ثبت نام کنیم؟ از اونجایی که نمی‌شه این ایده رو درجا رد یا تایید کرد، باید یه راهی پیدا کنیم که راه حل‌مون رو آزمایش کنیم. برای این کار،‌ اولین چیزی که به ذهنمون می‌رسه اینه که بریم این تغییر رو اعمال کنیم و یه مدتی بذاریم دکمه ثبت نام سایتمون سبز باشه. بعد مقایسه کنیم ببینیم این تغییر تاثیر مطلوبی داشته یا نه. مشکل اصلی این راه حل اینه که اگر هم نتیجه بهتر بشه، نمی‌تونیم ادعا کنیم این تغییر متاثر از تغییر ماست و عوامل جانبی روی موضوع تاثیر ندارن. شاید همزمان با تغییر ما، یه جای دیگه هم تغییری داده شده و بخاطر اونه که آدم‌های بیشتری دارن ثبت نام می کنن. مثلا ممکنه همزمان با ما، یه فیچر جدید مثل &quot;لاگین با گوگل&quot; به سیستم اضافه شده باشه که کار رو راحت‌تر می‌کنه و باعث میشه نرخ ثبت نام بره بالا.اما راه بهتر چیه؟ برای اینکه تست ما مشکلات بالا رو نداشته باشه، یه روش ابداع شده به اسم A/B testing که به طور کلی فرایندش اینه:اول تصمیم بگیریم چه تغییری رو می‌خوایم اعمال کنیم.از بین همه کاربرهای وبسایتمون ۲ گروه رو به صورت تصادفی انتخاب کنیم.به یه گروه، نسخه ای از سایت رو نشون بدیم که اون تغییر ما رو داره (نسخه جدید)، به اون یکی گروه‌، نسخه قبلی رودر نهایت نسخه‌ها رو با هم مقایسه کنیم. اگر نسخه تغییر یافته، عملکرد بهتری از نسخه فعلی ما داشت،‌ می‌تونیم اون نسخه رو جایگزین کنیم.در ادامه این مطلب قراره درباره هر کدوم از مراحل بالا یه سری نکته یاد بگیریم، از جمله اینکه:چطوری مسئله رو به فرمتی بیان کنیم که بتونیم تستش کنیم.چطوری گروه‌های تستمون رو انتخاب کنیم که مطمئن باشیم نماینده خوبی از کل جامعه هستن. (نمونه گیری)چطوری نتیجه رو بررسی کنیم و ازش استنتاج کنیم.اینها دغدغه‌هایی هستن که توی A/B test های مختلف به شکل های مختلف مطرح میشن و باید یه گوشه چشم بهشون داشته باشیم.قدم اول: تکلیف خودمونو مشخص کنیموقتی می‌خوایم ایده تغییر رنگ دکمه ثبت نام رو تست کنیم‌، اولین سوال اینه: بهتر بودن یعنی چی؟ در چه صورتی می‌تونیم بگیم که رنگ سبز نتیجه بهتری می‌ده. اینجا باید برگردیم به اول صحبتمون: چرا تصمیم گرفتیم رنگ دکمه رو تغییر بدیم؟ چون می‌خواستیم آدم‌های بیشتری ترغیب به ثبت نام بشن. پس الان باید دو گروه رو از این لحاظ مقایسه کنیم. یه معیار مناسب می‌تونه نرخ تبدیل باشه. توی هر گروه، چند درصد از آدم‌هایی که وارد صفحه اصلی شدن، ثبت نام کردن؟ این معیاریه که باید اندازه گیری کنیم.قدم دوم: گروه الف و بحالا باید تعدادی آدم رو انتخاب کنیم برای تست. نمی خوایم‌تست رو روی تمام مخاطبین سایتمون انجام بدیم. ترجیحمون اینه که تست رو روی درصد کمی از مخاطبا اجرا کنیم. دو گروه رو کاملا تصادفی از بین همه مخاطبامون انتخاب می کنیم. این دو گروه باید از هر لحاظ مثل هم باشن و هیچکس هم نباید توی هر دو گروه باشه. رعایت این شرط‌ها برای اینکه استنتاج از تست قابل اتکا باشه‌،‌ ضروریه.دغدغه ای که اینجا مطرحه اینه که چند نفر باید توی هر گروه باشن؟ آیا اصلا مهمه که چه تعداد آدم میفتن توی گروه‌های تست و کنترل ما؟بله. تعداد اینجا مهمه. حقیقت اینه که هرچی جامعه‌ای که داریم روش تست می‌کنیم بزرگتر باشه نتیجه تست ما قابل اتکاتر میشه. ولی با این فرمون نمی‌شه پیش رفت. رویکرد بهتر اینه که سوال رو برعکس کنیم: حداقل چند نفر باید توی هر گروه داشته باشیم تا کیفیت تستمون خوب باشه؟برای پیدا کردن این عدد مطلوب،‌ لازمه که چند تا پارامتر مختلف رو بدونیم.نرخ تبدیل فعلی ما:‌ این عدد رو با یه حساب کوچولو می‌تونیم تخمین بزنیم.حداقل میزان تغییر قابل اندازه‌گیری و با معنی برای ما: اگر نرخ ثبت نام تغییر کرد، تا چه اندازه از تبدیل رو می‌تونیم اندازه بگیریم و بگیم این تغییر محسوس و معناداره؟ ۱ درصد؟ ۰.۱ درصد؟‌ ۰.۰۰۱ درصد؟‌حداکثر خطای قابل قبول: چه احتمالی از خطای نتیجه گیری رو قابل قبول می‌دونیم.با استفاده از این سه موردی که ذکر شد،‌ و یه فرمول ساده، میشه حداقل اندازه نمونه رو به دست آورد. اگر کنجکاوید که یه دو دو تا چهارتا بکنید برای خودتون،‌ می‌تونید از این ماشین حساب استفاده کنید: ماشین حساب برای محاسبه اندازه گروه‌های تستقدم سوم: اجرای آزمایشحالا وقتشه که بریم سراغ اصل قضیه. تا اینجا ما دو گروه تصادفی از کاربرهامون رو انتخاب کردیم. به یکی از این دو گروه، قراره نسخه تغییر یافته سایتمون رو نشون بدیم. به این گروه میگیم گروه تست (Experiment Group). حالا اون یکی گروه برای چیه؟ به اون میگیم گروه کنترل (Control Group). هدف از انتخاب گروه کنترل اینه که بتونیم نتیجه حاصل از تغییر رو با نسخه فعلی مقایسه کنیم. نکته دیگه اینه که این گروه نباید در معرض تغییرات دیگه‌ای که ممکنه توی محصول داده بشه، قرار بگیرن.وقتی که تست رو شروع کردیم و یه گروه در معرض نسخه جدید و اون یکی گروه در معرض نسخه قبلی قرار گرفتن، یه سوال پیش میاد: تا کی صبر کنیم؟ یک ساعت؟ یک روز یا یک ماه؟ در قدم اول باید اونقدری صبر کنیم تا به اون اندازه حداقلی که قبل از تست محاسبه کردیم، برسیم. علاوه بر این،‌ باید تستمون رو اونقدر طولانی اجرا کنیم تا عاملهای مقطعی نتونن روی نتیجه تاثیر بذارن. مثلا آیا می‌تونیم تست رو از ساعت ۱ تا ۴ صبح اجرا کنیم و بعد بپریم سراغ نتیجه گیری؟ نه. مشکل اینکار اینه که آدم‌هایی که ساعت ۱ تا ۴ صبح فعالیت آنلاین دارن، نماینده خوبی از جامعه نیستن، چون همه جامعه توی این ساعت بیدار نیست و ما می‌خوایم تستمون رو روی نماینده‌ی مناسبی از کل مخاطبامون داشته باشیم، نه فقط یه گروه خاص. با این اوصاف بهتره که تستمون یه مدت معقولی اجرا بشه. حتی باید حواسمون به روزهای خاص هم باشه. روزهای تعطیل مثلا :)قدم چهارم: تحلیل نتایجخب حالا می‌ریم و مقایسه می‌کنیم و می بینیم که نرخ تبدیلی که حرفشو زدیم،‌ برای گروه تست ما، که دکمه سبز رنگ رو دیده بودن، از گروه کنترلمون، ۳ درصد بیشتره. می‌تونیم بگیم که رنگ سبز بهتره؟ نه. درواقع هنوز نه. یک مورد دیگه هست که باید بررسی بشه.قضیه اینه که ما نمی‌دونیم این عملکرد بهتر گروه تست بخاطر بهتر بودن رنگ سبزه، یا این که صرفا شانسیه. از کجا معلوم اگر تست رو تکرار کنیم، باز هم همین نتیجه تکرار بشه؟ اینجا دو کار می‌شه کرد:‌ راه اول اینه که تست رو چند بار دیگه تکرار کنیم و ببینیم آیا همین نتیجه حاصل می‌شه دوباره. این راه شاید ساده و جذاب باشه،‌ ولی خیلی مواقع شدنی نیست. دلایل اصلیش هم یکی هزینه تسته و یکی بحث زمان. راه حل دوم اما گزینه بهتریه. می‌ریم سراغ علم جذاب آمار. اینجا باید بررسی کنیم که این تفاوت مشاهده شده از نظر آماری چقدر معنی دار و قابل اتکاست. برای اینکار یه مفهوم آماری هست به اسم p-value.به طور خلاصه، p-value به ما می‌گه که این تفاوتی که بین دو گروه داریم می‌بینیم،‌ چقدر ممکنه متاثر از شانس باشه. باید مقدار p-value رو با استفاده از دیتای حاصله از تستمون محاسبه کنیم. هرچقدر که این مقدار کوچکتر باشه، نتیجه تست قابل اتکاتره. مقدار ۰.۰۵ یا کمتر از اون رو می‌شه مقدار قابل قبولی دونست. اگر p-value از ۰.۰۵ کمتر باشه، می‌تونیم نتیجه بگیریم که تفاوتی که بین دو گروه دیدیم، از نظر آماری معنادار حساب می‌شه. حالا این ۰.۰۵ یعنی چی؟ یعنی حتی اگر کاری که کردیم بی تاثیر بوده باشه واقعا، ۵ درصد احتمال داره که بازم این تفاوت رو مشاهده کنیم. ساده‌ترش اینه که ۵ درصد احتمال داره که این نتیجه ای که توی تست دیدیم،‌ متاثر از شانس بوده باشه، و نه حاصل اون کاری که ما کردیم. حالا چرا هی مقدار ۵ صدم رو دارم تکرار‌می کنم؟‌ این یه آستانه مورد توافقه بین متخصصای آمار و آدم‌هایی که از A/B testing استفاده می کنن. اگر مقدار p-value بالاتر از ۰.۰۵ باشه،‌ نمیشه به اون تفاوتی که بین دو گروه مشاهده شده تکیه کرد. اگر بخوایم محتاطانه‌تر عمل کنیم می تونیم مقدار p-value رو کمتر در نظر بگیریم. مثلا ۰.۰۱ یه مقدار سختگیرانه حساب میشه. یه اثر جانبی کمتر کردن p-value مورد قبول،‌ اینه که مجبورمون می کنه اندازه نمونه مون رو ببریم بالاتر. اگر دوست دارید از این مفهوم بیشتر بدونید، آخر این مطلب یه خبر خوب براتون داریم :)دیگه کجاها می‌شه از A/B testing استفاده کرد؟جاهایی که می‌شه از A/B testing استفاده کرد خیلی وسیع و متنوعن. اینجا می‌تونم چند تا مثال ساده بزنم:وقتی که می‌خوایم یه کمپین تبلیغات کلیکی داشته باشیم، ولی نمی‌دونیم چه تیتری می‌تونه نرخ کلیک بهتری برای ما بیاره.وقتی که می‌خوایم صفحه فرودی (Landing page) که برای کمپین تبلیغاتیمون استفاده می‌کنیم رو بهتر کنیم تا نتیجه بهتری بگیریم.وقتی که می خوایم استفاده از محصولمون رو برای کاربرها ساده‌تر کنیم تا تجربه کاربری بهتری داشته باشن.وقتی برای سایتمون یه سیستم پیشنهاد دهنده جدید توسعه دادیم و می‌خوایم ببینیم پیشنهادهای این سیستم جدید از نسخه قبلی بهتر هست یا نه.کجا نباید از A/B testing استفاده کرد؟به طور کلی، A/B testing جاهایی کاربرد داره که می‌خوایم نتیجه یه تغییر جزئی رو بررسی کنیم. وقتی که می‌خوایم تغییرات عمده بدیم به محصول، یا با دو پدیده کلا متفاوت مواجهیم، این تست نتیجه خوبی به ما نمی‌تونه بده. مثلا یه تغییر کوچیک توی رابط کاربری رو می‌شه با A/B testing سنجید، اما وقتی کل محصول رو از اول طراحی کردیم،‌ نمی‌تونیم برای مقایسه، سراغ A/B testing بریم. دلیل این قضیه اینه که یه تغییر بزرگ، خیلی وقتها در عمل مجموعه ای از تغییرات کوچیکه. و خب توی این موقعیت نمی تونیم تشخیص بدیم بهبودی که مشاهده می‌شه، بخاطر کدوم یکی از اینهاست.یه نکته دیگه درباره تغییرات بزرگ هست که خیلی باید حواسمون بهش باشه. آدم‌ها خیلی وقتها درمقابل تغییر گارد دارن. وقتی که مثلا می‌آیم و کل سایتمون رو از اول طراحی می‌کنیم، ممکنه واقعا بهتر شده باشه همه چیز و تجربه بهتری برای کاربرها بسازه، ولی چون در روزهای اول آدم‌ها همچنان عادت دارن به نسخه قبلی، ممکنه نتایجی که مشاهده می‌کنیم در روزهای اول چندان مطلوب نباشه.در باب اهمیت اصولی انجام دادن A/B testingابزاری مثل A/B testing می‌تونه به تصمیم گیرنده ها کمک های زیادی بکنه و تا حد زیادی از عدم قطعیتی که تصمیم‌گیرنده‌ها باهاش مواجهن، کم کنه. اما در طرف مقابل، مثل هر پدیده دیگه‌ای در این دنیا، A/B testing هم اگر درست و اصولی انجام نشه، می‌تونه باعث تصمیم‌گیری غلط و در نهایت به خطر انداختن کسب و کار بشه.برای انجام یه تست خوب، نیاز به تخصص های مختلفی داریم. از یک طرف توی طراحی تست خیلی مهمه که نظر آدمی با تجربه بیزنسی رو بپرسیم، از طرف دیگه، موقع تحلیل تست هم لازمه که حتما با یه تحلیلگر داده مشورت کنیم. بدون در نظر گرفتن هر یک از دو سر این طیف، تست ما غیر قابل اتکا میشه.سخن آخرتوی این مطلب سعی شد که یه معرفی ساده و خودمونی از A/B testing و کاربردهاش ارائه بشه. در هر کدوم از قسمتهایی که حرفش رو زدیم،‌ می‌شه خیلی عمیق‌تر شد. برای طراحی تست باید نکاتی رو رعایت کنیم که کیفیتش بالا بره. موقع اجرای تست باید حواسمون به یه سری موارد باشه. از همه مهمتر، برای تحلیل تست باید از دنیای آمار هم کمک بگیریم و نیاز به علمش داریم. و خب این بهونه منه که یه مطلب دیگه هم درباره A/B testing داشته باشیم، فقط این دفعه عمیق‌تر. اگر برای شما هم جذابیت داره، توی کامنت‌ها بهم بگید.برای اینکه مطالب بعدی از دستتون در نره، کافیه که اینجا من رو دنبال کنید. برای اینکار می تونید از دکمه &quot;دنبال کردن&quot; پایین این پست استفاده کنید.درباره نویسندهمن رضا کشاورزم، تحلیل‌گر ارشد داده در یکتانت. برای ارتباط بیشتر با من می تونید به آدرس rezakm[@]proton[dot]me ایمیل بدید یا اینکه از لینکدینم استفاده کنید:‌ رضا کشاورز معتمدی.</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Sat, 04 Oct 2025 12:10:53 +0330</pubDate>
            </item>
                    <item>
                <title>چرا توی پانداز کسی از .query() استفاده نمی‌کنه؟</title>
                <link>https://virgool.io/codenevis/%DA%86%D8%B1%D8%A7-%D8%AA%D9%88%DB%8C-%D9%BE%D8%A7%D9%86%D8%AF%D8%A7%D8%B2-%DA%A9%D8%B3%DB%8C-%D8%A7%D8%B2-query-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D9%86%D9%85%DB%8C-%DA%A9%D9%86%D9%87-zzaqbzntjgpn</link>
                <description>این میخوای دیتات رو با دو تا شرط، فیلتر کنی. از کدوم این راه‌ها استفاده می‌کنی؟# Without .query()
result = df[(df[&quot;age&quot;] &gt; 18) &amp; (df[df[&quot;city&quot;] == &quot;Tehran&quot;])]
# With .query()
result = df.query(&quot;age &gt; 18 and city == &#039;Tehran&#039;&quot;)معمولا اولی، مگه نه؟ ولی خب متد query() توی پانداز میتونه به نوشتن کد خوانا‌تر کمک کنه. نوشتنش رو هم راحت‌تر می‌کنه. چشم‌نوازتر هم هست. دیگه چی می‌خوای؟خیلی ساده: کوئری چیکار می‌کنه؟با استفاده از این متد، میتونیم شرط‌هایی رو که برای فیلتر کردن داده داریم، مشابه همون سینتکسی که توی SQL دیده می‌شه، روی دیتافریم اعمال کنیم:df.query(&quot;name = &#039;Reza&#039;&quot;)و اگر منطق پیچیده‌تری داشتیم، با استفاده از عملگرهای منطقی مختلف، از جمله and و or با هم ترکیب کنیم:df.query(&quot;name = &#039;Reza&#039; and age &gt; 23&quot;)اگر توی اسم یک ستون، فاصله یا علائم خاص دیگه وجود داشت چی؟df.query(total sales &gt; 100&quot;)اگر نیاز بود توی فیلتری که داریم، از یک متغیر دیگه توی همون نوت بوک/کد استفاده کنیم، چه کنیم؟threshold = 5
df.query(&quot;col &gt; @threshold&quot;)محدودیت‌های متد query() چیا هستن؟اگر می‌خوایم یه فیلتر پیچیده رو اعمال کنیم، مثلا این مورد:mask = (df[&quot;col&quot;] &gt; 5) &amp; (df[&quot;city&quot;].str.startswith(&quot;T&quot;)) 
df = df[mask]استفاده از query() دیگه جزو گزینه‌هامون نیست. این متد هرچند که کار رو خیلی وقتها راحت‌تر می‌کنه، اما با خودش محدودیت‌هایی هم میاره.کجا این، کجا اون؟سوالی که پیش میاده اینه که بچسبیم به همون روش قدیمی که کاملتره از نظر کاربرد، اما ناخوانا‌تره؟ نه لزوما. توی این مواقع بهتره از query() استفاده کنیم:می‌خوایم شرط‌های ساده اما پرتعدادی رو اعمال کنیم.توی نوت‌بوک/EDAهایی که میخوایم سریع یه سری چیز رو بررسی کنیم.توی این موارد بهتره که از این روش استفاده نکنیم:اسامی ستون‌های دیتافریم تر و تمیز نیستن و کاراکتر خاص زیاد دارن.کدی رو داریم توسعه می‌دیم که برای محیط پروداکشن قراره استفاده بشه، نه توی نوت‌بوک و .EDAمنطق کد پیچیده‌ست و استفاده از query() دوباره کد رو ناخوانا می‌کنه.اینجا چه خبره؟من رضا ام و هر از گاهی مطالب مرتبط با پایتون و تحلیل‌داده منتشر می‌کنم. اینجا منو دنبال کن تا بعدی‌ها رو از دست ندی.</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Wed, 01 Oct 2025 16:27:25 +0330</pubDate>
            </item>
                    <item>
                <title>پیدا کردن کار بدون فرستادن رزومه: آهنربای مخفی لینکدین</title>
                <link>https://virgool.io/@rezakeshavarz/%D9%BE%DB%8C%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%AF%D9%88%D9%86-%D9%81%D8%B1%D8%B3%D8%AA%D8%A7%D8%AF%D9%86-%D8%B1%D8%B2%D9%88%D9%85%D9%87-%D8%A2%D9%87%D9%86%D8%B1%D8%A8%D8%A7%DB%8C-%D9%85%D8%AE%D9%81%DB%8C-%D9%84%DB%8C%D9%86%DA%A9%D8%AF%DB%8C%D9%86-rke9dwzivhtr</link>
                <description>توی این مطلب اول خیلی مختصر یه سری نکات رو درباره داشتن یه پروفایل خوب میگم. بعدش هم درباره فعالیتهایی که می تونن منجر به بهتر دیده شدن ما بشن. با من تا انتهای این متن همراه باشید تا هم بگم که چیکار کنیم که آدمها هی به ما درخواست کانکت شدن بدن، و هم بهتون یه نکته خفن درباره اون چیزی که توی تصویر زیر می بینید بگم:قسمت اول: پروفایل با کیفیت یا هنر مدرن لینکدین آرائی :)چه صفحه ای توجه آدمها رو جلب می کنه؟ صفحه ای که هرکس اومد توش با صرف کردن یکی دو دقیقه از زمانش، بتونه بفهمه ما کی هستیم، چه تخصصی داریم، چه تجربه ای داریم، و از پس چه کارهایی می تونیم بر بیایم. برای اینکه صفحه ما به این نقطه برسه، باید چند مورد رو رعایت کنیم. اول: مهارتها و توانایی هالینکدین شبکه اجتماعی متخصص هاست دیگه. باید بگیم تخصصمون چیه. چیا بلدیم و چیکارا می تونیم بکنیم. باید یه لیست کامل اما مختصر از مهارتهامون درست کنیم و اونجا بذاریم. از ابزارهایی که بلدیم تا موضوعاتی که توشون تخصص داریم. اما اینجا یه نکته مهم هست: نباید هرچیزی رو هم اینجا آورد. فقط چیزهایی رو باید بنویسیم که در راستای اون هدفی ان که برای خودمون داریم. مثلا من که می خوام به عنوان یه دانشمند داده کار کنم، اگر 10 سال پیش 4 تا تصویر با فتوشاپ ویرایش کردم، زیاد معقول نیست که فتوشاپ رو توی مهارتهام بیارم.و یه ترفند خیلی باحال: توی لینکدین می تونید مشخص کنید کدوم مهارتها بالاتر از بقیه نمایش داده بشن. ولی فقط سه مورد. اونهایی رو اینجا قرار میدیم که بهتر از الباقی مهارتها بتونن ما رو معرفی کنن. مثلا برای من این شکلیه:که البته هر از گاهی هم یه مهارت دیگه میاد بالا و یکی از اینا می ره پایین. یه نکته مهم اینجا اینه که اصلا درگیر گرفتن اندورز(!) نشیم. این مهر تاییدهایی که دیگران به ما میدن، ارزش چندانی ندارن.دوم: مدارک دانشگاهی و الباقی گواهی هاتوی قسمت مربوط به دانشگاه، پیشنهاد من اینه که حداقلها بنویسید حتما. اسم دانشگاه و رشته کفایت می کنه. اگر موضوع پایان نامه تون هم‌راستا با مسیر شغلیتونه، اون رو هم می تونید اضافه کنید. لیست کردن درسهایی که گذروندین برای دنیای صنعت اهمیت تاثیری نداره.اگر دوره خاصی گذروندید و مدرکش رو دارید، اون رو توی قسمت مخصوص خودش می تونید بذارید. توی تاثیر این مدارک هم خیلی شک و شبهه هست، اما گذاشتن مدارک معتبر، اگر توش زیاده روی نکنید، ضرری نداره.اینها دوره هاییه که من گذروندم و مدرکشو دارم.سوم: تجربه های شغلیاینجا میشه گفت مهم ترین قسمت پروفایل ماست. لیست کردن همه شرکت هایی که توشون کار کردیم، به همراه عنوان های پر زرق و برق لطف چندانی نداره. اینجا باید از عمقِ تجربه مون به دیگران بگیم. با هر عنوانِ شغلی که مشغول به کاریم، یه سری مسئولیت داریم که باید انجام بدیم. نوشتن از این مسئولیت ها، و در صورت امکان قرار دادن یه نمونه کار، خیلی می تونه موثر باشه برای ربودن دل کارفرمای بعدیمون.مثلا عنوان دیتا ساینتیست خیلی عنوان وسیعیه. دو تا آدم با این عنوان می تونن توی شرکتهای مختلف مشغول کار باشن، و مسئولیت ها و تجربه هاشون کاملا متفاوت باشه. پس باید از جزئیات تجربه مون بنویسیم تا دیگران بتونن درک بهتری از اینکه ما کی هستیم و چیکار می تونیم انجام بدیم به دست بیارن.اون گزینه see more که کلیک بشه، جزئیات بیشتری نشون داده میشه.الان می تونید ایراد بگیرید از اینکه آخرین عنوان شغلی من توضیحات نداره. و خب راست هم میگید. باید سر فرصت این رو هم کامل کنم. اما فعلا منتظرم یه مقدار جا بیفتم توی شرکت جدید :)چهارم: درباره مناینجا فرصت اینو داریم که یه معرفی مختصر از خودمون ارائه بدیم. این قسمت اگر خیلی کوتاه باشه، مثلا در حد 3 جمله، چندان تاثیری نمیذاره. اگر هم خیلی طولانی باشه، مثلا در حد سه چهار پاراگراف بلند، حوصله خواننده رو سر می بره. پس چه کنیم؟ توی یکی دو پاراگراف نه چندان طولانی، یه معرفی مختصر از خودمون، تجربه هامون، تحصیلاتمون، و مهارتهامون بنویسیم. این کمابیش خلاصه همه اون چیزاییه که تا اینجای این پست خوندیم. پنجم: قسمت بالایی صفحهاینجا خیلی مهمه. خیلی بیشتر از اینکه فکرشو بکنید. یه نگاهی بندازیم به بالای صفحه من:از عکس مناسب و نوشتن درست اسم و اسم شرکتی که توش مشغولیم اگر بگذریم، یه نکته خیلی مهمممم هست اینجا: اون یه خطی که زیر اسم میاد. اینجا میشه خیلی چیزها نوشت. اما ترجیح من اینه که تخصصهای اصلیم، یا به عبارتی عنوان اون موقعیتهای شغلی که می تونم به عهده بگیرم رو بنویسم. حالا چرا؟قضیه اینه که وقتی که یک شخص توی لینکدین دنبال متخصص می گرده، میاد و توی نوار جستجوی لینکدین، یه عنوان شغلی رو می نویسه. برای اینکه توی لیستی که اون شخص ظاهر بشیم، این قسمت از پروفایل خیلی تاثیر داره. درواقع کلمات کلیدی ای که ما اینجا می نویسیم، باعث میشن توی نتیجه جستجوی کارفرما ظاهر بشیم. البته این تنها موردِ موثر نیست، ولی جزو مهم ترینهاست. من سه مورد نوشتم اما میشه بیشتر هم نوشت. فقط نباید گندشو دربیاریم که صفحه رو زشت کنه.تا اینجای این مطلب درباره ساختن یه پروفایل خوب بود. حالا بریم ببینیم چطوری میشه آدمها رو بکشیم سمت این پروفایل.قسمت دوم: فعالیت با کیفیت اما آسان در لینکدینبرای اینکه پروفایل ما بره توی تیررس آدمها و بتونه جلب توجه کنه، باید توی لینکدین فعال باشیم. لینکدین یه شبکه اجتماعیه و خب فعالیت اصلی توی این شبکه اجتماعی، تعامل داشتن با آدمهای دیگه ست. توی ادامه این مطلب می خوام یه سری راه (از خیلی ساااااده بگیر تا یه کوچولو زمانبر) رو بهتون نشون بدم که باعث میشن آدمهای بیشتری صفحه ت رو ببینن.در نهایت هرچی آدمهای بیشتری ببیننت، احتمال اینکه یکی از اون آدمها مسئول جذب یه شرکت یا کارفرمای دنبال نیرو باشه، بیشتر میشه. بعد از اینکه توجهشون جلب شد، پروفایلت میاد و بهشون نشون میده که چقدر مناسب نیاز اونهایی و بعد هم اگر تواناییهات با چیزهایی که اونا دنبالشن سازگار باشه، دعوت میشی به مصاحبه و همکاری.اول: چند تا آدم پیدا کناین قدم ساده س و احتمالا تا الان انجامش دادی. دونه دونه اسم آدمهایی که می شناسی رو جستجو کن و باهاشون کانکت شو. از دوستها و هم دانشگاهیا میشه شروع کرد و بعدش هم همکارها و بعد آدمهایی که دورادور میشناسیم و بعد هم دیگه کم کم قلقش دستت میاد.لازم نیست همین اول کار هزار و هشتصد نفر رو جور کنی. کم کم زیاد میشه خودش. اگر مواردی که بالاتر نوشته شد و مواردی که از این به بعد میاد رو رعایت کنی :)دوم: بخون و نظرت رو بگوآدمها توی لینکدین از تجربه هاشون و دغدغه هاشون می نویسن. تو هم یه آدمی با عقاید و سلایق خودت. اول از همه بخون نوشته های دیگران رو. اگر چیزی بود که باهاش موافقی و دوست داری بیشتر دیده بشه، لایکش کن. اگر حرفی به ذهنت می رسه، کامنتش کن. اینجوری در معرض دید آدمهای دیگه قرار میگیری. اصلا احتمالش کم نیست که همون آدمی که براش کامنت گذاشتی، همکار آینده ت باشه.سوم: حامی باشتوی صفحه اصلی لینکدین لابلای مطالبی که آدمها به اشتراک گذاشتن، احتمالا پستهای آدمهایی رو ببینی که در جستجوی شغلن، درست مثل خودت. به این آدمها کمک کن. چطوری؟ ساده ترین راهش اینه که مطلبش رو لایک کنی و یه کامنت دلگرم کننده بذاری. با اینکار هم اون شخص اندکی حس بهتر میگیره، هم پستش رو (دقیقا به خاطر لایک و کامنت تو) آدمهای بیشتری می بینن. در قدم بعد، اگر دیدی اون شخص دنبال موقعیت شغلی در حوزه ایه که یکی از آشناهای تو توش دنبال نیرو می گرده، میتونی این دو نفر رو به هم لینک کنی. لازم هم نیست کار سخت بکنی. در قدم اول تگ کردن لینکدین اون شخصِ دنبالِ نیرو زیر پست شخص جویای کار کافیه.چهارم: تجربیات رو قصه کننوشتن توی لینکدین خیلی جوابه. نوشتن از هر موضوعی که برات دغدغه س و جذابه، خوبه. اما اگر این چیزهایی که می نویسی در زمینه همون حوزه ای باشن که توش دنبال کار می گردی، خیلی عالی میشه. اگر داری دنبال موقعیت شغلی دانشمند داده می گردی، می تونی نظرت رو درباره اون دوره آموزشی که توش شرکت کردی بنویسی. اگر می خوای به عنوان متخصص سئو شغل پیدا کنی، می تونی از تجربیات اخیرت بنویسی. یا کلا هرچیزی که به نظر خودت ایده جذابیه.قسمت سوم: جادوی تداومهر کدوم از کارهایی که لیست کردم، به تنهایی و صرفا با یه بار انجام دادن، جادویی نمی کنن. شاید حتی بی اثر و بی فایده به نظر بیان. ولی نکته اصلی اینجاست: استمرار مهمه. پروفایل لینکدین ما باید آپدیت باشه. لازم نیست هرشب آپدیتش کنیم، ولی ماهی یه بار که خیلی راحته. مهارتهای جدیدی که کسب میکنیم، دوره ای که می گذرونیم، تجربه جدیدی که توی شغل فعلی داریم، همه اینها رو میشه مستمر اضافه کرد به پروفایل و بهتر و بهترش کرد.از طرف دیگه، فعالیت و تعامل ما با آدمهای دیگه هم باید به صورت مستمر باشه. توی یک شب 83 تا کامنت گذاشتن و لایک کردن زیاد سودی نداره. استمرار فعالیت باعث میشه که ما همیشه جلوی چشم کانکشنهامون و توی ذهنشون باشیم و وقتی که نیاز به آدمی مشابه ما داشتن، اولین کسی که توی ذهنشون میاد ما باشیم. در نهایتدر نهایت امیدوارم اینکارها که برای من تجربه های خوبی رقم زدن، برای شما هم نتیجه خوبی به بار بیارن. اگر شما هم تجربه ای در این زمینه دارید، خوشحال میشم با من و بقیه کسایی که این مطلب رو می بینن، به اشتراک بذارید. میتونید توی لینکدین هم منو پیدا کنید و بیاید کانکت بشیم :) با این لینک: Reza Keshavarz من کی ام؟من  رضا کشاورز، یه تحلیلگر داده و مدرس علم داده م. اگر دوست داشتید مطالب  دیگه ای رو که در زمینه دیتا ساینس و هوش مصنوعی می نویسم بخونید، کافیه من رو اینجا توی ویرگول دنبال کنید، یا بیاید توی لینکدین کانکت بشیم. اونجا هم لینک مطالبی که می نویسم رو میذارم. با لایک کردن و  فرستادن این مطلب به کسایی که فکر می کنین بهش نیاز دارن، هم من و هم اونها  رو می تونید خوشحال کنید :)</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Tue, 14 Jun 2022 22:25:29 +0430</pubDate>
            </item>
                    <item>
                <title>تحلیل داده: خامی تا پختگی</title>
                <link>https://virgool.io/@rezakeshavarz/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AE%D8%A7%D9%85%DB%8C-%D8%AA%D8%A7-%D9%BE%D8%AE%D8%AA%DA%AF%DB%8C-i5wh1r1z7pu7</link>
                <description>توی آگهی های شغلی احتمالا این رو دیدید: توانایی استخراج بینش از داده برای بهبود کسب و کار. این جمله درواقع بزرگترین دلیلیه که کسب و کارها حاضر میشن هزینه کنن و تحلیلگر داده جذب کنن و منتظر باشن که کسب و کارشون مثل موشک بره بالا. ولی خب یه نکته تلخ اینجا هست: اساسا تفکری که پشت این جمله هست تفکر غلط و ناکارآمدیه. تصور غلطی که از تحلیلگر داده توی دنیا جا افتاده اینه:‌ یه آدم که یه خروار دیتا میذاره جلوش و خیره میشه بهش تا بالاخره اسرار کسب و کار رو از زیر زبون دیتا بیرون بکشه.توی این مطلب،‌ من میخوام تلاش کنم درباره ماهیت واقعی تحلیل داده و داده-محور بودن صحبت کنم. درواقع وقتی از تحلیل داده صحبت می کنیم،‌ سه رویکرد اصلی داریم که هرکدوم می تونن از یه راه به ما کمک کنن. اول یه نگاهی به این سه رویکرد بندازیم و بشناسیمشون، بعد می رسیم به...؟نکته: این مطلب با این پیشفرض نوشته شده که شما درباره دنیای تحلیل داده و کاری که یک تحلیلگر داده انجام میده، یه چیزایی می دونید از قبل. اگر ندونید هم ممکنه براتون مفید باشه، اما اگر دیدید مطلب براتون سنگین یا مبهمه، بپرید به قسمت آخر نوشته.اول: تحلیل توصیفیاین قسمت ماجرا برای همه ما آشناست. کوهی از داده داریم. میریم سراغش و شروع می کنیم از چند و چون وضعیتمون آگاه بشیم. کارهایی انجام میدیم که توش به وفور درصد و میانگین و کاهش و افزایش رو میشه دید، و همینطور نمودارهای گرد و دراز و کج و کوله، مثلا:نگاهی به داده فروشمون میندازیم و گزارشی تولید می کنیم از این که توی هر ماه چه مقدار فروش داشتیم. تعداد کاربرای سیستممون رو بررسی می کنیم و حساب می کنیم که چند درصد از کاربرها یک روز بعد از ثبت نامشون، پلتفرم ما رو ترک می کنن. محصولاتمون رو بالا پایین می کنیم و پیدا می کنیم که کدوم دسته از محصولات رضایت مشتری رو بیشتر تونستن جذب کنن....با نگاه کردن به اینجور گزارشها درک کلیمون از سیستم بالاتر میره و بینشی که به دست آوردیم رو موقع تصمیم گیری میتونیم استفاده کنیم. مثلا اگر یک سرویس ارائه دهنده موسیقی باشیم، با دیدن استقبال کاربرامون از فلان خواننده نوظهور، می تونیم به این نتیجه برسیم که باید دست بجنبونیم و بریم زودتر الباقی آلبومهاش رو هم تهیه کنیم که کاربرامون رو راضی نگه داریم. دوم: تحلیل پیشگویانهاینجا پای سلبریتی دنیای علم داده میاد وسط:‌یادگیری ماشین. بیاید این رو با یه مثال پیش ببریم: فرض کنیم یه فروشگاه آنلاین داریم. بعد از گشت و گذار توی داده موجود،‌ متوجه میشیم ۸۳ درصد کاربرامون بعد از خرید اول دیگه به سایت ما برنمی‌گردن. با هیجان میریم و داده مناسب رو برمیداریم و یه مدل هوشمند میسازیم. این مدل ما داده رو از ما تحویل می گیره و خروجیش اینه:‌ آیا فلان کاربر در آینده باز هم به پلتفرم ما برمی‌گرده یا نه؟ این یه مسئله طبقه بندی حساب میشه با خروجی دودویی. حالا با استفاده از یادگیری ماشین ما قدرت اینو داریم که پیشبینی کنیم مشتری قراره برگرده یا بره و پشت سرشو نگاه نکنه. خیلی مفید می تونه باشه، مگه نه؟ سوم: تحلیل تجویزیوقتی مجهز شدیم به توان پیشگویی،‌ یه سوال بزرگ پیش میاد: خب که چی؟‌ اصلا تونستیم پیش بینی کنیم کی میره، کی میاد. این چه سودی برای ما داره؟ اینجاست که می رسیم به پله بعدی تحلیل داده مون:‌ نسخه پیچیدن. درسته. اینجا ما به عنوان تصمیم گیرنده کسب و کار،‌ که هم از اوضاع مطلعه (تحلیل توصیفی) و هم می تونه یک سری وقایع در آینده رو پیشبینی کنه (تحلیل پیشگویانه) می تونیم آستینها رو بالا بزنیم. در قدم اول باید تواناییهامون رو بشناسیم. برگردیم به مثال فروشگاه. اول باید بررسی کنیم ببینیم چطور می تونیم کاری با کاربرهامون بکنیم که ترغیب بشن به بازگشت دوباره. مثلا گزینه های روی میز می تونه اینا باشه:‌ تخفیف بیشتر روی یه سری محصول خاص،‌ تخفیف اندک روی همه محصولات،‌ ارائه کد تخفیف به کاربرای خاص به صورت هدفمند، یا هر کار دیگه ای که در توانمونه. وقتی کارهای ممکن رو شناختیم، می تونیم بریم دست به کار بشیم و انبوه کد تخفیف رو پخش کنیم بین کاربرا. ولی نه! دست نگه دارید. داریم قدرت اصلیمون رو فراموش می کنیم: پیش بینی. ما که مجهز به پیشبینی وقایع هستیم،‌ میتونیم بیایم برگردیم به دنیای یادگیری ماشین. با استفاده از داده موجود و مدلی که توی مرحله قبل ساخته بودیم،‌ قبل هر اقدامی بریم پیشبینی کنیم خروجی هرکدوم از تصمیم هایی که ممکنه گرفته باشیم چیه. کدوم یک از اون کارهایی که بالا درباره شون صحبت کردیم (انواع تخفیف) می تونه تاثیر بیشتری روی بازگشت مشتری داشته باشه؟ بعد از استفاده از قدرت پیشبینیمون،‌ خواهیم دید که یکی از اون گزینه های روی میز تاثیر خیلی مثبتی میتونه بذاره روی اون سوژه مورد بحث ما. حالا وقت عمل کردنه. حالا می تونیم به جای آزمون و خطا (و سورپرایز شدنهای گاه به گاهی) فقط کاری رو انجام بدیم که احتمال موفقیت آمیز بودنش بیشتر از بقیه ست. بسیار سفر باید تا پخته شود خامیحقیقت اینه که وقتی از تحلیل داده صحبت می کنیم،‌ با سه سطح متفاوت از بلوغ مواجهیم. هر سازمانی بسته به اینکه چه زمانی حرکتش رو به سمت داده-محور شدن شروع کرده باشه، و چقدر هوشمندانه پیش رفته باشه، وضع متفاوتی داره. ممکنه یک سازمان در مرحله اول باشه و صرفا به یک سری گزارش بسنده کنه. ممکنه همین براش کاملا موثر و مفید باشه و حتی حس نکنه که نیاز به جلوتر رفتن داره. یه سازمان دیگه هم ممکنه به مرحله تحلیل تجویزی رسیده باشه و توی ریزترین تصمیم گیری ها هم کاملا داده محور عمل کنه.ولی یه نکته اینجا خیلی مهمه و اونهم اینه: نمیشه از مرحله سوم شروع کرد. نمی شه توقع داشته باشیم از روز اول بتونیم همه چیز رو با استفاده از داده به بهینه ترین حالت ممکن انجام بدیم. رسیدن به مرحله سوم نیازمند اینه که اول درک درستی از سیستممون داشته باشیم. در راه رسیدن به یه تحلیل توصیفی درست از محصولمون، متوجه خیلی چیزها میشیم. خیلی تاثیرهای مثبت رو می تونیم روی فرایندهامون بذاریم و درکمون که از چند و چون ماجرا بالا رفت،‌ بریم سراغ مراحل بعدی.چطور داده-محور بشیم؟احتمالا این سوالها الان توی ذهنتون داره می چرخه: اگر تازه بخوایم به سمت تصمیم گیری داده-محور حرکت کنیم از کجا باید شروع کنیم؟‌ چه قدمهایی برداریم، و به کجا برسیم؟ من شخصا یه راه برای تصمیم گیری داده محور دارم که طی کلی مطالعه و کلی بیشتر از اون کلنجار رفتن با مسائل، بهش رسیدم. این راه حل قراره مطلب بعدی من توی ویرگول باشه. اگر دوست داشتید به محض منتشر شدن،‌ ازش با خبر بشید، کافیه من رو توی ویرگول دنبال کنید.من کی ام؟من  رضا کشاورز، یه تحلیلگر داده و مدرس علم داده م. اگر دوست داشتید مطالب  دیگه ای که در زمینه دیتا ساینس و هوش مصنوعی می نویسم رو بخونید، کافیه من  رو اینجا توی ویرگول دنبال کنید، یا بیاید توی لینکدین کانکت بشیم. اونجا هم لینک مطالبی که می نویسم رو میذارم. با لایک کردن و  فرستادن این مطلب به کسایی که فکر می کنین بهش نیاز دارن، هم من و هم اونها  رو می تونید خوشحال کنید :)</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Sat, 19 Feb 2022 15:51:54 +0330</pubDate>
            </item>
                    <item>
                <title>برای پیروزی در مصاحبه data science روی اینها مسلط شو</title>
                <link>https://virgool.io/@rezakeshavarz/%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%DB%8C%D8%B1%D9%88%D8%B2%DB%8C-%D8%AF%D8%B1-%D9%85%D8%B5%D8%A7%D8%AD%D8%A8%D9%87-data-science-%D8%B1%D9%88%DB%8C-%D8%A7%DB%8C%D9%86%D9%87%D8%A7-%D9%85%D8%B3%D9%84%D8%B7-%D8%B4%D9%88-vu2k3wb7gyjn</link>
                <description>وقتی بحث علم داده میشه، همه دوست دارن توی یادگیری ماشین غرق بشن. دنیای یادگیری ماشین به شدت هیجان انگیز و جذابه. کارهای خفنی میشه باهاش کرد. اما یادگیری ماشین همه چیز نیست.وقتی اسم خودمون رو میذاریم دیتا ساینتیست، داریم ۲ تا ادعای بزرگ می کنیم: اول اینکه دیتا رو میشناسیم،‌ و دوم اینکه مثل یک دانشمند می تونیم فکر کنیم.۳ تا چیز هست که به باور من می تونن برگ برنده هر کسی توی مصاحبه های مربوط به علم داده باشن. هر شاخه ای که باشه،‌ فرقی نمی کنه. از مهندس داده گرفته تا متخصص یادگیری ماشین، سراغ هر موقعیت شغلی که بخواید برید،‌ این سه مورد برای شما از نون شب واجبترن.رنگ زیباییه... بریم ادامه مطلب... :)اول: پانداز - pandasدرسته. این کتابخانه که به نظر خیلی کوچولو و دم دستی میاد، خیلی خفنتر از اونه که در نگاه اول به نظر میاد. با استفاده از کتابخانه پانداز ما میتونیم هر بلایی که دوست داریم سر دیتا بیاریم. انواع اصلاحات رو روی داده اعمال کنیم،‌ محاسباتی که میخوایم رو روی داده انجام بدیم، و کلی کار دیگه. خیلی وقتها ممکنه توی کار (مثلا موقع آماده کردن داده برای یک مدل یادگیری ماشین) بخوایم تغییر خاصی رو روی داده اعمال کنیم، یا فیچر خاصی رو از داده بیرون بکشیم. برای این موقعیتها پنداز معمولا راه حل های خوبی داره. خیلی وقتها کاری رو که شاید اگر خودمون بخوایم با پایتون (یا زبانهای دیگه) از اول پیاده کنیم، چند ساعت ازمون وقت بگیره، با استفاده از پنداز میشه توی چند خط انجام داد.راه پیشنهادی من برای مسلط‌تر شدن روی پنداز؟خب قدم اول اینه که یه پروژه برای خودتون تعریف کنید و شروع به انجامش کنید. بهترین راه برای درک راه حل های پنداز اینه که اول مشکلاتی رو که میخواد حل کنه، درک کنیم. اما بعد چی؟ اینجاست که به یه منبع آموزشی مکمل احتیاج داریم.کتاب Pandas Cookbook اون مکملیه که باید بریم سراغش. این کتاب چیزی نیست که بخوایم از سر تا ته بخونیمش. درواقع تنها یه قسمت از این کتاب رو باید کامل خوند: فهرست. بعد از اون، باید توی هر موقعیتی، بگردیم دنبال قسمتی از این کتاب که درباره مشکل ما داره توضیح میده. با خوندن چند خط توضیح در کنار کد، و بعد اعمال کردن اون راه حل روی مسئله‌ خودمون،‌ می تونیم اندک اندک (جمع مستان می رسند)‌ تسلطمون رو روی این ابزار گوگولی و دوست داشتنی بالا ببریم.دوم: SQLحقیقت اینه که توی دنیای صنعت،‌ چندان خبری از فایل csv آماده نیست. شروع یه پروژه یادگیری ماشین با بارگزاری دیتا توی ژوپیتر نوتبوک شروع نمیشه. توی دنیای صنعت دیتا رو باید از دیتابیس ها گرفت (یا خیلی جاهای دیگه که فعلا ازش رد میشیم) و برای گرفتن دیتا از دیتابیس، باید زبانشون رو بلد باشیم. در دنیای امروز مهمترین زبانی که برای استفاده از database ها باید یاد بگیریم، زبان SQL ئه. تجربه شخصی: توی مصاحبه‌هایی که برای جذب تحلیلگر داده توی شرکتمون داشتیم،‌ تعداد کسایی که بخاطر بیگانگی مطلق با دیتابیسها رد میشدن، به شدت بیشتر از کسایی بود که بخاطر ندونستن یادگیری ماشین رد میشدن.راه پیشنهادی من برای مسلط‌تر شدن روی دیتابیسها؟یادگیری این یکی سرراست تره‌ :)کافیه دست به جستجو بشید، عبارت SQL for data analyst رو جستجو کنید. از بین کتابها یا دوره های ویدیویی که برای این موضوع هست، خودتون هرکدوم که بیشتر به دلتون نشست رو انتخاب کنید. اما فراموش نکنید که اینجا هم اصل قضیه تمرین کردنه. صرف خوندن کتاب یا تماشای ویدیو سود زیادی نداره.نکته مهم: به عنوان یک دانشمند/تحلیلگر داده لازم نیست با مباحث طراحی دیتابیس درگیر بشید. حداقل در ابتدای مسیر لازم نیست. اینکه بتونید دیتایی رو که لازم دارید از پایگاه داده بیرون بکشید کافیه. سوم: تفکر تحلیلگرانهدرسته. این یکی یه ابزار نیست. سخت شد. مگه نه؟ برای رسیدن به تفکر تحلیلی نمیشه چمبره زد روی کیبورد یا غرق شد توی کتابها. برای این یکی مسیر یه مقدار سخت‌تر و طولانی‌تر، ولی مهم‌تر از اون: جذاب‌تره. برای رسیدن به تفکر تحلیلگرانه باید آروم آروم پیش رفت. حقیقتا من هم اینجا نمی تونم توی چند خط جا کمک زیادی بکنم. اما فکر می کنم با یه ترفند باحال میشه به سمت این هدف حرکت کرد. وقتی از تفکر تحلیلی صحبت می کنیم، کسی میاد جلوی چشممون که می تونه توی هر موقعیتی با بررسی و تحلیل شرایط، برای نیازی که داریم راه حل خوب ارائه بده. اما این همه ماجرا نیست. یا بهتر بگم: این شروع ماجرا نیست. فرایند تحلیل، در واقع یک پله قبل‌تر شروع میشه: موقع پرسیدن سوال. حقیقت اینه که جوابهایی که ما به دست میاریم، در صورتی به درد می خورن که به سوال درستی جواب داده باشیم.الان احتمالا منتظرید که من بگم سوال خوب چیه و چطور پیداش کنیم. اما این رو نمیشه توی این مطلب جا داد. تاثیری که امیدوارم این مطلب روی شما بذاره اینه که دفعه بعد که با یه دیتای جدید مواجه شدید، به جای بلافاصله اقدام به ساخت یه مدل مبتنی بر یادگیری عمیق، اول به این فکر کنید که با استفاده از این داده به چه سوالی میشه جواب داد؟ چه نیازی رو میشه بر طرف کرد؟ چطور میشه به آدمها کمک کرد با بینشی که توی این داده نهانه؟ فکر می کنم این نقطه شروع خوبی باشه.حرف آخرچی شد که این مطلب رو نوشتم؟ امروز توی راه از جلوی یه کتابفروشی رد شدم و پشت ویترین کتابی بود با عنوان چیزهایی که آرزو می کنم در ۲۰ سالگی می دانستم (یا چیزی شبیه به این) و بعد یاد روزهایی افتادم که تلاش می کردم یه شغل در حوزه داده پیدا کنم. احتمالا اگر اون روزها این نکاتی که اینجا گفتم رو می دونستم، مسیر پیدا کردن شغل برام خیلی راحتتر میشد. شخصا باور دارم که این سه موردی که اینجا در موردشون صحبت کردم باید جزو اولویتهای یک دانشمند داده جویای کار باشه.  شاید یادگرفتن اینها به اندازه مباحثی مثل شبکه های عصبی هیجان انگیز نباشه، اما حقیقتا اهمیت این ۳ نکته اگر از یادگیری ماشین بیشتر نباشه، یقینا کمتر نیست.خیلی خوشحال میشم نظر یا تجربه شخصی خودتون رو هم توی کامنتها بگید. اگر هم درباره هر کدوم از بخشهای این مطلب سوالی دارید، بپرسید. سعی می کنم به همه سوالها جواب بدم. من کی ام؟من رضا کشاورز، یه تحلیلگر داده و مدرس علم داده م. اگر دوست داشتید مطالب دیگه ای که در زمینه دیتا ساینس و هوش مصنوعی می نویسم رو بخونید، کافیه من رو اینجا توی ویرگول دنبال کنید، یا بیاید توی لینکدین کانکت بشیم. اونجا هم لینک مطالبی که می نویسم رو میذارم. با لایک کردن و فرستادن این مطلب به کسایی که فکر می کنین بهش نیاز دارن، هم من و هم اونها رو می تونید خوشحال کنید :)</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Sun, 06 Feb 2022 19:28:06 +0330</pubDate>
            </item>
                    <item>
                <title>تنسورفلو:چطور loss function خودمون رو بسازیم؟</title>
                <link>https://virgool.io/CodeLovers/%D8%AA%D9%86%D8%B3%D9%88%D8%B1%D9%81%D9%84%D9%88%DA%86%D8%B7%D9%88%D8%B1-loss-function-%D8%AE%D9%88%D8%AF%D9%85%D9%88%D9%86-%D8%B1%D9%88-%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D9%85-lbgdzloy4o9w</link>
                <description>تابع هزینه چیه؟توی دنیای یادگیری ماشین، وقتی داریم یه مدل رو آموزش می‌دیم،‌ سعی می‌کنیم یه مولفه‌ای رو کمتر و کمتر کنیم. این مولفه چیه؟ این همون  هزینه ماست. هرچی این هزینه کمتر بشه، یعنی مدل ما بهتر شده. برای این هزینه از یه چیزی استفاده می‌کنیم به اسم تابع هزینه. توی تابع هزینه درواقع داریم یه روش انتخاب می‌کنیم که عملکرد مدل رو در هر قدم بسنجیم. معروف‌ترین تابع هزینه که واسه خیلی مسائل هم کاربرد داره میانگین مجذور خطاها یا همون Mean Squared Error هست که اینطوری تعریف می‌شه:mean squared errorاگر نیاز دارید که یه یادآوری درباره تابع هزینه و وظیفه‌ش بخونید، پایین صفحه یه چیزی براتون گذاشتم :)تعریف و استفاده از تابع هزینهاحتمالن می‌دونید که توی تنسورفلو اینجوری مشخص می‌کنیم که تابع هزینه مدلمون چی باشه:model.compile(optimizer=&amp;quotsomething&amp;quot, loss=&amp;quotsomething&amp;quot)حالا بیایم یه تابع هزینه بسازیم و بدیمش به مدلمون:from numpy import mean
def mean_squared_error(y_true, y_pred):
    squared_error = [(i - j) ** 2 for i, j in  zip(y_true, y_pred)]
    return mean(squared_error)خب حالا می‌تونیم از این استفاده کنیم. کافیه موقع کامپایل کردن مدلمون اونو به عنوان loss تنظیم کنیم:model.compile(optimizer=&amp;quotsomething&amp;quot, loss=mean_squared_error)ساده‌تر از اونی بود که فکرشو می‌کردیم. مگه نه؟ به همین سادگی می‌تونیم بسته به نیازمون هر تابع هزینه‌ای که صلاح دونستیم رو تعریف کنیم و استفاده کنیم.توی قسمت بعدی از این مجموعه ۲ قسمتی یه ذره عمیق‌تر می شیم و یاد می‌گیریم چطور تابع‌های پارامتریک بنویسیم. همینطور از با استفاده از مزایای برنامه‌نویسی شیء گرا، می‌ریم که از کلاس‌های پایه‌ی تنسورفلو برای نوشتن تابع هزینه‌مون استفاده کنیم.الان هم وقتشه تا آماده شدن مطلب بعدی دست به کار شید و این نمونه رو امتحان کنید. اگر هم سوال یا ابهامی داشتید بپرسید توی کامنتها. من و یا هرکسی که بلد باشه جواب می ده :)اگر براتون مفید بود مطلب، با حمایت کردن  ازش من رو دلگرم کنید برای تهیه کردن محتوا‌های بعدی. برای این کار  می‌تونید از لایک کردن و کامنت کردن نظر و پیشنهاداتون شروع کنید. یا اینکه این مطلب رو با کسایی که فکر می‌کنید بهش احتیاج دارن به اشتراک بذارید. به امید دیدار :)مرور مختصر تابع هزینهاگر تازه وارد دنیای یادگیری ماشین شدید، اصلن ازش نترسید. کافیه قدم به قدم بریم جلو. J تابع هزینه ماست. m تعداد نمونه داده‌های ماست. h(x) می‌گه مدل ما برای ورودی x چه خروجی‌ای تولید می‌کنه. y هم می‌گه که اون ورودی در داده‌ی ما چه مقدار واقعی‌ای رو خروجی می‌ده. زیگما هم که می‌گه برای تمام نمونه‌های موجود این اختلاف بین مقدار محاسبه شده و مقدار واقعی رو باید حساب کنیم (اختلاف رو حساب می‌کنیم، و بعد به توان ۲ می‌رسونیم) و در نهایت تقسیم بر m می‌کنیم تا میانگینشو به دست بیاریم.پیشنهاد جستجو: اون ضریب ۲ که پشت m نشسته هم یه فوت کوزه‌گریه که می‌تونه بهونه جستجوی خوبی براتون باشه :)اگر این توضیحات درباره تابع هزینه کافی نبود براتون، پیشنهاد می‌کنم یه نگاهی به این ویکی بندازید:  Loss functionتابع هزینه بنویسیماین دو مجموعه رو در نظر بگیریم: y_true = [2, 4, 6, 8, 10]y_pred = [1.9, 4.1, 6, 8.2, 10.1]فرض می‌کنیم که ما یه مدل ایجاد کردیم که در ازای یک ورودی، یه خروجی به ما می‌ده. خروجی واقعی که ازش توقع داریم، y_true , خروجی‌ای که به ما تحویل می‌ده y_pred هست. خب الان اگر یه نگاهی بندازیم می‌بینیم که اعداد پیش‌بینی خیلی به اعداد واقعی نزدیکن. اما دقیق نیستن. حالا چه کنیم؟حالا می‌خوایم یه جوری بررسی کنیم که مدل ما چقدر خطا داره. تابع هزینه رو اینجا قراره استفاده کنیم.پیشنهاد: یه بار روی کاغذ این رو حساب کنید ببینید به چه عددی می‌رسید. می‌تونه به واضح شدنش کمک کنه. از همون رابطه که بالاتر دیدیم استفاده کنید. مثال: برای اولین نمونه، مقدار واقعی ۲ بوده و مدل ما ۱.۹ پیش‌بینی کرده. پس این دو تا رو از هم کم کنیم، می‌شه ۰.۱ واحد اختلاف. این رو به توان ۲ برسونیم، می‌شه ۰۰.۱ واحد. پیشنهاد جستجو: چرا اصلا به توان ۲ می‌رسونیم؟ چه سودی داره؟پس قرار ما شد که توی مطلب بعدی، یه ذره حرفه‌ای تر عمل کنیم و تابع هزینه کامل‌تری بنویسیم.[وقتی که اون مطلب آماده بشه، لینکش رو اینجا می‌ذارم. الان که هنوز آماده نشده، می‌تونید من رو اینجا دنبال کنید ک هروقت آماده شد خبردار بشید.]</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Sat, 26 Dec 2020 22:52:58 +0330</pubDate>
            </item>
                    <item>
                <title>هفت خوان پایتون</title>
                <link>https://virgool.io/hooshteam/%D9%87%D9%81%D8%AA-%D8%AE%D9%88%D8%A7%D9%86-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-esdzffyfoott</link>
                <description>این یه لیست از یه مجموعه‌س هدفش راهنمایی یه برنامه نویس مبتدی به سمت حرفه‌ای شدنه. مطالب البته برای برنامه‌نویس‌های هر زبان دیگه‌ای قابل استفاده‌س. امیدوارم برات مفید باشه.برای رسیدن به مطالب می تونی از لینک‌های زیر استفاده کنی، یا من رو دنبال کنی تا از انتشارشون و البته انتشار مطالب دیگه درباره برنامه نویسی با خبر بشی. مخصوصن اگر به هوش مصنوعی علاقه داری، خبرهای خفنی در راهه :)خوان اول: یادگیریخوان دوم: تمرین تا تسلطخوان سوم: وارد گود شدنخوان چهارم‌: به زودیخوان پنجم: به زودیخوان ششم: به زودیخوان هفتم: به زودیخوان هشتم: شاید!!!</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Mon, 08 Jun 2020 19:49:04 +0430</pubDate>
            </item>
                    <item>
                <title>چطوری خدای پایتون بشم؟ خوان سوم</title>
                <link>https://virgool.io/@rezakeshavarz/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%AE%D8%AF%D8%A7%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A8%D8%B4%D9%85-%D8%AE%D9%88%D8%A7%D9%86-%D8%B3%D9%88%D9%85-p4aeskzkyfwd</link>
                <description>خب حالا که اینجایی، یعنی از خوان اول و خوان دوم برای تبدیل شدن به یه برنامه نویس حرفه‌ای رد شدی. بریم ببینیم خوان سوم چیه.[این مطلب سوم از مجموعه‌ی هفت‌خوان (یا شاید‌م هشت یا نه خوان) پایتونه که هدفش راهنمایی یه برنامه نویس مبتدی به سمت حرفه‌ای شدنه. مطالب البته برای برنامه‌نویس‌های هر زبان دیگه‌ای قابل استفاده‌س. برای دیدن خوان اول و دوم و الباقی، می‌تونی از این صفحه استفاده کنی: هفت خوان پایتون]دست به کار شوخب ساده‌س. وقتشه که از علم و مهارتی که به دست آوردی،‌ استفاده کنی. الان یه ابزار توی دستته که باهاش می‌شه خیلی کارا کرد. چرا شروع نکنی به ساختن چیزای باحال؟ حقیقت اینه که مهم‌ترین کار برای موفقیت اینه که علمت رو از کلاس درس و سایت آموزشی بکشی بیرون و ازش استفاده کنی.دست به کار شو. یه پروژه‌ی کوچیک برای خودت تعریف کن. لازم نیست آپولو هوا کردن (یا این روزا، فالکون) باشه. کوچیک هم باشه قبوله. من اینجا چندتا مثال می‌زنم که شاید بتونه کمکت کنه. پروژه‌های مبتدی برای یادگیری حین کارماشین حساب شخصیاین ماشین حساب قرار نیست تهش بشه یه ابزار خفن برای استفاده‌ی عموم. هدف اینه که باهاش مهارت خودت رو بسنجی. مثلن به این فکر کن که وقتی برنامه‌ت اجرا می‌شه، من میام و توی خط فرمان می‌نویسم «۲+۲». این ماشین حساب چطوری می‌فهمه که ۲  تا عدد هست و اون علامت چیه و باید چیکار کنه؟ بعدشم یه ذره برو توی عمق. مثلن ۲ به توان ۸ رو چطور می‌شه حساب کرد؟ برو یه تابع بنویس برای اینکه با استفاده از عملگر ضرب، بتونی یه عدد رو به توان یه عدد دیگه برسونی. کلن خلاقیتت رو روشن کن دیگه.حسابدار شخصییه چیزی که بیای و دخل و خرج‌های روزت رو بنویسی توش. بعد بیاد و بهش گذارش بده. مثلن اگر بهش ورودی بدی «تعداد خرید» یا «خرج هفت روز گذشته» بیاد  و اینا رو بهت نشون بده. ساد‌ه‌س؟ دست به کار شو :)مدیر برنامه شخصیامروز من بهت می‌گم بیا بریم یه قهوه بخوریم با هم، چهارشنبه ۲۸ خرداد. ولی خب با این همه مشغله، ممکنه فراموش کنی. یه چیزی بنویس که توی بیای و کاری که می‌خوای انجام بدی رو، به همراه روز انجامش توش بنویسی. بعدش با خودت قرار بذار که هر روز صبح که نشستی پشت کامپیوتر، از این برنامه بخوای که لیست کارای امروزت رو بهت بگه. من خودم یه همچین چیزی نوشتم چندسال پیش که تا چند هفته انقدر ذوقش رو داشتم که واقعن ازش استفاده می‌کردم و مفید هم بود. (این می‌تونه شروع عادت خوب برنامه‌ریزی هم باشه). حالا فکر کن که این رو چطوری می‌تونی بهترش کنی. چه چیزی می‌شه بهش اضافه کرد؟پخش موسیقی تصادفیدیدی یه وقتایی دلت می‌خواد یه چیزی گوش کنی ولی حس و حال انتخاب نداری؟ یه برنامه بنویس که وقتی بهش آدرس یه پوشه توی کامپیوترت رو می‌دی، از محتویات اون پوشه، یکی رو تصادفی پخش کنه. این یکی رو خودم خیلی دوست دارم. سه نکته برای بهتر نتیجه گرفتناول: به این فکر نکن که اینا رو قبلن یکی انجام داده. هدف تو تجاری کردن این پروژه‌ها نیست الان. فعلن می‌خوای مهارتت رو به چالش بکشی.دوم: توی هرکدوم از این پروژه‌های کوچیک، احتمالن نیاز به چیزایی داری که هنوز بلد نیستی. نگران نباش. با جستجو می‌تونی دنبالشون بگردی. کشف کردن قسمت زیبایی از برنامه‌نویسیه.سوم: اگر دیدی خیلی برات سخته انجام اینا (البته بعد از وقت گذاشتن و تلاش کافی، نه اینکه همون اول بگی وای این چه سخته)، شاید بد نباشه برگردی به خوان دوم و حتی اول و یه ذره اونجا خودت رو قوی‌تر کنی. وقتی هم انجامش دادی، بیا و پایین این صفحه، دنبال لینک خوان چهارم بگرد.اگر قبلن مشابه این‌ها رو انجام دادی، و دوست داری چند تا پروژه نمونه‌ از پروژه‌های یه سطح بالاتر معرفی کنم، حتمن توی کامنت‌ها بگو. اگر متقاضی زیاد باشه، خیلی زود می‌رم سراغ نوشتنش.و کلام آخرسعی کن حداقل یک از این اینا رو (یا یه چیزی که خودت حس می‌کنی) انجام بدی. حاصلش فوق‌العاده‌س. این تو رو خیلی خوب برای خوان بعدی آماده می‌کنه. اگر  برات مفید بود مطلب، با حمایت کردن ازش من رو دلگرم کن برای تهیه کردن  محتوا‌های بعدی. برای این کار می‌تون از لایک کردن و کامنت کردن نظر و  پیشنهادت شروع کن و بعدش هم من رو توی توییتر دنبال کنی. شناسه‌ی من  در توییتر: https://twitter.com/re_ke_moخوان چهارم در مسیر حرفه‌ای شدن -- به زودی</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Mon, 08 Jun 2020 19:40:50 +0430</pubDate>
            </item>
                    <item>
                <title>چطوری خدای پایتون بشم؟ خوان دوم</title>
                <link>https://virgool.io/@rezakeshavarz/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%AE%D8%AF%D8%A7%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A8%D8%B4%D9%85-%D8%AE%D9%88%D8%A7%D9%86-%D8%AF%D9%88%D9%85-ac2uhgnlf4y1</link>
                <description>خب وقتی اینجایی، یعنی با پایتون آشنایی و یه مقدار هم دست به کد شدی قبلن. اگر نه، این مطلب منتظرته: چطوری خدای پایتون بشم؟ خوان اول.  حل مسئلهبرنامه‌ نویسی در واقع مهارت حل مسئله است. حل مسئله یه فراینده که با فکر کردن به مسئله شروع می‌شه، بعد به طراحی راه حل هم می‌رسه، و در نهایت این راه حل محاسبه می‌شه و نتیجه به دست می‌آد. ولی یه مشکلی هست: شما ممکنه بتونی خیلی زود بفهمی که راه حل چیه. اما آیا این به تنهایی کافیه؟ نه. وقتی که دست به کد می‌شی، می‌بینی که توی فارسی خوب جواب رو می‌دونی، ولی نمی‌دونی به پایتون چطوری ترجمه‌ش کنی. راه حل چیه؟ تمرین و تمرین و تمرین. اونقدر که دیگه به‌جای فارسی، از همون اول به پایتون فکر بتونی بکنی.یکم عمیق‌تر: حل تمرین چرا مهمه؟وقتی که با یه زبون آشنا می‌شی و یه تیکه کد به اون زبون می‌بینی، ممکنه به خودت بگی که «به به، همه‌ش رو بلدم دیگه، برنامه‌نویس شدم، تمام» ولی خب این خیلی با حقیقت فاصله داره. شما الان در مرحله‌ی «آشنایی» هستی. یعنی مغزت می‌تونه با دیدن یه کد، اون رو درک کنه، اما لزومن توان تولید همون رو نداره، هنوز :) با حل تمرین، ما برنامه نویسی رو از  آشنایی سطحی، تبدیل می‌کنیم به یک مهارت. علاوه بر این، مغز ما، توان پردازش محدودی داره در هر لحظه. یعنی شما نمی‌تونی در آن واحد به همه چی فکر کنی. نتیجه‌ش اینه که خیلی زود خسته می‌شی. ولی یه استثنا هست: با تمرین و تکرار یک کار، برای مغز اون کار راحت‌تر می‌شه. مثالش هم همون ماجرای معروف رانندگی: اوایل مدام باید به همه‌چیز دقت می‌کردی (برای من واقعن نفس گیر بود اون اوایل) ولی بعد از یک مدت، کار به جایی رسید که انگاری بدون فکر انجامش می‌دی. (در حقیقت اتفاقی که افتاده اینه که در اثر تکرار، مغزت راحت‌تر می‌تونه تصمیم گیری کن در هر موقعیت و خیلی توان پردازشی کمتری لازم داره، وگرنه کار که همون کاره). برای برنامه نویسی هم همینه. تا وقتی که به تسلط نرسیدی، موقع حل مسئله (یا کار کردن روی یه پروژه) این تسلط نداشتن روی سینتکس، باعث می‌شه حجم زیادی از انرژیت صرف این کار بشه. ولی با تمرین؟ بعد از یه مدت می‌تونی تمام تمرکزت رو روی خود مسئله صرف کنی.آموزش‌ها کافی نیستنیه نکته‌ی دیگه اینه که آموزش‌ها هیچوقت کامل نیست. مولف همیشه محدودیت داره. نمی‌خواد متنش/ویدیوش طولانی بشه، وقت نداره همه‌چیز رو بهت بگه، یه سری چیزا شاید برای مبتندی گیج کننده باشن و... . خب چاره چیه؟ درگیر شدن با مسائل مختلف. چرا؟ جلوتر بهش می‌رسیم.کجا برم برای تمرین خب؟این چند تا سایت خیلی خفنن و می‌تونن به پیشرفتت واقعن سرعت بدن:اولی: codewars.comاین سایت بهت کلی تمرین می‌ده که هشت سطح دارن. هشت آسون ترینه و یک سخت‌ترین. اینجوریه که همون اول بهت یه سوال نشون می‌ده حل کنی: این آسون ترین سواله. با حل کردنش امتیاز می‌گیری و سوال بعد سخت‌تره یه ذره. همینطوری هرچقدر که بیشتر پیشرفت کنی، سوال‌های جوندار‌تری نشونت می‌ده. در ضمن، محدود به پایتون نیست. خیلی از سوالات رو می‌تونی با هرزبانی که خواستی حل کنی.دومی: hackerrank.comاین هم مشابه بالاییه، ولی علاوه بر اون، یه سری مجموعه سوال هدفمند هم داره. این سوالا که هرکدوم برای یه حوزه‌ی خاصه، کمکت می‌کنه برنامه‌نویسیت رو در یک زمینه‌ی خاص بهتر کنی. مثلن ممکن روی طراحی بهتر الگوریتم بخوای وقت بذاری، یا برنامه نویسی مرتبط با آمار یا...؟ برو خودت ببین.سومی: pythonchallenge.comاین رو من خیلی دوست دارم. می‌ری توش و اولین سوال رو می‌بینی و همین. آدرس سوال بعدی، درواقع جواب سوال فعلیه. تا حل نکنی از بعدی خبری نیست. رو مخه، نه؟ و خب تازه، نیازی به کد هم نیست. فقط جواب نهایی مهمه.سایتی هست که شما سراغ دارید و من ننوشتم؟ ممنون می‌شم توی نظرات بگید که هم من و هم دوستان دیگه استفاده کنن.برای بهتر نتیجه گرفتن پیشنهاد می‌کنم اینا رو هم بخونی:زود نرو سراغ جواببرای اینکه بیشترین سود رو از این سایت‌ها ببری، مهم اینه که حتمن روی سوال فکر کنی. یعنی چی؟ یعنی بعد از خوندن سوال، یه راست نپری قسمت جواب. نه! به هیچ وجه. این هیچ سودی نداره. باید باهاش درگیر بشی. حتمن حتمن حتمن حتمن دست به کد شو. روی خاک نمی‌شه شناگر شد. روی کاغذ و هوا هم نمی‌شه برنامه نویس شد. دست به کد شو زور بزن تا به جواب برسی. احتمالن دفعه‌ی اول و دوم به جواب نمی‌رسی، ولی این خوبه. با هر اشتباه، یه نکته‌ی مهم یاد می‌گیری احتمالن.زیادم گیر ندهحالا اگر مشغول شدی و یهو دیدی سه ساعت گذشته و هنوز به جواب نرسیدی چی؟ نه دیگه. وقتشه بیخیال بشی بری...نه! الان قسمت دوم کار شروع می‌شه. یادته گفتم آموزش‌ها کامل نیستن؟ اینجا این ناقص بودنا خودشون رو نشون می‌دن. احتمالن برای حل این سوال نیاز به چیزی داری که توی مرجع آموزشیت نبوده (یا بوده و فراموش کردی،‌اشکال نداره). حالا وقت اینه که دست به جستجو بزنی. توی سوال یا توی راه حلی که به ذهن خودت رسیده، دنبال کلمات کلیدی بگرد. ببین آیا به تابع خاصی نیاز داری؟ نوع خاصی از شرط رو باید استفاده کنی؟ یا چی؟ برو توی یه موتور جستجو و بگرد ببین به کجا می رسی. حجم زیادی از یادگیری اینجا رخ می‌ده.این قسمت برای کنجکاو‌هاییه که همه‌ش سوال می‌پرسن :) اگر دوست داشتی می‌تونی ازش رد شی و بری سراغ مطلب بعدی.یکم عمیق‌تر: حل تمرین چرا مهمه؟وقتی که با یه زبون آشنا می‌شی و یه تیکه کد به اون زبون می‌بینی، ممکنه به خودت بگی که «به به، همه‌ش رو بلدم دیگه، برنامه‌نویس شدم، تمام» ولی خب این خیلی با حقیقت فاصله داره. شما الان در مرحله‌ی «آشنایی» هستی. یعنی مغزت می‌تونه با دیدن یه کد، اون رو درک کنه، اما لزومن توان تولید همون رو نداره، هنوز :) با حل تمرین، ما برنامه نویسی رو از  آشنایی سطحی، تبدیل می‌کنیم به یک مهارت. علاوه بر این، مغز ما، توان پردازش محدودی داره در هر لحظه. یعنی شما نمی‌تونی در آن واحد به همه چی فکر کنی. نتیجه‌ش اینه که خیلی زود خسته می‌شی. ولی یه استثنا هست: با تمرین و تکرار یک کار، برای مغز اون کار راحت‌تر می‌شه. مثالش هم همون ماجرای معروف رانندگی: اوایل مدام باید به همه‌چیز دقت می‌کردی (برای من واقعن نفس گیر بود اون اوایل) ولی بعد از یک مدت، کار به جایی رسید که انگاری بدون فکر انجامش می‌دی. (در حقیقت اتفاقی که افتاده اینه که در اثر تکرار، مغزت راحت‌تر می‌تونه تصمیم گیری کن در هر موقعیت و خیلی توان پردازشی کمتری لازم داره، وگرنه کار که همون کاره). برای برنامه نویسی هم همینه. تا وقتی که به تسلط نرسیدی، موقع حل مسئله (یا کار کردن روی یه پروژه) این تسلط نداشتن روی سینتکس، باعث می‌شه حجم زیادی از انرژیت صرف این کار بشه. ولی با تمرین؟ بعد از یه مدت می‌تونی تمام تمرکزت رو روی خود مسئله صرف کنی.بعد از انجام اینا، بیا برای خوان سوم، ولی قبلش:اگر  براتون مفید بود مطلب، با حمایت کردن ازش من رو دلگرم کنید برای تهیه کردن  محتوا‌های بعدی. برای این کار می‌تونید از لایک کردن و کامنت کردن نظر و  پیشنهاداتون شروع کنید و بعدش هم من رو توی توییتر دنبال کنید. شناسه‌ی من  در توییتر: https://twitter.com/re_ke_moآماده ای؟ چطور خدای برنامه نویسی بشم - خوان سومبرای دیدن لیست کل خوان‌ها، می‌تونی بری اینجا: هفت خوان پایتون</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Sat, 06 Jun 2020 21:05:27 +0430</pubDate>
            </item>
                    <item>
                <title>چطوری خدای پایتون بشم؟ خوان اول</title>
                <link>https://virgool.io/coderlife/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%AE%D8%AF%D8%A7%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A8%D8%B4%D9%85-%D8%AE%D9%88%D8%A7%D9%86-%D8%A7%D9%88%D9%84-xxiwcxgwdawm</link>
                <description>جالبی پایتون اینه که عملن توی هر حوزه‌ای  بری یه اثری ازش می‌بینی: وب، هوش مصنوعی، شبکه، و الباقی گوشه‌های دنیای کامپیوترها. بعضی‌ها می‌گن بهترین زبان برنامه‌نویسی برای شروع پایتونه، بعضیام اصلن از این زبون خوششون نمیاد. اگر شک دارید که پایتون اون چیزیه که لازم دارید، اول این مطلب رو بخونید: چرا پایتون؟ و اگر تصمیمتون بر یادگیری پایتون بود، ادامه این مطلب منتظر شماست.خوان اول: آشناییبرای یادگرفتن پایتون، اول باید پایتون یادگرفت :) خیلی ساده‌س اما مهمه. کاری که باید بکنید اینه: یه منبع پیدا کنید، مطالعه کنید و یاد بگیرید. برای یادگرفتن هم مهم‌ترین نکته پشت‌کار داشتنه. اگر هم هرجای کار نیاز به کمک داشتید، بیاید این زیر بپرسید.بهترین منابع برای یادگیری پایتون:نکته مهم: اصولن برای برنامه نویس شدن، زبان انگلیسی یه فاکتور تعیین کننده‌س. اگر زبانتون خوبه، از همین ابتدا بهتره که با منابع انگلیسی شروع کنید به یادگیری. اما اگر فکر می‌کنید زبانتون خوب نیست برای این کار، با منابع فارسی شروع کنید ولی کنارش حتمن حتمن حتمن، زبان انگلیسی رو هم یادبگیرید.منابع انگلیسی:کتاب Learn Python The Hard Way یکی از بهترین کتابهاست. از اسمش نترسید. درواقع اصلن هم سخت نیست. آموزش بر اساس مثال پیش می‌ره و خیلی دلنشین هم هست.آموزش پایتون Sololearn از نظر محتوا شاید به پای کتاب بالایی نرسه، اما یه نکته‌ خوبش اینه که مسیر آموزش به صورت تعاملی طی می‌شه و با تست های خیلی کوچولو سعی بر جا انداختن مطالب داره. دوره‌ی  ویدیویی Python Essential Training از سایت معروف لیندا هم یکی از گزینه‌های خوبه. نزدیک ۵ ساعت ویدیوئه که کلیت ماجرا رو خوب پوشش می‌ده.رویکرد پیشنهادی: برای دست گرمی، دوره‌ی Sololearn رو بخونید یا کورس لیندا رو ببینید  که با برنامه‌نویسی به صورت کلی آشنا بشید. بعد برید سراغ Learn Python The Hard Way و شروع کنید به یادگیری. حتمن هم تمرین ها رو همراه باهاش پیش برید. توی برنامه نویس شدن تمرین خیلی خیلی از مطالعه کردن مهمه تره.اگر با یه زبون برنامه نویسی دیگه آشنا هستید و مفاهیم ابتدایی مثل شرط و تکرار و تابع و اینا رو می‌دونید آموزش پایتون ۳ Tutorialspoint گزینه‌ی خوبیه. خیلی سرراست مطالب رو لیست کرده و می‌شه یاد گرفت. اما تلاش زیادی برای تفهیم مفاهیم برای کسی که از قبل باهاشون آشنا نیست، نکرده.منابع فارسی:آموزش پایتون فرادرس تدریس شده توسط میترا تجربه کار. ۱۸ ساعت آموزشه و توی سرفصل‌هاش چیزای مهم پوشش داده شده. هزینه‌ش هم ۴۰ هزار تومنه.دوره‌ی آموزش پایتون مکتب‌خونه توسط جادی تدریس شده، مسیر یادگیری به صورت تعاملیه و آزمون و پروژه هم داره. رایگان هم هست.راستش چون خودم هیچ کدوم از این دوره های فارسی رو ندیدم، نمی‌تونم کیفیتشون رو تضمین کنم. اما دوره‌ی آموزش پایتون مکتب‌خونه، یه مقدار به نظر بهتر میاد. اون کوئیز ها یقینن بهتون کمک می‌کنن. در انتها هم اگر توی آزمونش موفق باشید یه مدرک می‌گیرید. (البته این مدرک و در کل هیچ مدرک دیگه‌ای مطلقن هیچ کاربردی نداره و مهم‌ترین مدرک یه برنامه نویس، مهارتیه که از خودش نشون می‌ده). با فرض این که بصورت منظم مطالعه می‌کنید، و اینکه چقدر وقت می‌ذارید برای یادگیری، این خوان می‌تونه یه چیزی بین ۲ هفته تا ۲ ماه طول بکشه. سعی کنید عجله نداشته باشید و اون حداقل دو هفته رو براش وقت بزارید. تلاش کنید بیشتر از ۳ ماه نشه این روند، که ممکنه فراموشی‌ و سردی و دلزدگی به همراه داشته باشه.توی هر جای کار هم نیاز به کمک داشتید، یا سوالی براتون پیش اومد، زیر همین مطلب بپرسید و من تلاش می‌کنم که زود جواب بدم. :)اگر این مرحله رو تموم کردید، برید سراغ خوان دوم ----&gt; چطور خدای برنامه نویسی بشم - خوان دوماگر براتون مفید بود مطلب، با حمایت کردن ازش من رو دلگرم کنید برای تهیه کردن محتوا‌های بعدی. برای این کار می‌تونید از لایک کردن و کامنت کردن نظر و پیشنهاداتون شروع کنید و بعدش هم من رو توی توییتر دنبال کنید. شناسه‌ی من در توییتر: https://twitter.com/re_ke_moاگر از قبل برنامه‌نویس هستید و از روی کنجکاوی این مطلب رو باز کردید، خوشحال می‌شم نظر شما رو هم بدونم. منبع پیشنهادی شما چیه؟</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Fri, 05 Jun 2020 12:47:26 +0430</pubDate>
            </item>
                    <item>
                <title>اولین پروژه یادگیری ماشین</title>
                <link>https://virgool.io/hooshteam/%D8%A7%D9%88%D9%84%DB%8C%D9%86-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-yovlvupslrmx</link>
                <description>این یه پروژه ساده‌ی یادگیری ماشینه. هدف اینه که روند کلی یه پروژه رو با هم طی کنیم. از مجموعه داده‌ی معروف آیریس برای هدفمون استفاده می‌کنیم.مخاطباگر تازه با یادگیری ماشین آشنا شدید: سعی کنید کد ها رو روی سیستم خودتون امتحان کنید. من از ژوپیتر استفاده کردم. برای محیط های دیگه احتمالن اندکی تغییر باید بدید.اگر این اولین مواجهه‌ی شما با یادگیری ماشینه، سعی کنید صرفن کلیت کار رو درک کنید و هرچیزی رو هم که متوجه نشدید، کافیه جستجو کنید درموردش. اصلن لازم نیست در این مرحله، مو به مو همه چیز رو بررسی کنید.تنها پیش نیاز، کمی آشنایی با پایتونه. همین.مراحلشناخت مسئله و هدفبررسی داده‌هاساخت مدلبررسی کیفیت عملکرد مدلجمع بندیشناخت مسئله و هدفگل زنبقتوی این آموزش، از یه مجموعه‌ی داده‌ی معروف استفاده می‌کنیم به اسم Iris که در واقع مشخصات یک سری گل زنبق  رو به ما می‌ده. کاری که ما باید بکنیم اینه که با استفاده از این اطلاعات، بتونیم تشخیص بدیم هر گل، جزو کدوم یک از انواع زنبقه.بررسی داده‌هامجموعه‌ی داده‌ی Iris رو می‌تونیم با استفاده از کتابخانه scikit-learn بارگزاری کنیم:from sklearn.datasets import load_iris
iris = load_iris()حالا می‌تونیم از این داده استفاده کنیم. اول بیایم ببینیم که چه اطلاعاتی از گلها در اختیارمون قرار گرفته:iris.dataچیزی که بهمون نشون داده می‌شه اینه:array([[5.1, 3.5, 1.4, 0.2],       [4.9, 3. , 1.4, 0.2],       [4.7, 3.2, 1.3, 0.2],       ...       [5.9, 3. , 5.1, 1.8]])       چندان قابل فهم نیست، نه؟ یکم توضیح لازم داره. هر سطر، نماینده‌ی یک گله. و توی هر سطر ۴ تا عدد هست، که درواقع اندازه‌ی چهار مشخصه از اون گل رو به ما می‌گه. چه مشخصه‌ای؟ اینجوری می‌شه فهمید:iris.feature_namesخروجیش همچین چیزیه:[&#x27;sepal length (cm)&#x27;, &#x27;sepal width (cm)&#x27;, &#x27;petal length (cm)&#x27;, &#x27;petal width (cm)&#x27;]ما از هر گل چهار مشخصه رو می‌دونیم. به ترتیب طول کاسبرگ، عرض کاسبرگ، طول گلبرگ، عرض گلبرگ. همه‌ی اینها هم به سانتی متر.  کاسبرگ شاید واژه‌ی آشنایی نباشه. به نقل از ویکیپدیا:هر یک از قطعه‌ها یا بخش‌های کاسهٔ گل که معمولاً سبز و گاه به رنگ‌های دیگر است را کاسبَرگ می‌نامند. خب پس ما الان طول و عرض کاسبرگ و گلبرگ تعدادی گل رو می‌دونیم. دیگه چی؟ما باید نوع هرکدوم از این گلها رو هم بدونیم. در مجموع سه نوع گل زنبق توی این مجموعه‌ی داده هست. اینجوری می‌تونیم اسماشون رو ببینیم:iris.target_namesخروجی این دستور، اینجوریه:array([&#x27;setosa&#x27;, &#x27;versicolor&#x27;, &#x27;virginica&#x27;], dtype=&#x27;&lt;U10&#x27;)توی این آرایه، سه تا اسم می‌بینیم که هرکدوم نوعی از زنبقه. درواقع هرکدوم از گل‌هایی که توی این مجموعه‌داده هستن، یکی از این سه تا هستن. از کجا بفهمیم که کدوم گل، از چه نوعیه؟ کافیه این دستور رو اجرا کنیم:iris.targetخروجیش همچین چیزیه:array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])معنی این چیه؟اگر به خاطر داشته باشید با دستور iris.data دیدیم که هر گل چه مشخصاتی داره. حالا اینجا می‌‌بینیم که هرکدوم از اون گلها مربوط به کدوم دسته‌ن. اولین عدد، نوع اولین گل در مجموعه‌داده رو مشخص می‌کنه. دومین عدد، دومین گل(دومین سطر) رو و الی آخر. اگر دقت کنید فقط سه تا عدد توی این آرایه می‌بینید: ۰ و ۱ و ۲. اینجا صفر معادل setosa هست. ۲ به معنی versicolor هست. و ۲ هم می‌شه virginica.خلاصه‌ی این قسمت:ما یه تعداد گل زنبق داریم، که از هرکدوم چهار مشخصه (طول و عرض کاسبرگ و گلبرگ) رو می‌دونیم. همچنین می‌دونیم که هرکدوم از این گلها، چه نوعی از زنبق هستن. حالا کاری که می‌خوایم بکنیم اینه که ببینیم آیا در آینده می‌تونیم با داشتن این ۴ تا مشخصه، تشخیص بدیم که این گل، چه نوعی از زنبقه.برای راحتی کار، از این به بعد مشخصات گل‌ها رو توی آرایه‌ی X و نوع هر گل رو توی y ذخیره می‌کنیم:X = iris.data
y = iris.targetساخت مدلحالا قسمت خوب قضیه شروع می‌شه. ما اینجا یه ماشین جادویی قراره بسازیم که از ما مشخصات یک گل رو بگیره و بهمون بگه که این گل از چه نوعیه. به این ماشین جادویی می‌گیم مدل.برای ساخت مدل می‌تونیم از ابزار های مختلفی که scikit-learn در اختیارمون گذاشته استفاده کنیم. اینجا، قراره از درخت تصمیم استفاده کنیم. این که درخت تصمیم دقیقن چیه رو می‌تونید توی این صفحه ویکیپدیا بخونید. ولی برای این لحظه‌، زیاد لازم نیست وارد جزئیات بشیم. می‌تونیم کار رو با خیال راحت به scikit-learn بسپریم.درخت تصمیم رو اینجوری می‌شه ساخت:from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier() به همین سادگی. ولی این همه‌ی ماجرا نیست. حالا باید به این مدل داده‌هامون رو بدیم تا ازشون بتونه یادبگیره و بعد بتونه بهمون بگه که گلی که مشخصاتش رو بهش دادیم، از چه نوعیه. ولی یه مشکلی هست.یادتونه که مشخصات گل ها رو ریختیم توی متغیری به اسم X. یه نگاهی بهش بندازیم:X.shapeخروجی این دستور اینه رو اگر توی کامپیوترتون ببینید،‌ بهتون داره می‌گه که این مجموعه داده ۱۵۰ سطر داره‌(یعنی ۱۵۰ گل) و هرکدوم ۴ مشخصه دارن‌(همونایی که دیدیم قبلتر)اگر ما این داده‌ها رو به مدلمون بدیم، می‌تونه ازش یادبگیره که چطور گلها رو دسته بندی کنه. ولی مشکل اینه که ما نمی‌تونیم بسنجیم که آیا درست داره این کار رو انجام می‌ده یا نه. پس چه کنیم؟ می‌تونیم قسمتی از این داده‌ی موجود رو نگه داریم تا بعدن ازش برای سنجیدن کیفیت مدلمون استفاده کنیم. چطور؟ اینجوری:from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)چه اتفاقی افتاده اینجا؟ با استفاده از تابع train_test_split داده‌مون رو به دو بخش train و test تقسیم کردیم. ۲۰ درصد داده رو برای تست کنار گذاشتیم، و الباقی رو برای تربیت مدل استفاده می‌کنیم.حالا برمی‌گردیم به درخت تصمیممون. اینجا می‌تونیم داده‌هامون رو بدیم تا کار جادوییش رو انجام بده:tree.fit(X_train, y_train)از اونجایی که داده‌ی ما چندان حجیم نیست،‌ این عملیات هم زیاد طول نمی‌کشه (کمتر از یک ثانیه احتمالن.)حالا می‌تونیم ازش استفاده کنیم:predictions = tree.predict(X_test)اگر دقت کنید، توی مرحله قبل، به مدلمون هم مشخصات گلها رو دادیم، هم نوعشون رو. اما اینجا فقط مشخصات رو دادیم. چرا؟ چون اینجا درواقع مدلمون قراره برامون نوع گل رو پیدا کنه. مقدار پیش‌بینی ها رو هم توی متغیر predictions ذخیره می‌کنیم.بررسی کیفیت عملکرد مدلحالا وقتشه که ببینیم که کیفیت مدلمون چطوره:from sklearn.metrics import accuracy_score
accuracy_score(y_pred=predictions, y_true=y_test)خروجی این کد برای من ۰.۹ بود. این یعنی از ده گل، نه گل رو درست شناسایی کرده این مدل. البته این عدد ممکنه روی کامپیوتر شما کمی بالا و پایین باشه. (جستجو کنید ببینید چرا اینجوری می‌شه)جمع بندیاین یه پروژه‌ی خیلی کوچیک در زمینه‌ی یادگیری ماشین بود. قدم کوچیک اما مهمی برداشتید برای یادگیری. تبریک می‌گم. برای مطالعه‌ی بیشتر می‌تونید این‌ها رو جستجو کنید و مطالعه کنید:یادگیری تحت نظارت (Supervised learning)طبقه بندی‌ (Classification)درخت تصمیم (Decision Tree)برای دیدن آموزش‌های بعدی هم می‌تونید منو رو اینجا دنبال کنید. </description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Sun, 22 Sep 2019 02:25:42 +0330</pubDate>
            </item>
                    <item>
                <title>آیا FaceApp خطرناکه؟</title>
                <link>https://virgool.io/@rezakeshavarz/%D8%A2%DB%8C%D8%A7-faceapp-%D8%AE%D8%B7%D8%B1%D9%86%D8%A7%DA%A9%D9%87-rnhd4ylpff97</link>
                <description>اسمش آشناس؟ همون اپ معروفه که چهره‌ی شما رو پیر می‌کنه. توی بیست سالگی یه نگاهی به چهره‌ی احتمالی شصت سالگی خودت می‌ندازی و می‌گی به به، چقدر خوب موندم. چقدر شکسته شدن بیچاره‌ها!این که این همه تصویر جمع‌آوری شده توسط این اپ کجا و چگونه و توسط چه کسی قراره استفاده بشه، نقل بحثای این روزاست. دغذغه‌ی خوب یکسری از افراد اینه که نباید اینقدر راحت عکس‌ها و درکل اطلاعاتمون رو هدیه کنیم به کسایی که نمی‌شناسیم. معلوم نیست در انتها از این عکسها بجز این چند ثانیه فان که به ما می‌دن، دیگه چه استفاده‌ای می‌کنن.اما یک قدم فراتر: همون چند ثانیه فان خیلی مهمه. اینکه یکهو یه موج بیاد و همه این وظیفه‌ی خطیر رو بر دوش خودشون حس کنن که باید یک عکس از خودشون رو در این فرمت مد روز ارائه بدن، اصلن چیز خوبی نیست. اما مشکل چیه؟زمان! شخصی رو تصور کنید که ۵۰۰ تا اکانت اینستاگرام رو فالو کرده، از این بین ۳۰۰ تاش دوستاشن و الباقی صفحه‌های فان و علمی و اخبار و امثالهم. حالا تصور کنید که این اتفاق بیفته: ۱۵۰ نفر از این افراد یه عکس از پیری زودرس خودشون منتشر کنن. حاصل؟ اگر روی هر عکس فقط و فقط ۵ ثانیه توقف کنیم، می‌شه ۱۲.۵ دقیقه. زمان زیادی نیست یقینن. اگر اون پیجهای فان که میان و سلبریتی ها رو هم پیر می‌کنن و بهمون نشون می‌دن بیاریم توی بازی، این عدد یکم بیشتر می‌شه. مثلن بگیم اونم ۱۲.۵ دقیقه. مجموعن ۲۵ دقیقه از وقت ما هدر رفت.اما: مگر نه این که ما به هر حال در هر روز کلی وقت توی سوشال میدیا تلف می‌کنیم؟ خب اینم جزو همون زمانه دیگه.  اما نه! حقیقت اینه که ما یه تعداد صفحه‌ی مشخص رو دنبال می‌کنیم که هرکدوم فعالیت بخصوصی دارن و قسمتی از زمان روزانه‌ی ما رو از ما می‌گیرن. این ۲۵ دقیقه اما قسمتی از اون زمان نیست، چیزیه که به اون زمان در واقع اضافه می‌شه. و یه نکته دیگه: تماشای عکسهای سفر یه همکار به یه جای خوش آب و هوا می‌تونه خودش یه تجربه‌ی خوب و مفید باشه، مخصوصن اگر اون عزیز از تجربیاتش هم برامو بگه. اما زرت و زورت این و اون رو در پیری دیدن؟ نه واقعن.حقیقت تلخ‌تر: این دفعه‌ی اول نیست که یه مدل عکس خاص گذاشتن مد می‌شه. قبلن مثلن عکس سیاه و سفید یه مدت مد شد، استفاده از فلان فیلتر خاص که گوشای گوگولی بهمون می‌ده مد شد، اونی که پسر رو دختر می‌کرد و دختر رو  پسر مد شد، یا کلی چیز دیگه که والا در خاطرم نیست. این عکس پیری هم آخرینشون نیست و یقینن یکی دیگه میاد.این رو هم در نظر بگیریم که این سطحی‌ترین ایرادیه که به این قضیه می‌شه گرفت. اثر‌های بلند مدتش روی رفتار‌هامون، طرز فکرمون، سلیقه‌مون و خیلی چیزای دیگه رو هم می‌شه بررسی کرد. ولی خب، فکر می‌کنم این سطحی‌ترین مشکل، خودش به تنهایی ترسناک باشه. درسته که با این اپ نه قند خون بالا می‌ره یهو و نه حساب بانکیمون رو خالی می‌کنن،‌ ولی خب، چندان هم بی اثر نیست روی زندگی ما. کاش یکم با وسواس تر توی این موج ها شیرجه می‌رفتیم. این چیزی که اینقدر راحت ریخت و پاش می‌کنیم، زمان ماست، منبع محدودی که هیچوقت قرار نیست دوباره برگرده به جیبمون. لذت‌های خیلی عمیق‌تری هست که با افتادن به دام اینجور اپ‌ها،‌ از خاطرمون می‌رن. حیف نیست زندگی؟پ. ن. هنوز سه ماه نشده یه جدیدش اومد. این یکی اسمش gradient هست و بهمون می‌گه شبیه کی هستیم. ببینیم بعدی کی میاد.</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Fri, 26 Jul 2019 21:00:55 +0430</pubDate>
            </item>
                    <item>
                <title>تولید اعداد رندوم با پایتون و numpy</title>
                <link>https://virgool.io/coderlife/%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B1%D9%86%D8%AF%D9%88%D9%85-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%88-numpy-s93ytkbuhfx6</link>
                <description>تولید اعداد تصادفی با پایتونبه هردلیلی، گاهی لازمه که از اعداد تصادفی استفاده کنیم. ساده‌ترین راه برای تولید یه عدد تصادفی توی پایتون استفاده از ماژول random هست که باهاش می‌شه اینجوری یه عدد رندوم تولید کرد:import random
x = random.randint(0, 10)که در اینجا متغیر x حاوی یک عدد رندوم بین صفر تا ده خواهد بود. ماژول رندوم تعداد دیگه‌ای متد دیگه هم برای تولید اعداد تصادفی داره. تولید اعداد تصادفی با numpyکتابخانه‌ی numpy که به امکان استفاده از آرایه‌ها و ماتریس (ماتریکس)ّهای بزرگ رو فراهم می‌کنه، در خودش پکیجی داره برای تولید اعداد رندوم. اول باید کتاب‌خانه‌ی نامپای رو بارگذاری(!) کنیم. عادت رایج بین برنامه‌نویس‌ها و دانشمندان داده اینه که این نامپای رو با اسم مختصر np وارد برنامه کنن:import numpy as npحالا اینجا تعدادی از قابلیت‌هاش رو بررسی ‌می‌کنیم.تولید یک عدد رندوم بین صفر و یک:np.random.rand()اگر به این تابع  یک عدد به عنوان ورودی بدیم، به ما یک آرایه به طول ورودی برمی‌گردونه که با اعداد رندوم بین صفر و یک پر شده:np.random.rand(4)خروجی به این صورته:array([0.5488135 , 0.71518937, 0.60276338, 0.54488318])متد بالا رو اگر با ۲ تا ورودی فراخوانی کنیم، حاصل یک ماتریس (آرایه دو بعدی) هست که با اعداد رندوم پر شده:np.random.rand(2, 3)که خروجیش می‌شه این:array([[0.4236548 , 0.64589411, 0.43758721],
  [0.891773  , 0.96366276, 0.38344152]])برای تولید یه عدد رندوم صحیح در یک بازه‌ی دلخواه، از تابع randint شه استفاده کرد:np.random.randint(-4, 4)حاصل این فراخوانی یه عدد رندوم در بازه‌ی منفی چهار تا چهار می‌شه، شامل خود اعداد ابتدا و انتهای بازه.برای انتخاب یک عدد رندوم از یک لیست می‌شه از متد زیر استفاده کرد:np.random.choice([1, 10, 100, 1000, 10000])اجرای کد بالا به ما یک عدد رندوم از بین اعداد لیست ورودی برمی‌گردونه. توجه کنید که ورودی باید یک لیست یا توپل(تاپل) باشه.ادامه خواهد داشت... .</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Tue, 02 Apr 2019 01:18:24 +0430</pubDate>
            </item>
                    <item>
                <title>سالی که نکو بود... .</title>
                <link>https://virgool.io/@rezakeshavarz/%D8%B3%D8%A7%D9%84%DB%8C-%DA%A9%D9%87-%D9%86%DA%A9%D9%88-%D8%A8%D9%88%D8%AF-ebvgyadh43nh</link>
                <description>۹۷ سال پرباری بود و ازش به شدت راضی‌ام. اونچه که این(اون) سال رو برای من دوست داشتنی می‌کنه، نه فقط دستاوردها و فتوحاتش، که بیشتر از اون افت و خیزهاییه که تجربه کردم. هرچند که ۹۸ با کلی حادثه و مرگ یک عزیز شروع شد اما به ۹۸ هم خوشبینم و یقینن می‌شه روی خبرهای خوش قاصدک امیدوار بود. بچرخ تا بچرخیم.</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Thu, 28 Mar 2019 02:18:16 +0430</pubDate>
            </item>
                    <item>
                <title>پهلوان اکبر می میرد</title>
                <link>https://virgool.io/@rezakeshavarz/%D9%BE%D9%87%D9%84%D9%88%D8%A7%D9%86-%D8%A7%DA%A9%D8%A8%D8%B1-%D9%85%DB%8C-%D9%85%DB%8C%D8%B1%D8%AF-z9wudzbcno2n</link>
                <description>توی بلاگم از نمایشنامه پهلوان اکبر می میرد بهرام بیضایی نوشتم. هر بار که می‌خواستم بنویسم &quot;پهلوان اکبر می‌میرد&quot;،‌بی اراده می نوشتم &quot;پهلوان اکبر نمی میرد&quot; و حس جالبی بهم دست داد در این حین. این نمی دونم چندمین نمایشنامه از بیضایی بود که خوندم و لذت بردم و حس خوبی بهم دست داد. و حالا با این جدال بین می میرد و نمی میرد هم بیشتر توی فکر این نمایشنامه فرو رفتم. http://rezakeshavarz.ir/%d9%be%d9%87%d9%84%d9%88%d8%a7%d9%86-%d8%a7%da%a9%d8%a8%d8%b1-%d9%85%db%8c%e2%80%8c%d9%85%db%8c%d8%b1%d8%af-%d8%a8%d9%87%d8%b1%d8%a7%d9%85-%d8%a8%db%8c%d8%b6%d8%a7%db%8c%db%8c/ </description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Sat, 19 Jan 2019 23:19:36 +0330</pubDate>
            </item>
                    <item>
                <title>کوتاه‌ترین روز سال</title>
                <link>https://virgool.io/@rezakeshavarz/%DA%A9%D9%88%D8%AA%D8%A7%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B1%D9%88%D8%B2-%D8%B3%D8%A7%D9%84-twyvljjpm8j9</link>
                <description>یکی می گفت یلدا رسم ایرانی نیست و در قرن اول تا سوم میلادی سر و کله‌ش در جهان غرب پیدا شده. داشتم به این فکر می کردم که مگه بعد از دو هزاره تکرار این رسم، نمی‌تونیم بگیم ما هم ازش تاریخ و خاطره داریم؟ نمی تونیم از همین بلندی شب لذت ببریم و بگیم و بخندیم؟ به خودم اومدم دیدم روز تموم شد. حقیقت امر اینه که بلند‌ترین شب سال بعد از کوتاه ترین روز سال میاد و این روز رو هم باید مغتنم شمرد. این روز نماینده‌ی تنگ وقتی‌های ماست. دل آدم تنگ می‌شه واسه این روز. عجیب حس جالبیه طی کردن کوتاه‌ترین روز سال. حالا بریم برای بلند‌ترین شبش.</description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Fri, 21 Dec 2018 18:16:04 +0330</pubDate>
            </item>
                    <item>
                <title>بنویس</title>
                <link>https://virgool.io/@rezakeshavarz/%D8%A8%D9%86%D9%88%DB%8C%D8%B3-nlxbhumujjt5</link>
                <description>اینجا شاید جای خوبی باشه برای نوشتن. از چه؟ از هرچیزی که شد. از خود نوشتن حتی. از کتاب و فیلم و موسیقی. از کامپیوترم و لینوکسی که دوستش دارم و پایتونی که ازش می‌ترم. تا چی پیش بیاد. ببینیم و تعریف کنیم. </description>
                <category>رضا کشاورز</category>
                <author>رضا کشاورز</author>
                <pubDate>Thu, 13 Dec 2018 13:19:43 +0330</pubDate>
            </item>
            </channel>
</rss>