<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های حمیدرضا فیروزه</title>
        <link>https://virgool.io/feed/@hamidreza.firooze</link>
        <description>مدیر فروش و توسعه بازار ملک رادار</description>
        <language>fa</language>
        <pubDate>2026-06-07 20:27:16</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/248480/avatar/idCnRV.jpg?height=120&amp;width=120</url>
            <title>حمیدرضا فیروزه</title>
            <link>https://virgool.io/@hamidreza.firooze</link>
        </image>

                    <item>
                <title>شاید من هم یک فینیس کیج باشم</title>
                <link>https://virgool.io/@hamidreza.firooze/%D8%B4%D8%A7%DB%8C%D8%AF-%D9%85%D9%86-%D9%87%D9%85-%DB%8C%DA%A9-%D9%81%DB%8C%D9%86%DB%8C%D8%B3-%DA%A9%DB%8C%D8%AC-%D8%A8%D8%A7%D8%B4%D9%85-eyyhwug5uv2x</link>
                <description>سال 1848 تو ظهر گرم یه روز تابستانی یه سرکاگر ریل گذاری خطوط راه آهن به اسم فینیس کیج در حالی که وظیفه داشت فرایند انفجار سخره های مسیر راه آهن رو کنترل کنه دچار یه اشتباه شد. فرایند منفجر کردن یه سنگ اینطور بود که اول یه سوراخ عمیق به قطر حدود ۴ سانت تو سنگ ایجاد می‌کردند و بعدش تو سوراخ باروت می‌ریختند و فیتیله رو میزاشتند و بعدش کمی شن می‌ریختند و با یه میله ای حدودا یه متری تمام مواد رو می‌کوبیند.  تو اون روز نحص فینیس کیج یادش می‌ره چک کنه شن تو سوراخ ریخته شده و با میله باروت رو می‌کوبه و یه انفجار اتفاق می‌افته و میله یه متری از زیر چونش وارد میشه و از بالای سرش خارج میشه. دوستانش که برای کمک میان اول میله رو چند متر اونورتر از انفجار می‌بینند که بافت بهش چسبیده بود و بعدا مشخص میشه بخش‌هایی از چشم چپ وبخش‌هایی از مغز فینیس نگون بخت بوده. با دیدن این صحنه دوستانش مطمئن میشند که باید برن و جسد اون رو از بین گرد و خاک‌ها پیدا کنند. بعد از خوابیدن گرد و خاک در کمل تعجب می بینند که فینیس کیج بلند شده و با تعجب داره فکر می کنه اینجا چه خبره. خلاصه از جا بلند میشه و با پای خودش سوار یه گاری میشه و تا یه هتل میره در حالی که در تمام مسیر به هوش بوده. در چند ماه بعدی و چندین مرحله درمان و تو کما رفتن و تشنج بالاخره حالش بهتر میشه و با اینکه چشم چپش رو کامل از دست میده به زندگی عادی برمی‌گرده. ولی یه مشکل بزرگ پیش میاد. فینیس کیج دیگه اون فینیس کیج قبلی نبوده. قبلا همه اون رو به عنوان یه ادم صبور، باهوش و مسؤلیت پذیر می‌شناختند ولی الان تبدیل شده به یه ادم عصبی، فحاش و کسی که اصلا نمی‌تونه تصمیم‌های درستی بگیره. عکس فینیس کیج در کنار میله‌ای که از سرش عبور کرد.با اینکه ممکنه شُک حاصل از این حادثه رو دلیل تغییر شخصیت فینیس بدونیم ولی آنتونیو داماسیو عصب شناس معروف آمریکایی پرتغالی سال‌های بعد به بررسی این کیس پرداخت و نتایج کارش رو تو کتاب خطای دکارت منتشر کرد. تو این کتاب داماسیو به نظریه دکارت در مورد جدایی جسم و روح انسان حمله می‌کنه و با کیس‌هایی مثل کیج و خیلی کیس‌های دیگه ای که تو کتابش معرفی می‌کنه نشون می‌ده چیزی که ما و شخصیت مارو می سازه نه تو روح ما بلکه دقیقا در جسم ما و به طور مشخص در مغز ما است.  هر تغییر و یا آسیبی در مغز ما می تونه کارکرد‌های شناختی ما رو دچار اختلال کنه که از نگاه افراد جامعه نکوهیده باشه و حتی به ما فشار وارد کنند که چرا این اخلاق خاصتو رفع نمی‌کنی. داماسیو می‌گه این نوع اختلالات اصلا به این راحتی قابل اصلاح نیست و دلیلش اینه که اصلا اون بخش از مغز که مسئول اون کارکرد شناختیه آسیب دیده.این قضیه ممکنه در مورد خودمون و یا اطرافیان هم صادق باشه. مثلا دیدیم افرادی حواس پرت هستند یا تو یادگیری ریاضیات ضعیف هستند(تو این پست در مورد سندروم دیسکلکیولا که یه نوع اختلال در یادگیری ریاضیات هست صحبت کردم) و اگر به دوران کودکی این افراد برگردیم ببنیم جایی سرشون دچار ضربه یا اسیب شده مثل یه تصادف کوچیک یا زمین خودرن  یا شکستن سر موقع بازی. آنتونیو داماسیو چندین کیس با مشکلات شناختی رو بررسی می‌کنه و بعدا با تصویر برداری MRI نشون میده که بخش هایی از مغزشون آسیب دیده و تازه بعد از اعلام این آسیب به پدر و مادر اون فرد اونها روزی که این آسیب اتفاق افتاد رو یادشون میاد درصورتی که اصلا به نظرشون موضوع مهمی نبود.خلاصه میخوام بگم همه ما ممکنه یه فینیس کیج باشیم که چیزی که تو خودمون اذیتمون می‌کنه و دیگران به خاطرش سرزنشمون می کنند در واقع یه اسیب مغزیه و فقط با اراده کردن  نمی تونیم اون کاستی رو برطرف کنیم.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Wed, 24 Jan 2024 15:59:48 +0330</pubDate>
            </item>
                    <item>
                <title>Dyscalculia</title>
                <link>https://virgool.io/@hamidreza.firooze/dyscalculia-eh2xfe2ufxia</link>
                <description>بر اساس ویکی پدیا Dyscalculia یا اختلال ریاضی ناتوانی ایه که منجر به دشواری یادگیری ریاضیات و درک مفاهیم مرتبط می‌شه. بطور مثال اِشکال در درک اعداد، درک محاسبات ریاضی و درک مفاهیم ریاضیات، مسیریابی و غیره. مشکل با اعداد در همه ما وجود داره ولی برای اینکه فردی که این اختلال رو داشته باشه حد و حدودی وجود داره. در اطرافیانمون دیدیم یا شنیدیم که بچه ای با ریاضیات مشکل داره. ممکنه اون بچه دچار این اختلال باشه. تو بزرگ سالان هم وجود این اختلال امکان پذیره. این اختلال می‌تونه باعث اضطراب، سردرگمی، عدم اعتماد به نفس و غیره در افراد بشه.نکته قابل توجه اینه که ۵ تا ۷ درصد بچه ها دچار این اختلالند و علاوه بر ارثی بودن می‌تونه حالت اکتسابی هم داشته باشه. یعنی وقتی بزرگ میشید ممکنه به اختلال ریاضی دچار بشید.یک نکته مهم دیگه فقط افراد مبتلا به اختلال ریاضی با اعداد مشکل ندارند. تو یه گزارش تحقیقی اومده که ۵۰ درصد بزرگسالان در انگلیس در محاسبات با اعداد مشکل دارند. حالا تو این حرف‌ها درس‌هایی است برای تیم محصول:اعداد می تونند تجربه کاربر رو در استفاده از محصول دچار مشکل کنند به خصوص اگر بخشی از کاربران ما جزوه اون ۵۰ درصد باشند. جدول پایین مجموعه‌ای بایدها و نبایدهایی که در طراحی محصول با توجه به دیسکلکولیا  باید در نظر گرفت رو نشون میده. استفاده از این نکات می‌تونه مارو به سمت طراحی محصول مناسب‌تر و درنتیجه ایجاد تجربه کاربری بهتری هدایت کنه.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Tue, 23 Jan 2024 14:00:51 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی بازار خودروهای خارجی قبل از شروع واردات</title>
                <link>https://virgool.io/KhodroRadar/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%D8%AE%D9%88%D8%AF%D8%B1%D9%88%D9%87%D8%A7%DB%8C-%D8%AE%D8%A7%D8%B1%D8%AC%DB%8C-%D9%82%D8%A8%D9%84-%D8%A7%D8%B2-%D8%B4%D8%B1%D9%88%D8%B9-%D9%88%D8%A7%D8%B1%D8%AF%D8%A7%D8%AA-pb1ljdsuefis</link>
                <description>بعد از سالها ممنوعیت واردات خودرو خارجی، بالاخره این ممنوعیت برداشته شد. با این حال ورود خودروهای خارجی به بازار به صورت قطره چکانی اتفاق افتاده و فعلا تاثیر آن بر قیمت‌ها بر اثر بار روانی این اتفاق بوده و نه تامین تقاضای موجود.به همین دلیل ما در خودرو رادار تصمیم گرفتیم نگاهی به بازار خودروهای خارجی قبل از وارادات کرده و ببنیم که در حال حاضر خودرهای قدیمی‌ای که قبل از این ممنوعیت در بازار بودند در چه وضعیت و قیمتی هستند. شاید ماه های بعد از ورود کافی خودروهای خارجی به بازار و مقایسه آن با این گزارش درک بهتری از نحوه اثر این تصمیم بر بازر داشته باشیم.این گزارش با بررسی بیش از سی هزار آگهی خودروی خارجی ثبت شده در سایت‌های ثبت آگهی آنلاین در دوماه گذشته توسط خودرو رادار تهیه شده است.بیشترین برند موجود دربازار متعلق به خودروساز کره ای هیونداست. بیش از ۲۵ درصد خودروهای خارجی آگهی شده مربوط به این برند است که میانگین قیمت یک میلیارد و نهصد و پنجاه میلیون تومان در بازار عرضه میشوند.بعد از این برند، خوروسازی کیا قرار دارد که با میانگین قیمت یک میلیارد و نهصد و شصت میلیون، ۱۴ درصد خودرهای خارجی بازار را به خود اختصاص داده اند.برندهای تویوتا، بی ام و، رنو و بنز هم به ترتیب ۱۲، ۹، ۶ و ۴.۵ درصد بازار را به خود اختصاص داده اند. با توجه به قدمت برندهای بنز و بی ام و و حضور مدل‌های بسیار قدیمی این برندها در بازار میانگین قیمتی آین دو برند کاهش یافته است.برند لکسوس هم با چیزی نزدیک ۳ درصد حجم آگهی ها و میانگین قیمتی ۵ میلیارد تومن بیشترین میانگین قیمتی را در بازار دارد. باقی برند ها ۱۶ درصد باقی مانده را پوشش می‌دهند.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Sun, 10 Dec 2023 15:55:11 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی بازار ون‌های ایران برای تبدیل به کمپر و زندگی کوچ‌نشینی</title>
                <link>https://virgool.io/KhodroRadar/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%D9%88%D9%86-%D9%87%D8%A7%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%A8%D9%87-%DA%A9%D9%85%D9%BE%D8%B1-%D9%88-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-%DA%A9%D9%88%DA%86-%D9%86%D8%B4%DB%8C%D9%86%DB%8C-vnjg87mxu2iu</link>
                <description>زندگی روزمره ما در این دوران به رفتن به محل کار، محدود شدن در خانه و یا گشت و گذاری کوچک در داخل شهر در روزهای تعطیل خلاصه شده. شاید سالی یک یا دوباره هم به مسافرت بریم. ولی بعضی از افراد از همه وابستگی های دنیار خود را رهانیده‌اند و زندگی در سقر رو به عنوان ایده‌آلی برای لذت بردن از عمر خود انتخاب کرده اند. یکی از این روشهای زندگی در سفر، استفاده از کمپر است. افرادی هستند که با خرید ون و تجهیز آن به وسایل و نیازمندی های روزمره، کمپر دوست داشتنی خود را به خانه جدیدی برای خود تبدیل می‌کنند. خانه ای متحرک که آنها را از پابند شدن به یک نقطه مشخص رهانیده. با این حال باید بدانید که حتی اگر توانایی زندگی کوچ نشینی داشته باشید، انتخاب این گزینه هزینه های خودش را دارد. اولین هزینه و بزرگترین تهیه یک ون قبراق و روبراه است تا همراه شما در دشت و بیابان و طبیعت بکر باشد. به همین دلیل ما در خودرو رادار به بررسی بازار ون‌های داخل ایران کردیم تا ببینیم برای شروع چنین سفری چقدر باید هزینه کنید. جدول زیر لیست ون‌های آگهی شده در دوماه اخیر را نشان می‌دهد.بیشترین تعداد ون‌های آگهی شده مربوط به ون ایران خودرو، دلیکا و نارون است. این ون‌های ایرانی بیشتر مصرف تاکسی را داشته و اصولا انتخاب تاکسی به عنوان یک ون شخصی مسافرتی دردسرهای خود را برای گرفتن مجوز دارد. ولی از نظر قیمت نسبت به ون‌های خارجی قابل قبول ترند. نکته مهمی که باید در مورد قیمت ون‌ها در نظر داشت این است که با اینکه ون سایپا کمترین قیمت را دارد ولی این ون در واقع یک خودروی کاروان است و کارایی پایینی برای کمپر شدن را دارد. یکی از عوامل مهم در قابلیت کمپر شدن یک ون ارتفاع سقف و طول ون است که ون‌های هیوندایی را به بهترین گزینه برای این انتخاب می کنند. ولی دو مشکل بزرگ دارند اول از همه قیمت نجومی آنها و دوم کارکر بالای ون های موجود که به خاطر شرایط خاص وارادت قطعات در صورت به مشکل خودرن کمپر شما، یافتن قطعات یدکی برای شما دردسر بزرگی خواهد بود. ون اینرودز یک ون باری است و مانند ون‌های تاکسی شرایط سختی برای گرفتن مجوز خواهند داشت.در کل اعداد بالا نشان می‌دهد انتخاب زندگی کوچ نشینی در کمپر هزینه های خود را دارد ولی بازار فعلی ون‌های ایران این امکان را خواهد داد تا با خرید و تجهیز یک ون و تبدیل آن به یک کمپر، رسیدن به این نوع زندگی خیلی دور از دسترس نباشد.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Sat, 25 Nov 2023 14:48:52 +0330</pubDate>
            </item>
                    <item>
                <title>کاربرد های یادگیری ماشین در بازاریابی: محاسبه شانس بازگشت مشتری-بخش دوم</title>
                <link>https://virgool.io/@hamidreza.firooze/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D9%87%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D8%AF%D8%B1-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1%DB%8C%D8%A7%D8%A8%DB%8C-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D8%B4%D8%A7%D9%86%D8%B3-%D8%A8%D8%A7%D8%B2%DA%AF%D8%B4%D8%AA-%D9%85%D8%B4%D8%AA%D8%B1%DB%8C-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-gijuji4jrkyj</link>
                <description>در بخش اول ما در مورد سه فاز اول مهندسی یادگیری ماشین در مورد مساله محاسبه نرخ بازگشت مشتری صحبت کردیم که از اینجا می تونید مطالعش کنید. حالا ادامه فازها رو میریم.4- انتخاب فیچرهاحال در مورد فاز چهارم صحبت می کنیم که انتخاب فیچر هاست. از این بعد از پایتون استفاده می کنیم. اول از همه کتابخونه های لازم و دیتای مورد نظر رو ایمپورت می کنیم.import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inlineحتلحالا دیتای مورد نظر رو ایمپورت می کنیم و یه نگاهی هم بهش میندازیم:telecom_data=pd.read_csv(&amp;quotTelco-Customer.csv&amp;quot)
telecom_data.head()خوب شکل بالا نشون میده که ما 21 ستون داریم که بهتر ببینیم لیستشون چیه و شکل داده های هر کدوم به چه صورته.telecom_data.dtypesخوب خروجی این کد به صورت شکل زیره و نشون میده که کلی از داده های ما به صورت داده های غیر عددی هستند و ما باید داده ها رو ترنسفرم کنیم تا بتونیم برای الگوریتم های طبقه بندی استفادش کنیم. البته باید در نظر داشته باشیم بعضی الگوریتم ها می تونند داده های غیر عددی هم قبول کنند ولی خوب ما ترنسفرم رو انجام میدیم تا مطمئن بشیم از همه الگوریتم ها می تونیم استفاده کنیم. ولی قبل از اینکار ببینیم داده های گمشده داریم یا نه. telecom_data.isnull().sum()خوب همونطور که تو تصویر بالا می بینیم ما داده گمشده نداریم و پس اینجا مشکلی نداریم.خوب قبل از ترنسفرم داده ها باید ببنیم کدوم ستون های احتمالا تاثیری رو کار ما ندارند. بر اساس ماهیت داده ها customerID قابل حذفه من این ستون رو حذف می کنم.telecom_data=telecom_data.drop(&amp;quotcustomerID&amp;quot, axis=1)خوب حالا زمان ترنسفرم داده ها رسیده. ما برای ترنسفرم داده ها دو تا راه وجود داره. استفاده از:1- OridnalEncoder2-OneHotEncoderما زمانی از OrdinalEncoder استفاده می کنیم که داده های داخل یک بردار ویژگی ترتیبی باشند. مثل این حالت که داده ها شامل &quot;خیلی خوب&quot;، &quot;خوب&quot;، &quot;متوسط&quot;، &quot;بد&quot;، &quot;خیلی بد&quot; باشند یا مثلا &quot;بزرگ&quot; و &quot;کوچک&quot; باشند. برای این داده ها از OrdinalEncoder استفاده می کنیم و به کمکش ما میتونیم به هر مورد یک کد بدیم مثل بزرگ برابر با 1 و کوچک برابر با یک.وقتی داده های ما ترتیبی نیستند مثل &quot;سبز&quot;، &quot;قرمز&quot;، &quot;سفید&quot;. اون موقع از OneHotEncoder استفاده می کنیم. در این حالت به ازای هر بردار ویژگی ممکنه چند بردار بوجود بیاد. مثلا شکل زیر رو درنظر بگیرید.تو این حالات بردار ویژگی Color به سه تا بردارد تبدیل شد که مثلا رنگ سبز کدش میشه [1،0،0]. در واقع هدف از این تبدیل اینه که الگوریتم اینطور فکر نکنه که رنگ ها نسبت به هم مقدم هستند و حالت ترتیبی دارند. ولی مشکل این روش اینه که اندازه ویژگی ها زیاد  میشه و بعدا تحلیل خروجی مدل رو سخت می کنه.حالا ما باید داده هامون رو بررسی کنیم و ببینیم کدوم ترتیبی هستند و کدوم نیستند تا بتونیم از ترنسفرمر درست استفاده کنیم. اینجا ما برای راحتی کار همه رو اردینال در نظر می گیریم و از OrdinalEncoder استفاده می کنیم.اول باید کار ایمپورت رو انجام بدیم.from sklearn.preprocessing import OneHotEncoder, OrdinalEncoderحالا داده هامون رو تبدیل می کنیم.enc=OrdinalEncoder()
enc.fit(telecom_data)
telecom_data_transformed=pd.DataFrame(enc.transform(telecom_data))
telecom_data_transformed.columns=telecom_data.columns
telecom_data_transformed.head()خروجی این داده ها به شکل زیره که حال دیگه هیچکدوم از داده هامون غیر عددی نیستند.مرحله بعد بررسی ماتریس همبستگی برای حذف داده های همبسته است. در مورد اینکه این موضوع به چه معنی هست و چطوری تو پایتون باید ازش استفاده کنیم تو مطلب زیر نوشتم. لطفا اون رو مطالعه کنید تا در موردش بیشتر بدونید. https://virgool.io/MelkRadar/%D9%BE%DB%8C%D8%B4-%D8%A8%DB%8C%D9%86%DB%8C-%D9%82%DB%8C%D9%85%D8%AA-%D9%85%D9%84%DA%A9-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-oyed72v4vbjs ما اینجا ماتریس همبستگی رو استفاده نمی کنیم و تمام فیچر ها رو نگه میداریم.5- مدلسازیخوب ما فاز انتخاب فیچرها رو گذروندیم و حالا می ریم مدلمون رو انتخاب کنیم. برای انتخاب مدل از شکل زیر استفاده می کنیم که می تونید تو مستندات مرتبط با Scikit Learn از اینجا به اون دسترسی داشته باشید.شکلخوب بر اساس شکل بالا ما باید مدل SVC رو انتخاب کنیم و اگر جواب خوبی نگرفتیم از KNeighbor Classifier و اگر بازم نتیجه نگرفتیم از Ensemble Classifier استفاده کنیم. خوب از SVC شروع کنیم.اول کتابخونه های لازم رو ایمپورت می کنیم.from sklearn.model_selection import train_test_split
from sklearn import svmخوب بعد از این ما داده هامون رو آماده برای ورود به مدل می کنیم. اول هسته اعداد تصادفی رو ثابت کنید تا شما هم نتیجه مشابه من داشته باشید و بهتر بتونیم با هم بررسی رو انجام بدیم. بعد X رو تعریف می کنیم که شامل تمام داده ها به جز ستون تارگت ما که همون ستون &quot;Churn&quot;میشه. بعد y رو تعریف می کنیم که شامل ستون تارگت ما میشه. حالا داده ها رو به دودسته test و train تقسیم می کنیم و سایز داده های تستمون 20 درصد کل داده هاست.حالا دیگه همه چیز آماده مدل سازی هستش و مدل SVC رو آموزش میدیم. و در پایان هم یه ارزیابی از مدل ساخته شده بر روی داده های تستمون داریم. خروجی این مورد برابر 0.73 هستش که نشون دهنده دقت(َaccuracy) هستش که تو بخش اول این مقاله در موردش صحبت کردیم. np.random.seed(64)
X=telecom_data_transformed.drop(&amp;quotChurn&amp;quot, axis=1)
y=telecom_data_transformed[&amp;quotChurn&amp;quot]
X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.2)
clf=svm.SVC()
clf.fit(X_train, y_train)
clf.score(X_test, y_test)
&gt;&gt;&gt;&gt;0.7331440738112136خوب حال باید بررسی کنیم که عدد 0.75 عدد قابل قبولی هست یانه. به نظر من بهتره از یه روشن Ensemle هم استفاده کنیم. من الگوریتم Random Forest رو انتخاب می کنم.from sklearn.ensemble import RandomForestClassifier
np.random.seed(64)
clf = RandomForestClassifier()
clf.fit(X_train, y_train)
clf.score(X_test, y_test)
&gt;&gt;&gt;&gt;&gt;0.7806955287437899خوب عملکرد الگوریتم بهتر شده و به 78 رصد ارتقا پیدا کرد.6- آزمایشحالا که به مدل نهاییمون رسیدم می تونیم این مدل رو برای داده های جدید تست کنیم و بر همین اساس بفهمیم که کدم مشتری قرار از سیستم خارج بشه یا نه مثلا برای یکی از مشتری های داده ها فعلی از این موضوع استفاده می کنیم.clf.predict(X.iloc[[20]])
&gt;&gt;&gt;&gt;array([1.])بر اساس کد بالا ما از مدل خواستیم که بازگشت مشتری در اندیس 20 رو پیش بینی کنه و این مدل پیش بینی کرده که این مشتری برمیگرده و دوباره خرید می کنه. پس به این ترتیب ما می تونیم بازگشت هر مشتری رو پیش بینی کنیم و اگر مدل به ما گفت که این مشتری برنمی گرده ما برای اون فرایند های پروموشنی ویژه تعیین کنیم تا بتونیم اون رو برگردونیم.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Fri, 09 Apr 2021 13:38:03 +0430</pubDate>
            </item>
                    <item>
                <title>مهمترین الگوریتم های کاربردی یادگیری ماشین چیست؟فصل چهارم</title>
                <link>https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA%D9%81%D8%B5%D9%84-%DA%86%D9%87%D8%A7%D8%B1%D9%85-xatvzk4gm0iv</link>
                <description>خلاصه ای از کتاب صد صفحه ای یادگیری ماشین، اثر آندری بورکوففصل چهارم: آناتومی یک الگوریتم یادگیریمن سعی دارم تو یک سری از مطالب پشت سر هم خلاصه ای از کتاب صدصفحه ای یادگیری ماشین نوشته آندری بورکوف رو اینجا بنوسیم. برای اینکه فصل قبل رو بخونید می تونید از لینک زیر استفاده کنید. https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-i3hoyokk0eaw تو این فصل در مورد ویژگی های یک الگوریتم یادگیری ماشین  قبل از انتخاب برای حل مسال خودمون باید درنظر بگیریمشون، صحبت می کنیم. 4-1 بلوک های سازنده یک الگوریتم یادگیری ماشیناگه فصل های قبل رو مطالعه کرده باشید، احتمالا متوجه شدید که هر الگوریتم یادگیری ماشین دارای سه بخشه:1- یک تابع هزینه2- یک معیار بهینه سازی بر اساس تابع هزینه3- یک روتین بهینه سازی که هدفش ساختن بهترین مدل برای داده های آموزشی بر اساس معیار بهینه سازیه.یکی از پرکاربردترین الگوریتم های بهینه سازی روش گرادیان دیسنت و یا گرادیان دیسنت تصادفیه. گرادیان دیسنت از یک نقطه تصادفی شروع میکنه و  معمولا منجر به رسیدن به جواب بهینه محلی میشه. برای توابع هزینه ای که شکل محدب دارند مثل توابع هزینه الگوریتم های SVM، رگرسیون خطی و لجستیک، یک نقطه بهینه کلی وجود داره که مطمئنیم که گرادیان دیسنت اون رو پیدا خواهد کرد. برای الگوریتمی مثل شبکه عصبی این موضوع برقرار نیست ولی در اکثر مواقع رسیدن به یه جواب بهینه محلی هم می تونه کافی باشه.4-2  گرادیان دیسنتبرای اینکه نحوه کار گرادینت دیسنت رو یادبگیریم یه مثال رو برای یک رگرسیون خطی استفاده می کنیم. هدف این مساله پیدا کردن یک رابطه خطی بین میزان سرمایه گذاری در تبلیغات و میزان فروش یک شرکته. داده های مرتبط با 200 شرکت جمع آوری شده که نمونه اونرو می تونید تو جدول زیر ببینید.شکل زیر یه نمودار پراکندگی برای رابطه بین اندازه فروش و هزینه تبلیغات نشون میده.تابع ما به صورتf(x)=wx+b نوشته میشه که مقدار بهینه w و  b رو نمی دونیم. برای این موضوع ما تابع هزینه رو به صورت زیر تعریف می کنیم.فرمول یکگرادیان دیسنت از تابع هزینه نسبت به مقادیر مجهول مشتق جزیی می گیره که میشه فرمولهای زیر.فورمول دوگرادیانت دیسنت در اپک های (epoch) مختلف عمل می کنه. هر اپک از یک مجموعه از داده های آزمایشی برای به روز رسانی پارامترها استفاده می کنه. در اپک اول مقدار w و b رو برابر با صفر قرار میدیم و مشتقات جزیی رو محاسبه می کنیم. در هر اپک مقدار پارامترها رو براساس یک نرخ یادگیری آلفا به روز می کنیم.فرمول سهدر اپک بعد ما مشتقات جزیی رو براساس فرمول دو دوباره محاسبه می کنیم و مراحل رو تکرار می کینم. این فرایند آنقدر تکرار میشه تا به شرایط همگرایی برسه. داخل کتاب می تونید کدهای پایتون این روش رو ببینید.شکل زیر خط رگرسیونی ایجاد شده رو بر اساس تعداد اپک های مختلف نمایش میده.مشکلاتی که روش گرادیانت دیسنت داره یکی حساسیت بالا به نرخ یادگیری و دیگری سرعت پایین در دیتاست های بزرگه. یکی از راه حل ها، استفاده از Minibatch stochastic gradient descent (minibatch SGD) خواهد بود که سرعت یادگیری رو با استفاده از زیرمجموعه ای از داده ها در هر اپک افزیش میده.  تو اینجا می تونید بیشتر در مورد این روش بخونید.  خود minibatch SGD چندین آپگرید داره. Adagrad با تغییر آلفا بر اساس هیستوری گرادیان سرعت رو بهبود میده. Momentum با جهت دهی گرادیان از نوسان کردن اون حول نقطه بهینه جلوگیری می کنه. در شبکه های عصبی ورژن های RMSprop و Adam خیلی پرکاربرد هستند.نکته مهمی که باید در نظر داشته باشید اینه که گرادیان دیسنت و ورژن های مختلف اونها الگوریتم های یادگیری ماشین نیستند بلکه روشهایی برای حل مساله بهینه سازی هستند.4-3 یک مهندس یادگیری ماشین چطور کار میکنه؟برای استفاده از روشهایی مثل گرادیان دیسنت لازم نیست که این فرمول ها رو خودمون پیاده سازی کنیم. کتابخانه های منبع باز زیادی وجود داره که این روشها رو پیاده سازی کردن. یکی از مهمترین کتابخانه های یادگیری ماشین Scikit-Learn در پایتون هست. لینک های زیر حل دوتا مساله با کمک این روش خواهد بود. https://virgool.io/MelkRadar/%D9%BE%DB%8C%D8%B4-%D8%A8%DB%8C%D9%86%DB%8C-%D9%82%DB%8C%D9%85%D8%AA-%D9%85%D9%84%DA%A9-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-oyed72v4vbjs  https://virgool.io/@hamidreza.firooze/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D9%87%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D8%AF%D8%B1-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1%DB%8C%D8%A7%D8%A8%DB%8C-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D8%B4%D8%A7%D9%86%D8%B3-%D8%A8%D8%A7%D8%B2%DA%AF%D8%B4%D8%AA-%D9%85%D8%B4%D8%AA%D8%B1%DB%8C-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-ioauzqnrqpdv یک مهندس یادگیری ماشین حتما باید با کتابخونه هایی مثل scikit-learn و یا روشهای مشابه آشنایی داشته باشه تا بتونه تو حل مساله ها بهینه عمل کنه. کتاب Hands-on Machine Learning with Scikit-Learn یکی از کتابهای خیلی خوب در این زمینه است که خودم به تازگی شروع به خودندش کردم و به نظرم خیلی جامع کتابخانه های لازم رو بررسی می کنه. اینجا می تونید یه ریویو از کتاب رو بخونید.4-4 خصوصیات مرتبط با یک الگوریتم یادگیری ماشین هر الگوریتم یادگیری ماشین ویژگی های مختص خودش داره که اون رو از بقیه الگوریتم ها متمایز می کنه. یکی از مواردی که احتمالا متوجه شدید اینه که هر الگوریتم هایپر پارامترهای مختص خودش رو داره.بعضی از الگوریتم ها مثل درخت تصیم گیری، ویژگی های رسته ای(categorical features) رو قبول می کنند. مثلا متغیری مثل رنگ می تونه رسته ای باشه. الگوریتم هایی مثل SVM، رگرسیون لجستیک و یا kNN فقط متغیرهای عددی قبول می کنند.بعضی از الگوریتم ها مثل SVM اجازه میدن که برای هر کلاس وزن تعیین کنیم که تاثیر روی نحوه کشیدن مرز تصمیم گیری خواهد داشت. بعضی از الگوریتم های مثل SVM و kNN تنها خروجی که دارند کلاس مرتبط با هر رکورد خواهد بود. اما بعضی الگوریتم ها مثل رگرسیون لجستیک یا درخت تصمیم گیری می تونند یه عدد بین صفر و یک بدند که می تونه به صورت احتمال عضویت در هر کلاس تعریف بشه.بعضی از الگوریتم ها مثل SVM، درخت تصمیم گیری یا رگرسیون لجستیک می تونند از کل داده ها برای ساخت مدل می تونند استفاده کنند. اگه دیتاهای جدید اضافه بشه باید کل مدل رو از ابتدا بسازیم. بعضی دیگر از الگوریتم ها مثل Naïve Bayes، multilayer perceptron، SGDClassifier/SGDRegressor، PassiveAggressiveClassifier/PassiveAggressiveRegressor می تونند در هر تکرار از یک بچ از داده ها برای آموزش استفاده کنند. در نهایت بعضی از الگوریتم ها مثل SVM، درخت تصمیم گیری و kNN می تونند هم برای مساله رگرسیون و هم طبقه بندی استفاده بشند، در صورتی که بعضی دیگه فقط برای یک دسته از مسائل قابل استفاده خواهند بود. تو فصل بعد در باره مسائلی که در یک پروژه یادگیری ماشین با اون روبرو میشیم و راه حل هاش صحبت خواهیم کرد.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Wed, 31 Mar 2021 11:36:14 +0430</pubDate>
            </item>
                    <item>
                <title>مهمترین الگوریتم های کاربردی یادگیری ماشین چیست؟ فصل سوم</title>
                <link>https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-i3hoyokk0eaw</link>
                <description>خلاصه ای از کتاب صد صفحه ای یادگیری ماشین، اثر آندری بورکوف فصل سوم: الگوریتم های اصلیما تو بخش یک و دو کتاب مقدمات رو بررسی کردیم که می تونید از لینک های پایین مطالعه کنید: https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-cxhxyt8lev4n  https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-sqzf92yi1dhc تو این فصل ما 5 تا از پرکاربردترین الگوریتم های یادگیری ماشین رو بررسی می کنیم.3-1 رگرسیون خطیاحتمالا همه ما در مورد رگرسیون خطی تو درسهای آمار خودمون خونده باشیم. هدف اصلی رگرسیون خطی تخمین یک خط برای محاسبه خروجی بر اساس ورودی هاست. هدف ما به دست آوردن این تخمین از فرمول زیره:که تو این فرمول w یک بردار با بعد D و b  هم یک عدد حقیقی است. نماد w,b   برای تابع f نشون میده که این تابع دو پارامتر برای تخمین داره. هدف ما پیدا کردن مقدار بهینه برای w و b به طوری که دقیق ترین پیش بینی رو به ما بده. مدل SVM که تو فصل یک بررسیش کردیم خیلی شبیه این مدل بود و تنها تفاوتش نقش مرز تصمیم گیری در SVM است.3-1-2 راه حلبه منظور به دست آوردن مقدار بهینه برای w و b تابع زیر رو باید مینیمم کنیم.به این تابع حداقل مربعات گفته میشه و هدفش حداقل کردن مربع فاصله واقعی هر نقطه از مقدار پش بینی شده است. تمامی مدل هایی که ما بررسی می کنیم یه همچین تابعی برای حداقل کردن دارند که به اون تابع هزینه یا Cost Function  می گند. حالا چرا ما از تابع مربع فاصله در رگرسیون خطی استفاده می کنیم و نه از قدر مطلق فاصله. در واقع ما می تونیم از هر تابعی استفاده کنیم و این بستگی به نظر ما و ماهیت مساله داره. در مورد رگرسیون خطی یکی از دلایلی که از تابع مربعات فاصله استفاده میشه اینه که تخمین زننده هایی w و b که از این روش استفاده میشند نا اریبند و کارایی بیشتری دارند. برای اینکه تخمینی از w  و  b داشته باشیم باید از تابع هزینه نسبت به این دوتا مشتق بگیریم و برابر صفر قرار بدیم. بعدش از طریق حل دو معادله دومجهول مقدارشون محاسبه میشه و در نهایت امید ریاضیشون رو محاسبه می کنیم که برابر با w و  b خواهند شد.تصمیم برای نوع مدل و نوع تابع هزینه ما رو به مدل های متفاوتی می رسونه و  درواقع به خاطر دلایل زیره که همیشه الگوریتم های جدید تر ابداع میشند:1- الگوریتم جدید بهتر از الگوریتم های موجود مسئله عملی خاصی رو حل می کنه.2- الگوریتم جدید  تضمین های بهتری در مورد کیفیت مدلی که تولید می کنه، داره.دلایلی که مدل های خطی رگرسیون خیلی استفاده میشه سادگی اونها و احتمال کم Overfitting است. مدل های که بیش از اندازه پیچیده هستند ممکنه داده های آموزشی مارو به طور دقیق پیش بینی کنند ولی در داده های تست نتایج خیلی ضعیفی به ما بدند.3-2 رگرسیون لجستیکقبل از شروع صحبت در این مورد باید بدونید که رگرسیون لجستیک یک رگرسیون نیست بلکه یه روش طبقه بندیه یا همون کلاسیفیکیشنه. این اسم گذاری به خاطر شباهت فرومول بندی آماری اون با رگرسیونه.3-2-1 تعریف مسالهدر این مساله هدف ما تخمین y بر اساس ترکیب خطی از xهاست با این تفاوت که y حالت صفر و یک داره. با توجه به اینکه ترکیب خطی wx+b میتونه مقداری بین مثبت بی نهایت تا منفی بی نهایت بگیره، باید تابعی پیدا بشه که بتونه این تبدیل باینری رو انجام بده. این تبدیل هم به این صورته که هر چه خروجی به 1 نزدیکتر باشه این داده جزء کلاس یک خواهد بود و برعکس. بنابراین باید تابعی وجود داشته باشه که بردش بین 0 و  1 باشه.تابع سیگمویید این ویژگی رو داره. با بهینه سازی مقدار w و b در تابع بالا ما می تونیم خروجی تابع رو به عنوان احتمال عضویت یک داده به کلاس یک یا صفر تفسیر کنیم. به طور مثال اگر مقدار تابع بالا بیشتر از 0.5 بود عضو کلاس یک و اگر کمتر بود عضو کلاس صفر خواهد بود.3-2-1 راه حلبرای محاسبه مقدار بهینه برای w و b، ماباید برازندگی مدل را حداکثر کنیم. برازندگی در واقع میزان شباهت خروجی مدل را با مشاهدات ما نشون میده. به همین منظور تابع حداکثر برازندگی رو به صورت زیر در نظر می گیریم.قیافه تابع بالا خیلی ترسناکه ولی درواقع اونقدرها هم ترسناک نیست. همیشه یک ترم از فرمول بالا برابر صفر خواهد بود. پیشنهاد می کنم خودتون این موضوع رو بررسی کنید.به منظور ساده سازی فرایند بهینه سازی از دوطرف log می گیریم و خروجی به صورت زیر خواهد بود.از اونجا که ln یک تابع کاملاً افزایشیه، به حداکثر رسوندن این تابع در واقع حداکثر رساندن عبارت های اون خواهد بود، و راه حل این مسئله جدید بهینه سازی همون مساله اصلیه.بر خلاف رگرسیون خطی ، هیچ راه حل مشخصی برای مسئله بهینه سازی بالا وجود نداره. یک روش بهینه سازی عددی معمول که در چنین مواردی استفاده میشه، روش گرادینت دیسنته(Gradient Descent) که در موردش تو فصل بعدی صحبت خواهیم کرد.3-3 درخت تصمیم گیریدرخت تصمیم گیری یک گرافه که به ما کمک می کنه در مورد یک بردار ورودی از داده ها تصمیم گیری کنیم. در هر شاخه یکی از ویژگی های بردار ویژگی ها بررسی میشه و در صورتی که کمتر از مقدار مشخصی باشه به شاخه سمت چپ و در غیر اینصورت به شاخه سمت راست حرکت می کنیم و این کار آنقدر ادامه پیدا می کنه تا به برگ ها برسیم و تصمیم لازم در مورد اینکه داده مورد نظر در کدام کلاس قرار داره رو بگیریم.3-3-1 تعریف مسالههدف ما ساخت درخت تصمیم گیری ای هستش که بتونه برچسب داده ها رو که 0 یا 1 هست پیش بینی کنه3-3-2 راه حلفرمول بندی های مختلفی برای درخت تصمیم گیری وجود داره که کتاب بر روی الگوریتم ID3 تمرکز داره. مثل رگرسیون لجستیک تابع هزینه رو به صورت حداکثر برازندگی تعریف می کنیم.که در اون fID3 پیش بینی درخت تصمیم گیری ID3 از برچسب داده های ورودی خواهد بود. بر خلاف الگوریتم رگرسیون لجستیک، الگوریتم ID3 از طریق ساخت یک مدل غیر پارامتریک تقریبا بهینه(Approximately Optimum) می کنیم. به این صورت که ما در هر مرحله داده ها را بر اساس فیچر j و حد t تقسیم می کنیم. در هر تقسیم باید تخمین بزنیم که چقدر این تقسیم خوبه. خوب بودن هر تقسیم از طریق معیاری به اسم آنتروپی اندازه گیری میشه. در هر مرحله ما دنبال پیدا کردن تقسیمی هستیم که آنتروپی رو حداقل کنه. برای اینکه درمورد آنتروپی بیشتر بدونید پیشنهاد می کنم به کتاب مراجعه کنید.به خاطر اینکه الگوریتم ID3 در هر مرحله تقسیم داده ها رو به صورت محلی انجام میده(به تقسیم ها بعدی وابسته نیست)، تضمینی وجود ندارد که جواب بهینه رو به ما بده.یکی از الگوریتم هایی که بیشترین کاربرد رو داره، الگوریتم C4.5 است. این الگوریتم مزایایی نسبت به ID3 داره که شامل موارد زیره:هم با فیچر های پیوسته و هم گسسته کار می کنه.مثالهای ناقص رو به قبول می کنه. با استفاده از تکنیکی از پایین به بالا به نام &quot;هرس(Pruning)&quot; مشکل Overfitting رو حل می کنه.هرس کردن به معنی اینه که بعد از اینکه مدل یک بار ایجاد شد، دوباره بر می گردیم و شاخه هایی که حذف کردنشون تاثیر زیادی روی افزایش خطای مدل نمی زاره، با برگ جایگزین می کنیم.3-4 مدل یادگیری Support Vector Machineما تو فصل اول در مورد SVM صحبت کردیم ولی دوتا سوال وجود داره که باید بهش جواب بدیم:1- اگر داده های ما دارای نویز بودن چکار کنیم؟2- اگر با یه صفحه خطی نتونیم داده ها رو از هم جداکنیم و یه صفحه غیر خطی لازم داشتیم چکار باید بکنیم؟شکل زیر شرایطی رو برای حالت های بالا نشون میده.شکل سمت چپ وجود نویز و شکل سمت راست صفحه غیر خطی رو نشون میدههدف ما ساختن مدلی بود که معادله زیر رو ارضا کنه. برای بهینه سازی مساله باید ||w|| رو حداقل کنیم و این یعنی مقدار2^||w|| رو حداقل کنیم. استفاده از مربع این عبارت بعدا امکان بهینه سازی مربعات رو برای ما فراهم می کنه. پس در نهایت باید عبارت زیر بهینه بشه:3-4-1 وجود نویز در داده هازمانی که داده ها به صورت خطی جداپذیر نباشند، از تابع هزینه hinge استفاده می کنیم. در این تابع در صورتی که تخمین ما از سمت قرار گیری یک نقطه نسبت به مرز تصمیم گیری درست باشه، اندازه تابع برابر با صفر خواهد بود و در غیر اینصورت مقدار اون  متناسب با فاصله از مرز تصمیم خواهد بود.هایپر پارامتر C ترید اف بین افزایش اندازه مرز تصمیم و اطمینان از اینکه یک x در جهت درست مرز تصمیم بیفاته است. هر چه مقدار C بیشتر بشه ترم دوم فرمول بالا نادیده گرفته میشه و SVM سعی می کنه کوچکترین حاشیه رو حساب کنه و به طور کلی تخیمن نادرست رو نادیده بگیره. برعکس اگه C رو کاهش بدیم، کلاس بندی اشتباه پر هزینه خواهد بود و SVM سعی می کنه کمترین خطا رو داشته باشه و اندازه حاشیه رو قربانی این مساله کنه. همونطور که قبلا گفتیم حاشیه بیشتر برای تعمیم مدل بهتر بود. بنابراین C رابطه بین قابلیت تعمیم مدل (Generalization) و  طبقه بندی خوب داده های آموزشی (به حداقل رساندن خطر تجربی) تنظیم می کند.3-4-2 مساله غیر خطی بودن ذاتیدر حالتی که داده به صورت ذاتی با یک صفحه جدا نشند، ما می تونیم داده ها رو به یک بعد بالاتر ببریم و اونجا داده ها رو به صورت خطی جدا کنیم. در SVM استفاده از یک تابع برای بردن فضا به یک بعد بالاتر در حین بهینه سازی تابع هزینه رو روش کرنل(kernel trick) می گند. بردن داده ها به یک بعد بالا تر از طریق کرنلشکل بالا نشون دهنده نحوه استفاده از کرنل برای مساله شکل قبل سمت راست است.توابع کرنل متفاوتی وجود دارند ولی یکی از پرکاربردترینشون تابع کرنل RBF است. با تغییر دادن هایپر پارامتر سیگما ، تحلیلگر داده می تونه بین به دست آوردن یک مرز تصمیم صاف یا منحنی در فضای اصلی انتخاب کنه.3-5 الگوریتم K-نزدیک ترین همسایه(K-nearest neighbors)الگوریتم KNN بر خلاف باقی الگوریتم هایی که تا کنون درموردشون بحث کردیم، یک الگوریتم غیرپارامتریکه و از همه داده ها برای ساخت مدل استفاده می کنه و داده های آزمایشی رو در حافظه خودش نگه می داره. با رسیدن هر داده جدید، الگوریتم k همسایه نزدیک این داده را پیدا می کنه و بیشترین برچسب مشاهده شده در این داده ها رو به عنوان برچسب داده جدید به خروجی منتقل می کنه.نزدیک بودن نقطه ها بر اساس فاصله آنها سنجیده میشه مثل فاصله اقلیدسی. یکی دیگه از توابع محبوبی که در این زمینه استفاده میشه تابع شباهت کوسینوس(cosine similarity) است.این تابع شباهت بین دو بردار غیر صفر رو اندازه گیری می کنه. اگه دو بردار در یک جهت باشند،زاویه بین دوبردار صفر خواهد بود، مقدار تابع 1 خواهد بود و اگر دوبردار بر هم عمود باشند مقدار تابع برابر صفر خواهد بود. اگر دوبردار در جهت مخالف هم باشند، اونوقت مقدار تابع برابر -1 خواهد بود. در این حالت اگر بخواهیم از تابع شباهت به جای تابع فاصله استفاده کنیم باید مقدار آن را در -1 ضرب کنیم. چند تا تابع فاصله دیگر تابع Chebychev و Mahalanobis  و Hamming هستند. انتخاب تابع فاصله و  k جز هایپرپارامترهای مساله هستند و توسط تحلیلگر انتخاب میشند.  تا اینجا ما سه فصل از کتاب رو بررسی کردیم.  تو فصل چهارم در مورد آناتومی یه الگوریتم یادگیری صحبت خواهیم کرد که می تونید از لینک زیر مطالعش کنید. https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA%D9%81%D8%B5%D9%84-%DA%86%D9%87%D8%A7%D8%B1%D9%85-xatvzk4gm0iv </description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Tue, 23 Mar 2021 21:21:42 +0430</pubDate>
            </item>
                    <item>
                <title>کاربرد های یادگیری ماشین در بازاریابی: محاسبه شانس بازگشت مشتری-بخش اول</title>
                <link>https://virgool.io/@hamidreza.firooze/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D9%87%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D8%AF%D8%B1-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1%DB%8C%D8%A7%D8%A8%DB%8C-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D8%B4%D8%A7%D9%86%D8%B3-%D8%A8%D8%A7%D8%B2%DA%AF%D8%B4%D8%AA-%D9%85%D8%B4%D8%AA%D8%B1%DB%8C-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-ioauzqnrqpdv</link>
                <description>امروزه عبارت های علم داده(Data Science) هوش مصنوعی(Artificial Intelligence) و یادگیری ماشین(Machine learning) رو تقریبا همه جا میشنویم. احتمالا همه ما هم تا حدودی مفهموم این عبارت ها میدونیم.اینجا من نمی خوام رو مفاهیم این عبارت ها صحبت کنم و بیشتر می خوایم در مورد کاربرد این موارد در بازاریابی صحبت کنم. به نظرم هم بهترین راه یادگیری این مطالب اینه که یه مثال واقعی رو با این روش ها حل کنیم.اما مسائل بازاریابی که از این روشها حل میشند خیلی گسترده و متنوع هستند و مسلما حل مثال برای هر کدوم خودش میشه چند تا کتاب. به همین دلیل تصمیم گرفتم این کاربردها روتو چند سری مقاله بنویسم و هر مقاله تمرکزش روی یکی از کاربردهای ML باشه.مساله اولی رو که برای این مورد اتخاب کردم مساله پیش بینی قیمت ملک بود که تو لینک زیر می تونید مطالعش کنید. https://virgool.io/MelkRadar/%D9%BE%DB%8C%D8%B4-%D8%A8%DB%8C%D9%86%DB%8C-%D9%82%DB%8C%D9%85%D8%AA-%D9%85%D9%84%DA%A9-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-oyed72v4vbjs مساله بعدی، مساله بهینه سازی نرخ بازگشت مشتری(Customer Retention Optimization-CRO) است. البته وقتی در مورد این موضوع جستجو می کنید احتمالا بعضی جاها این موضوع را با عنوان رویگردانی مشتری(Customer Churn) هم معرفی کردند.حالا هدف این مساله حل چه موضوعی هست؟ هدف اینه که ما توی کسب و کارمون متوجه بشیم که چه مشتری ای احتمال داره از ما رویگردان بشه. یا احتمال اینکه مشتری دیگه از ما خرید نکنه چقدره. در واقع وقتی ما قبل از اینکه مشتری تصمیم بگیره دیگه از ما خرید نکنه، این موضوع رو بفهمیم و از اون بهتر اگه دلیلش رو بفهمیم، می تونیم بریم سراغش و از دلش در بیاریم. حالا چطور بفهمیم: از تجربه و رفتار گذشته مشتری به این تشخیص میریسم.حالا که مساله رو فهمیدیم برسیم سراغ نحوه حل این مساله با استفاده از ML. قبل از شروع، باید پایپلاین یه پروژه ML رو باید بدونیم. در مورد جزییات این پایپلاین بعدا حتما یه مقاله دیگه می نویسم. ولی فعلا بیایید رو پروژه خودمون تمرکز کنیم. شکل زیر مسیر پروژه ما رو مشخص می کنه.هدف اصلی هر مهندس ماشین لرنینگ ایجاد یه مدل برای اجرا در سیستم و کمک به بهبود فرایند ها است. یعنی ما یه مدل میسازیم (Data Modeling) تا در سیستم خودمون پیاده سازیش(Deployment) کنیم. ولی برای ساخت مدل ما نیاز به جمع آوری دیتا (Data Collection) داریم. همونطور که تو شکل می بینیم این سه بخش به صورت رفت و برگشت با هم در ارتباط هستند و ممکنه بعد از پیاده سازی مدل به این نتیجه برسیم که مدل ساخته شده دچار مشکله و باید اصلاحش کنیم و یا دیتاهای جدید به سیستم اضافه کنیم که کارمون رو بهتر کنه. فرایندی که در بخش روشن شکل نشون داده شده کل فرایند مدلسازی داده هاست. تو اینجا می خواهیم در مورد تک تک بخش ها برای مساله خودمون پبش بریم.1- تعریف مسالهخوب خوب. بالاخره کار شما به عنوان یک مهندس ML شروع شد. شما وارد یه شرکت اپراتور تلفن همراه شدید. مدیر بازاریابی شما رو تو دفترش می خواد و میگه ما دچار یه نگرانی شدیم. بعضی از مشتری های ما بعد از یه مدت استفاده از سرویس ما، میرند و از سرویس های رقبا مثل همراه اول و ایرانسل استفاده می کنند. حالا ما میخوایم قبل از اینکه مدت اشتراک مشتری هامون تموم بشه، بفهمیم که آیا قراره سرویس ما رو دوباره استفاده کنند یا نه. اگه ما قبل از اتمام اشتراکشون بفهمیم که اونها قراره دیگه از ما نخرند با یه سری کارای تبلیغاتی و پروموشنی نظرشون رو برگردونیم. حالا شما به عنوان مهندس ML شرکت باید اینکار رو برای ما بکنید.پس مساله ما مشخص شد. آیای یک مشتری که در حال حاضر داره از سرویس تلفن همراه شما استفاده می کنه ، دوباره اشتراکشو تمدید کنه و یا از رقبا خرید کنه؟2- داده هاحالا که مساله ما مشخص شد باید داده های مورد نظر آماده کنیم. صادقاته بگم، سخت ترین و اعصاب خورد کن ترین فاز هر پروژه ماشین لرنینگ، جمع آوری داده و آماده سازی اونهاست. شاید 50 درصد زمان پروژه های ماشین لرنینگ روی تعریف مساله و جمع آوری داده می گذره.فرض کنید تو همین پروژه شما از مدیر مارکتینگ می پرسید که چه داده هایی از مشتری ها در دسترس دارید. احتمالا تو بعضی از شرکت ها این جوابو به شما میدن. &quot;از اون بابت خیالت راحت باشه. ما هر داده ای که لازم دارید رو به شما می دیدم&quot;. اما واقعیت اینه؟ درصد زیادی از مواقع اینطور نیست و شاید مجبور باشید از زمان شروع این فاز از مدیر مارکتینگ بخواید که لطفا از این به بعد داده های لازم رو جمع آوری کنید.حالا داده های لازم رو چطور شناسایی کنیم؟ ما باید ببینیم چه ویژگی هایی(features) از مشتری به ما کمک می کنه که به بهترین شکل ممکن رفتار آینده اون رو شناسایی کنیم.این موضوع نیاز به کمی تجربه داره. تو طول زمان ما کم کم یاد میگیریم که هر مساله با توجه به ماهیتش چه برداری از ویژگی ها رو لازم داره. برای مساله خودمون من یه سرچ انجام دادم و تو مقالات مختلف به مجموعه های مختلفی رسیدم. تو شکل زیر ستون فاکتورها بخشیه که تقریبا می تونه در تمام مسایل یکسان باشه. درواقع برای هر مساله شما این فاکتورها رو لازم دارید و برای تعیین هر کدوم از این فاکتورها باید یسری فیچر تعریف کنید که نشون دهنده اون فاکتورها باشه. نمونه های این فیچر ها تو ستون example  اومده.برای مساله فعلی ما داده ها رو از سایت kaggle.com استخراج می کنیم. اگه این سایت رو نمیشناسید پیشنهاد می کنم حتما بررسیش کنید، چون کمک های خوبی تو پروژه های یادگیری ماشین به شما بکنه. داده ها رو می تونید از اینجا دانلود کنید. خوب الان ما فاز یک و دو رو به پایان رسوندیم. بیش تر از این نمی تونم تاکید کنم که زمان بر ترین فازهای هر پروژه یادگیری ماشین فاز یک و دو خواهد بود. پس برای یه مهندس یادگیری ماشین، بزرگترین چالشش، پیاده سازی سیستمیه که بتونه خیلی بهینه به داده ها دسترسی داشته باشه. 3- ارزیابیتو این بخش پارامترهایی که مدل مارو ارزیابی می کنند تعریف می کنیم. در واقع چطور بفهمیم که یک مدل بهتر از مدل دیگه است. این پارامترها بعضی اوقات از پیش تعریف شده اند و بعضی اوقات باید با توجه به مساله خودمون تعریفشون کنیم. با توجه به نوع مساله ای که ماداریم احتمال باید از یکی از مدلهای طبقه بندی استفاده کنیم. پارامترهای زیادی هم برای بررسی عملکرد یه مدل طبقه بندی تعریف شده.چهار پارامتری که ما در موردش صحبت خواهیم کرد شامل دقت(Precision)، یادآوری(Recall)، صحت(Accuracy) و آماره اف (F-Score) خواهد بود.برای محاسبه این پارامترها باید مفاهیمTrue Positive(TP)، False Positive(FP)، True Negative(TN) و False Negative(FN) رو بدونیم. جدول بالا نشون دهنده تعریف این مفاهیمه. مثلا در صورتی که مدل ما یک داده متعلق به کلاس یک رو در کلاس یک پیش بینی کنه اونقت مقدار TP یک واحد افزایش می کنه.بر اساس این موارد چهار پارامتر ارزیابی ما به صورت زیر تعریف میشه.مسلما هر مدلی که پارامتر های بالا در اون اندازه بهتری داشت مدل بهینه تری خواهد بود. تو لینک زیر می تونید در مورد مفاهیم این پارامترها و چند تا پارامتر دیگه که ممکنه برای ارزیابی مدل های طبقه بندی استفاده بشه بیشتر بخونید. https://towardsdatascience.com/the-5-classification-evaluation-metrics-you-must-know-aa97784ff226 از اینجا به بعد کار ما برای بررسی داده ها و احتمالا کمی کد نویسی شروع میشه. تو بخش بعدی باقی مراحل و نحوه مدلسازی تو پایتون رو با هم انجام خواهیم داد.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Tue, 23 Mar 2021 16:14:30 +0430</pubDate>
            </item>
                    <item>
                <title>پیش بینی قیمت ملک به کمک یادگیری ماشین</title>
                <link>https://virgool.io/MelkRadar/%D9%BE%DB%8C%D8%B4-%D8%A8%DB%8C%D9%86%DB%8C-%D9%82%DB%8C%D9%85%D8%AA-%D9%85%D9%84%DA%A9-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-oyed72v4vbjs</link>
                <description>تخمین منصفانه قیمت ملک همیشه یک مساله پر از چالش بوده. خریداران همیشه نگران این هستند که ملک به قیمت بالاتر از قیمت واقعی به آنها فروخته شده و فروشندگان هم می ترسند که ملک آنها ارزان تر از قمیت واقعی، قیمت گذاری شود. شرکت های مختلف برای هر دو سمت خریدار و فروشنده راه حل هایی پیاده کردند. مثلا ملک رادار به منظور تشخیص اینکه یک خریدار واقعا قصد خرید داره و انتظارات اون خریدار با قیمت پیشنهادیش مطالبقت داره از الگوهای مختلفی مثل داده های تاریخی و قیمت های مشابه در اطرف محله مورد نظر استفاده می کنه. شرکت SkyLine AI با استفاده از هوش مصنوعی به دنبال تخمین قیمت واقعی ملک بوده تا از ایت طریق بتونه قیمت منصفانه ای رو به خریداران ارائه بده.حالا مساله اصلی اینه که اگر واقعا بخوایم یه ملک رو درست قیمت گذاری کنیم، عوامل خیلی زیادی رو باید در نظر بگیریم. حالا ما اینجا می خوایم یه نمونه مساله پیش بینی قیمت ملک رو با کمک پایتون حل کنیم.دیتاست مسکن بوستون شامل اطلاعاتی درباره خانه های مختلف در بوستون و  ویژگی های مختلف هر ملک است. قبل از اینکه این دیتاست رو بررسی کنیم، کتابخونه های لازم رو فراخوانی می کنیم.import pandas as pd
import numpy as np
import matpotlib.pyplot as plt
%matplotlib inlineحالا دیتا ست مورد نظر رو یه نگاهی میندازیمfrom sklearn.datasets import load_boston
boston=load_boston()
bostonوقتی کد بالا رو اجرا می کنیم، یه دیکشنری می بینیم که کلید هاش شامل Data که همون دیتاهای ماست، Target که قیمت خونه ها و درواقع همون چیزی هست که ما می خوایم پیش بینی کنیم، feature_names که همون عنوان ستون ها یا بردار ویژگی های ماست، Descr که توضیح در مورد هریک از بردار ویژگی ها و file_name که ادرس ذخیره فایل است.برای اینکه بتونیم این دیتا ها رو بهتر بررسی کنیم، اطلاعات لازم را داخل یک دیتافریم قرار میدیم.boston_df=pd.DataFrame([boston.data, boston.target], columns=[boston.feature_names, &amp;quottarget&amp;quot)
boston_df[&amp;quottarget&amp;quot]
boston_df.head()خروجی کد بالا مورد شکل زیر خواهد بود.فیچر های ما شامل 13 مورده که هر کدوم در مورد ملک های موجود در دیتاست محاسبه شده. مثلا CRIM میزان ارتکاب جرم به ازای هر نفر(Crime per Capita) در محله ای که خونه تو اون قرار داره رو نشون میده. توضیحات بیشتر رو هم می تونید تو داکیومنتیشن sickit-learn بخونید.خوب حالا که داده هامون رو داریم باید دیتا ها رو آماده کنیم. نکته خیلی مهم اینجا اینه که فرایند آماده سازی معمولا بر اساس مدل یادگیری ماشین تعیین میشه. بعضی از مدل های یادگیری می تونند با داده های غیر عددی هم کار کنند و یا اگر داده گمشده ای هم توی دیتا باشه مشکلی ندارند. ولی بعضی ها نمی تونند. با توجه به مساله ما احتمالا یکی از مدل های رگرسیون برای پیش بینی قیمت به کارمون میاد(البته جلوتر می گیم که نحوه انتخاب مدل بر چه اساسی هست) و برای همین باید داده ها همه عددی باشه و داده های گشمده رو هم باید پر کنیم. برای همین به نگاه به داده ها می کنیم.boston_df.dtypesخوشبختانه تمام دیتاهای ما عددی هستند. حالا ببینیم داده گمشده هم داریم.boston_df.isnull().sum()خوب دیگه بهتر از این نمیشه. ما داده گشمده هم نداریم. البته خوب ما از یه دیتاست تر و تمیز داریم استفاده می کنیم. در واقعیت همچین داده های هلویی رو به شما نمی دن. خوب حالا که داده هامون آماده است، بهتره یه نگاه بهتر بندازیم بهشون و چند تا نمودار باهاشون بکشیم ببینیم چیزی دستگیرمون میشه؟ اول از همه ببینیم شکل داده های ستون تارگت یا همون قیمت خونه ها چطوره.fig, ax=plt.subplots(figsize=(10,5))
ax= boston_df[&amp;quottarget&amp;quot].hist(bins=20);
ax.set(title=&amp;quotHouse Price Histogram&amp;quot,
           xlabel=&amp;quotHouse Price in 1000 $&amp;quot,
           ylabel=&amp;quotFreq&amp;quot);همونطوری که تو نمودار میبینیم داده های قیمت خونه تقریبا توزیع نرمال دارند و میانگینشون هم بینن  20 تا 30 هزار دلاره. حالا که داده ها نرماله احتمالا برای استفاده از بعضی از روشهای یادگیری ماشین مشکلی نخواهیم داشت.حالا وراد فاز انتخاب ویژگی های feature selection  میشیم. یکی از سریع ترین راه حل ها برای این بخش استفاده از ماتریس همبستگیه. در صورتی که فیچر هایی داشته باشیم که با هم همبستگی بالایی داشته باشند می تونیم اونها رو از بردار ویژگی ها حذف کنیم. اول از همه ما بردار x شامل تمام ستون های ما به جز ستون target میشه رو انتخاب می کنیم و کتابخونه های لازم رو هم ایمپورت می کنیم. بعد ماتریس همبستگی رو رسم می کنیم.import seaborn as sns
X=boston_df.drop(&amp;quottarget&amp;quot, axis=1)
correlation_matrix = X.corr().round(2)
fig ,ax=plt.subplots(figsize=(12,10))
cmap = sns.diverging_palette(230, 20, as_cmap=True
ax=sns.heatmap(data=correlation_matrix, annot=True,cmap=cmap)بازه همبستگی بین +1 تا -1 هستش و هر چه به مثبت یا منفی 1 نزدیک تر باشه همبستگی بالاتری بین متغیرها وجود داره. همونطور که میبینیم TAX و RAD همبستگی مثبت 0.91 دارند و بنابراین می تونیم یکی از این پارامترهارو حدف کنیم.خوب حالا به مرحله انتخاب مدل رسیدیم. یکی از روش های انتخاب مدل استفاده از شکل زیر خواهد بود.این نقشه رو می تونید تو مستندات scikit-learn پیدا کنید. اولین مرحله پیدا کردن تعداد داده هاست. len(boston_df)که خروجی بالا تعداد 506 داده رو برای ما نشون میده. پس بیشتر از 50 تا داده داریم و میریم مرحله بعد. بعدش ما می خوایم تخمین قیمت بزنیم پس میریم سمت راست. تعداد داده هامون کمتر از 100K هست و بعدش تعداد فیچرها رو بررسی می کنم. اینجا تصمیم با ماست که تعداد فیچرهامون کمه یا نه زیاده. من خودم  به نظر تعداد فیچرهامون کم نیست و با این فرض میرسیم به دوتا مدلRidgeRegression و SVR با کرنل خطی. خوب برای شروع با RidgeRegression شروع می کنیم.from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
np.random.seed(52)
X=boston_df.drop([&amp;quottarget&amp;quot,&amp;quotTAX&amp;quot], axis=1)
y=boston_df[&amp;quottarget&amp;quot]
X_train, X_test, y_train, y_tets=train_test_split(X, y, test_size=0.2)
reg=Ridge()
reg.fit(X_train, y_train)
reg.score(X_test, y_tets)حالا خط به خط بالا رو توضیح میدم. اول از همه ما از کتابخونه scikit-learn مواردی که برای تقسیم بندی داده های به مجموعه های آموزش و تست لازم داریم رو فراخوانی می کنیم. بعدش هسته اعداد تصادفی رو ثابت می کنیم تا من و شما خروجی های یکسانی داشته باشیم. حالا X رو تعریف می کنیم.  همونطور که میبیند ما ستون TAX رو هم حذف کردیم. بردار y یا همون خروجی ها هم شامل ستون target میشه. حالا داده های آموزشی و تست رو می سازیم. اندازه داده های تست ما 20 درصد کل داده ها خواهد بود. تو دو خط بعد مدلمون رو آموزش میدیم. و در نهایت خط آخر به ارزیابی مدل ساخته شده می پردازه و مقدار R^2 برای مدل رگرسیون ما میده. توجه کنید که score با توجه به نوع مدل یادگیری ماشین ما می تونه فرق کنه. مقدار R^2 برای مدل بالا عدد 0.72 خواهد بود. مقدار R^2 همیشه عددی بین 0 تا 1 هستش که هر چی به یک نزدیک تر باشه مدل بهتری خواهیم داشت. خوب به نظر من عدد 0.72 عدد خیلی خوبی نیست. ما می تونیم از طریق نقشه بالا به مرحله بعد بریم و مدل EnsembleRegression رو انتخاب می کنیم شاید نتیجه بهتری گرفتیم.from sklearn.ensemble import RandomForestRegressor
np.random.seed(56)
ensemble_reg=RandomForestRegressor()
ensemble_reg.fit(X_train, y_train)
ensemble_reg.score(X_test, y_tets)خوب مقدار score تو این مدل ما برابر با 0.82 شده که شرایط بهتری رو به ما نشون میده. حالا به نمودار پراکندگی هم بین قیمت های پیش بینی شده و قیمت های واقعی مدل می تونیم بکشیم تا به صورت تصویری هم یه بررسی از عملکرد مدل داشته باشیم.y_preds=ensemble_reg.predict(X_test)
fig, ax=plt.subplots(figsize=(10, 8))
ax.scatter(y_tets, y_preds);
ax.set(title=&amp;quotPrediction vs Real Values&amp;quot,
       xlabel=&amp;quotReal Values&amp;quot,
       ylabel=&amp;quotPredictions&amp;quot);همانطور که می بینیم تخمین قیمت خونه برای خونه های پایین تر از 40 هزار دلار تخمین مناسبی بوده و تو خونه های بالاتر این مدل احتمالا خوب عمل نکنه. در واقع این داده ها دورافتاده یا outlier هستند. ما می تونیم برای بهبود فرایند تو مرحله بعد داده های دورافتاده رو حذف کنیم و دوباره مدلسازی کنیم که این مورد رو به عهده خودتون می زارم.  پیشخوب همینطور که دیدیم پیاده سازی یک روش یادگیری ماشینی خیلی پیچیده نیست و اگر داده ها رو داشته باشیم کار سختی نخواهیم داشت. ولی مساله اصلی در دسترس بودن داده‌هاست. شاید سخت ترین و طاقت فرسا ترین بخش هر پروژه یادگیری ماشین جمع آوری داده ها باشه. برای بحث املاک و داده‌های مرتبط، مجموعه ملک رادار به صورت فصلی داده های مرتبط با بازار مسکن رو منتشر می کنه اطلاعات کامل و جذابی برای بررسی این بازار به ما میده. این گزارش با پایش مداوم و دقیق بازار املاک و کمک گرفتن از  متخصصان این صنعت جمع آوری و تحلیل میشه. برای دیدن این گزارش می تونید از لینک زیر استفاده کنید و با استفاده از این داده‌ها پروژه یادگیری ماشین شخصی خودتون رو تعریف کنید. https://bazarmaskan.melkradar.com/tag/%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%D9%81%D8%B5%D9%84%DB%8C-%D9%85%D9%84%DA%A9-%D8%B1%D8%A7%D8%AF%D8%A7%D8%B1/ </description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Mon, 01 Mar 2021 13:30:29 +0330</pubDate>
            </item>
                    <item>
                <title>مهمترین الگوریتم های کاربردی یادگیری ماشین چیست؟ فصل دوم</title>
                <link>https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-sqzf92yi1dhc</link>
                <description>خلاصه ای از کتاب صد صفحه ای یادگیری ماشین، اثر آندری بورکوففصل دوم: نماد ها و تعاریفتو فصل اول در مورد تعاریف کلی یادگیری ماشین و کاربردهاش صحبت کردیم. اگه اون بخش رو نخوندید پیشنهاد می کنم از لینک پایین مطالعش کنید و بعد این بخش رو شروع کنید. https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-cxhxyt8lev4n تو این بخش بیشتر در مورد نمادگذاری های ریاضی که تو کتاب استفاده شده صحبت میکنیم. ممکنه بعضی از این مطالب خیلی ابتدایی و ساده باشند ولی مروشون بد نیست.  اینجا یه مقدار در مورد جبر خطی و بعدش در باره آمار و احتمال صحبت می کنیم.2-1- علائمساختار دادهیک اسکالر(Scalar) معمولا یه مقدار ثابت رو میگیره. اسکالر ها تو کتاب به صورت ایتالیک و با حروف کوچیک نوشته میشند. مثل x، aیک بردار (Vector) مجموعه مرتب شده ای از اسکالر هاست.تو کتاب بردار های به صورت حروف کوچیک بلد شده نشون داده میشند. مثل x و w. مشخصه(attribute) هر بردار به صورت ایتالیک نشون داده میشه. مثل x(j) یا w(j). که j نشون دهنده بعد jام بردار است. یک ماتریس(Matrix) یه آرایه از اعداده که تو ردیف ها و ستون ها چیده شدند مثل ماتریس زیر:ماتریس با حروف بزرگ بلد نمایش داده میشند مثل W و A.خوب فکر میکنم یکم ابتدایی و حوصله سر بر داره میشه. از اینجا به بعد سعی می کنم خیلی سریع این مطالبو بگم و توضیحات کمتری بدم. اگه فکر کردید نیاز دارید بیشر بدونید تو خود کتاب که لینکشو تو بخش اول گذاشتم هم میتونید مفصل تر بخونید.سیگما و پای بزرگنحوه عملکرد سیگمای بزرگنحوه عملکرد پای بزرگعملیات ریاضی رو بردارهاجمع دو بردار هم اندازهکسر دو بردار هم اندازهضرب دو بردارترانهاده ماتریستوابعتوابع یه ورودی به در یه بازه مشخص به اسم دامنه(domain) میگیره یه خروجی تو یه بازه به اسم برد(codomain) به ما میده. توابع می تونند نقطه بهینه محلی(local optimum) یا نقطه بهینه کلی (global optimum) داشته باشند. مثل شکل زیر:مکس(Max) و ارگ مکس(َArg Max)مکس یه بردار بیشتر مقدار رو تو اون بردار و Arg Max، آرگومان بیشتر مقدار یا در واقع موقعیتی که مقدار بیشینه تو اون بردار قرار داره رو به ما میده. مشتق و گرادیانمشتق یک تابع نشون دهنده نحوه تغییر اون تابع به نسبت متغیری هست که تابع رو نسبت  به اون مشتق گرفتیم(چی گفتم؟؟ خودمم نفهمیدم). گرادیان حالت عمومی مشتق هست که می تونه نسبت به چندین متغیر گرفته شه. گرادیان یک تابع، در واقع یک بردار از مشتقات جزیی است. گرادیان تابع f رو به صورت زیر نمایش نمایش میدن.2-2 متغیر تصادفییک متغیر تصادفی، متغیری است که مقادیرش نتایج عددی یک پدیده تصادفیه. احتمال رخداد یک نتیجه مشخص x(i) از یک پدیده تصادفی X رو با Pr(X=x(i)) نشون میدند. امید ریاضی این پدیده تصادفی رو با E[X] نمایش میدن و بر اساس فرمول زیر محاسبه میشه. امیدریاضی در واقع همون چیزی هستش که ما به اسم متوسط یا میانگین یا امید انتظاری میشناسیم. امید ریاضی یکی از مهمترین آماره های مورد استفاده در آمار هست. آماره مهم دیگه انحراف معیار که به صورت زیر حساب میشه.انحراف معیار نحوه پراندگی داده ها حول امیدریاضی رو نشون میده.بیشتر اوقات ما شکل تابع احتمال رو نمی دونیم ولی میتونیم مثال های از اون رو داشته باشیم در یادگیری ماشین به این مثال ها نمونه گفته میشه و مجموعه این نمونه هارو به عنوان مجموعه داده ها یا Dataset میشنانسیم.2-3 تخمین زننده نا اریبفرض کنید تابع f شامل یه پارامتر مثل تتا است. اگه ما یه فرمول بر اساس نمونه های گرفته شده S از تابع f  داشته باشیم که تتا رو تخمین بزنه به این تخمین زننده نا اریب می گند اگه امید ریاضی تخمین زننده برابر با تتا باشه. مثل فرمول زیر. مثلا می تونیم نشون بدیم که میانگین نمونه ها یک تخمین زننده نااریب از امیدریاضی تابع است. یا آماره زیر تخمین نا اریبی از انحراف معیار میده.اگر علاقه داشتید، میتونید اثبات اینکه میانگین و فرمول بالا تخمین زننده نا اریب برای امیدریاضی و انحراف معیار هستند رو اینجا ببیند.2-4- قانون بیزقانون بیز یا قانون احتمال شرطی میگه احتمال وقوع یک پیشامد مثل x در صورتی که بدونیم پیشامدی مثل y اتفاق افتاده چقدره. مثلا احتمالا اینکه امروز بارون بیاد به شرط اینکه بدونیم دیروز هم بارون اومده چقدره. فرمول زیر قانون بیز رو شرح میده.فرمول بالا رو به این صورت می خونند احتمال X=x به شرط اینکه Y=y.2-5- تخمین پارامترحالا قانون بیز چه کمکی به ما می کنه. برای تخمین پارامترها. تابع زیر رو که به تابع گوسی معروفه رو در نظر بگیرید.تابع گوسی ویژگی های یک تابع احتمال رو داره. این تابع دو تا پارامتر برای تخمین داره میو و سیگما که اون رو با بردار تتا از پارامترها به صورت زیر نشون می دیدم.هدف اینکه بردار تتا را با استفاده از قانون بیز تخمین بزنیم.که در فرمول بالا:حالا فرض کنید ما یک مجموعه داده از تابع نمونه گیری کردیم و یک مجموعه محدود از مقادیر ممکن برای بردار تتا رو داریم. هدفمون اینه که بفهمین کدوم بردار بیشترین احتمال رو برای تولید داده های نمونه ما داره. مقدار این احتمال رو میشه از طریق قانون بیز تخمین زد. و به این روش میگن تخمین زننده بیشنیه احتمال پسین یا Maximum A Posteriori Estimator-MAP.اینجا می تونید با یه مثال فوتبالی بهتر MAP رو بفهمید. حالا مساله اینه که اگه بردار تتا نامحدود باشه چکار باید بکنیم. راه حل اینه که از سمت راست لگاریتم میگیریم تا ضرب ها به جمع تبدیل بشه و از گرادیان دیسنت برای بهینه سازی استفاده می کنیم. درباره گرادیان دیسنت در فصل چهار بیشتر می خونیم.2-6 پارامتر و هایپر پارامترهایپر پارامتر ها بخشی از خود الگوریتم هستند و معمولا توسط خود الگوریتم یادگرفته نمیشند و مثل انتخاب نوع الگوریتم باید توسط ما به الگوریتم داده بشند. اما پارامترها توسط خود الگوریتم یادگیری تعیین میشه و الگوریتم اونها رو بهینه می کنه. حالا اینکه چطور پارامترها بهینه میشند هم بعدا بیشتر می خونیم. ولی روش کلی به این صورت که ما یه سری توابع تعریف می کنیم که نشون دهنده نحوه عملکرد مدل خروجی عملکرد روی داده های در دسترسه. هدفمون اینه که پارامترهای مدلمون طوری تعیین بشند که این توابع بهینه بشند.2-7 طبقه بندی در برابر رگرسیونطبقه بندی(Classification) دنبال اختصاص دادن خودکار برچسب به یک نمونه بدون برچسب است. شناسایی اسپم که تو فصل اول صحبتشو کردیم یک نمونه طبقه بندیه. در یک مسئله طبقه بندی ، یک برچسب عضوی از یک گروه محدود از کلاسها است. اگر اندازه مجموعه کلاس ها دو باشه (&quot;بیمار&quot; / &quot;سالم&quot; ، &quot;اسپم&quot; / &quot;غیر اسپم&quot;) ، ما در مورد طبقه بندی باینری صحبت می کنیم. طبقه بندی چند کلاسه  یک مساله طبقه بندی با سه کلاس یا بیشتره. مثل پیش بینی نژاد سگ از روی عکسش. رگرسیون اما پیش بینی مقدار نتیجه حاصله از یک برداری ورودی مشخصه. مثل تخمین قیمت خونه بر اساس پارامترهایی مثل متراژ، محله، تعداد اتاق، طبقه و غیره. 2-8 یادگیری مبتنی بر مدل در برابر یادگیری مبتنی بر نمونهبیشتر یادگیری های با نظارت مبتنی بر مدل هستند. تو این الگوریتم ها داده ها رو به دو بخش تقسیم می کنیم. داده های آموزشی و داده های تست.(مثلا 80 درصد داده های ورودی برای اموزش و 20 درصد هم برای تست) الگوریتم های یادگیری مبتنی بر مدل از داده های آموزشی برای ایجاد مدل استفاده می کنند و پارامترهای مدل هم با استفاده از همین داده های آموزش محاسبه میشه. عملکرد مدل هم بر اساس داده های تست ما تعیین میشه.الگوریتم های یادگیری مبتنی بر نمونه از کل مجموعه داده به عنوان مدل استفاده می کنند. یک الگوریتم مبتنی بر نمونه که خیلی هم ازش استفاده میشه ، k-Nearest Neighbours (kNN) است. در طبقه بندی ، برای پیش بینی یک برچسب برای یک مثال، الگوریتم kNN، همسایه های نزدیک مثال ورودی رو تو فضای بردارهای ویژگی بررسی می کنه و برچسبی را که بیشتر اوقات در این همسایگی نزدیک دیده میشه رو به مثال ورودی تخصیص میده. 2-9 یادگیری سطحی در برابر یادگیری عمیقاحتمالا ما هممون خیلی با عبارت یادگیری عمیق یا همون Deep Learning  برخورد کردیم. ولی شاید چیزی از یادگیری سطحی یا کم عمق نشنیدیم. حالا تفاوت این دوتا چیه. اینطوری بگم که بیشتر الگوریتم های با نظارت یادگیری سطحی هستند. یعنی پارامترهای مدل به صورت مستقیم از داده های ورودی استخراج میشند. در مقابل اینها یادگیری عمیق که برای شبکه عصبی هم مطرح میشه حالتیه که بین ورودی و خروجی چندین لایه پنهان وجود داره و درو واقع پارامترهای مدل بعد از طی چند مرحله محاسبه میشند. در واقع یادگیری عیمق پارامترها مستقیم از ورودی ها محاسبه نمیشند و بلکه از داده های مرتبط با لایه قبلی استخراج میشند. البته در مورد یادگیری عمیق تو فصل 6 به صورت مفصل صحبت میشه.خوب فصل اول و دوم یه دستگرمی کوچیک بود. مطالب اصلی از فصل سوم شروع میشه. تو فصل بعدی در مورد چند تا الگوریتم اصلی مثل رگرسیون خطی و لوجستیک، درخت تصمیم گیری و یه روش کلاسترینگ صحبت می کنیم که می تونید از لینک زیر مطالعش کنید. https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-i3hoyokk0eaw </description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Thu, 25 Feb 2021 14:09:17 +0330</pubDate>
            </item>
                    <item>
                <title>کاربرد هوش مصنوعی در صنعت املاک و مستغلات</title>
                <link>https://virgool.io/MelkRadar/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%AF%D8%B1-%D8%B5%D9%86%D8%B9%D8%AA-%D8%A7%D9%85%D9%84%D8%A7%DA%A9-%D9%88-%D9%85%D8%B3%D8%AA%D8%BA%D9%84%D8%A7%D8%AA-hju6y2ei7mxq</link>
                <description>بازار مسکن به ویژه در بخش معاملات املاک و مستغلات که اون رو با اسم Real-Estate یا املاک و مستغلات میشناسیم، مثل بقیه صنایع تحت تاثیر هوش مصنوعی قرار گرفته است. حالا این یعنی چی؟ سناریو زیر رو در نظر بگیرید:شما دنبال یک خونه برای اجاره هستید و یک سایت جستجوی ملک رو باز می کنید و شروع به جستجو می کنید. بعد از مدتی جستجو، از پیدا نکردن ملک مورد نظر خسته می شید و سایت رومی بندید. همون لحظه یک مشاور املاک به شما زنگ مینه و ملکی رو به شما معرفی میکنه که دقیقا مطابق با نیاز شماست. شما قیمت ملک رو با تمام ملک های اطراف و بر اساس ویژگی هایی که ملک دارو، مقایسه می کنید و متوجه می شود که قیمت کاملا منصفانه است.حالا یه مشاور املاک رو در نظر بگیرید که در بنگاه نشسته و نیاز مشتری‌هایی که وارد بنگاه می‌شد اصلا مطابق فایل‌هایی که در زونکنش ذخیره کرده نیست. نرم افزار هوشمندی که روی گوشیش داره پیغام میدهکه مشتری مناسب با فایل شما پیدا شده و شماره مشتری را برای مشاور ارسال می کند.تمام این اتقاقات چطور امکان پذیر شده است؟ جواب مشخصه : با کمک هوش مصنوعی.در حال حاضر شاید هوش مصنوعی به اندازه باقی صنایع، در صنعت املاک و مستغلات نفوذ نکرده. اما این پدیده در حال تغییرهو به تدریج پتانسیل هوش مصنوعی در املاک و مستغلات شناخته می شه.نکته مهمتر اینهکه هوش مصنوعی در بخش های مختلف این صنعت قابلیت استفاده داره در این مقاله سعی داریم در مورد کاربردها و توانایی های هوش مصنوعی در این صنعت صحبت کنیم.نقش رو به رشد هوش مصنوعی در صنایعهوش مصنوعی از ظرفیت تحول آفرینی فوق العاده ای برخورداره. هوش مصنوعی مثل یک طوفان به صنایع یکی پس از دیگری نفوذ کرده، به شرکت ها کمک کرده تا عملیات خود را به صورت خودکار انجام دهنبندد و بهره وری تجاری را افزایش دهند.گزارش PwC پیش بینی می کنه که هوش مصنوعی می تواند تولید ناخالص داخلی جهانی را از سال 2017 تا سال 2030، 14 درصد افزایش دهد. گارتنر در گزارشی اعلام کرده تا سال 2024  حدود 75٪ سازمان ها نوعی هوش مصنوعی رو یه صورت عملیاتی  در فعالیت های خود به کار می گیرند.تطابق صنایع با ابزارهای توسعه یافته در هوش مصنوعی، مقدار  قابل توجهی افزایش یافته که می تونه باعث کاهش اشتغال بشه.با توجه به تغییر جهانی به سمت راه حل های مبتنی بر هوش مصنوعی در صنایع، برخی از این کاهش اشتغال در دهه های آینده اجتناب ناپذیر به نظر می رسه. اما آیا سرنوشت مشابهی در انتظار بنگاه های املاک هست؟در مطالعه ای که توسط گروه Altus مشخص شده که 48٪ از مدیران به &quot;استفاده از هوش مصنوعی و یادگیری ماشین&quot; اعتراف کردند، اما داده ها نشون می دهه ما هنوز در مرحله جایگزین شدن مشاورین املاک با هوش مصنوعی نیستیم.توانایی هایی فعلی هوش مصنوعی به کنار، ویژگی های در صنعت املاک و مستغلات وجود دارد که نیازمند وجود عامل انسانیه. بنابراین، هوش مصنوعی به جای جایگزینی الگوریتم های هوش مصنوعی بنگاه های املاک و مستغلات انسانی، به احتمال زیاد با مشاورین همکاری می کنه و به آنها در تصمیم گیری های مبتنی بر داده کمک خواهد کرد.هوش مصنوعی در املاک و مستغلاتخرید ملک فرآیندی پیچیده و وابسته به احساساتهکه  به شدت به یک ناظر انسانی برای هدایت فروش نیاز داره. برای بستن یک معامله در لحظه مناسب، به مقدار قابل توجهی از تجربه و مهارت مشاهده نیاز است - راه حل های AI هنوز نمی تونند احساسات را به درستی تشخیص دهند.همچنین مسائلی مانند پاسخگویی به تماس های تلفنی، نشان دادن ملک به خریداران و مذاکره با خریدار و فروشنده وجود داره.صنعت املاک و مستغلات به دلیل ویژگی خاص خود و اعتماد به مهارت بین فردی، به مشاورین املاک انسانی نیاز داره. اما نرم افزار مجهز به هوش مصنوعی می تواند در طیف وسیعی از فعالیت ها به مشاورین کمک کند:تولید هوشمند لیدهای فروشهر بنگاه املاک رویای مشتری ایده آل که در اولین بازدید به قرار داد میرسد ها داره، در حالی که مشتریان اغلب در مورد خاوه هایی که توانایی خرید آنها را ندارند رویا پردازی می کنند. Zillow یکی از معروفترین شرکت های فعال در بازار جستجوی املاک دارای CRM ویژه ای است که هزاران ویژگی را تجزیه و تحلیل می کنه تا مشتریانی را که قصد واقعی خرید یک ملک را از کسانی که از روی کنجکاوی در حال مرور هستند، متمایز کنه. علاوه بر این، الگوریتم این شرکت می تونه تشخیص بده که مشتری به دنبال چه نوع ملکی است. این امر به مشاورین این امکان رو می ده تا فقط با  مشتریانی که مطابق با ویژگی های مشاورین هستند، مذاکره کنند و در وقت و تلاش خود صرفه جویی کنند.ملک رادار، موتور جستجوی املاک ایران هم با کنار یک سری از این ویژگی ها و بررسی اتوماتیک آنها توانسته به مشاورین املاک کمک کند مشتری های مناسب را شناسایی کنند.شرکت REX، یک شرکت فعال در صنعت املاکهکه از هوش مصنوعی در بازاریابی املاک لوکس در بین مشتریان  بسیار محدود استفاده می کنه. هوش مصنوعی می تونه خریداران بالقوه را با تجزیه و تحلیل فعالیت آنها در وب سایت های REX، به طور دقیق شناسایی کند. این فناوری همه چیز را از نوع تعامل کاربران یا رفتار خرید آنها در سایر بازارهای آنلاین در نظر گرفته تا ملک مناسب را در زمان مناسب پیشنهاد بده. REX دریافته است که این فناوری در یافتن مشتری های مناسب بسیار بهتر از انسان کار می کنه.مدل های قیمت گذاری خودکار ملکمدل های قیمت گذاری خودکار (Automated Valuation Models-AVM) قادر به برآورد ارزش یک ملک بر اساس عوامل متعدد هستند. الگوریتم های مختلف AVM از ترکیب متفاوتی از داده ها برای ارزیابی استفاده می کنند. مثل داده های تاریخی، سن ملک، تصاویر یک ملک، ارزش بازار، روندها، محله. در این مدل ها از عوامل متعدد و گسترده ای برای تخمین استفاده می شه که باعث می شه AVM ها اغلب ارزیابی دقیق تری از املاک نسبت یک مشاور املاک ارائه دهند.به عنوان مثال، شرکت Skyline AI از مدل های پیش بینی برای ارزیابی دقیق ارزش املاک استفاده می کنه. با این حال، توجه به این نکته مهم است که Skylineبه یکی از بزرگترین مجموعه های داده در صنعت دسترسی دارد که سهم بسزایی در موفقیت شرکت داشته. صحت پیش بینی Skyline، با استفاده از بیش از 130 منبع مختلف داده و تجزیه و تحلیل بیش از 10،000 ویژگی برای هر ملک، بسیار بالاست.تجزیه و تحلیل هوشمند املاکبرخی از ویژگی های ملک توسط یک مشاور املاک قابل ارزیابیه، اما نرم افزار املاک مبتنی بر AI می تونه محاسبه سریع تر و دقیق تری رو در مورد جنبه های مختلف یک ملک انجام بده. به عنوان مثال، مقدار دقیق سالانه نور خورشید، زمان بهترین نور در طول روز، آلودگی صوتی، در دسترس بودن فضای پارکینگ، و غیره.پیشنهاد ملک براساس سلیقه مشتریالگوریتم های هوشمند و خود-یادگیر که در وب سایت ها یا در سیستم های CRMتعبیه شده می تونند ملک مناسب را بر اساس سلیقه ها و خواسته های مشتری ارائه بدند. نرم افزارهای AI موجود همچنین می توانند در اصلاح فعالیت های بازاریابی موثر باشند. به عنوان مثال، با تجزیه و تحلیل خریدهای گذشته، تصاویر و پیام ها، هوش مصنوعی می تواند نحوه برخورد با خریدار رو در هر مرحله از مسیر خریداری، بهبود بده.در سال 2015، Inman آزمایشی را انجام داد که در آن یک ربات و یک مشاور املاک بر اساس اولویت مشتری پیشنهادات ملکی را ارائه دادند. پس از یک آزمایش سه روزه، ربات موفق شد به طور مداوم مواردی را پیشنهاد بده که خواسته های مشتری در مقابل پیشنهادهای مشاور را بهتر منعکس کنه.ملک رادار در این زمینه هم با کمک بات ها تلگرامی خود و جستجو متناسب با درخواست مشتری این امکان را ایجاد کرده تا متقاضیان ملک بتوانند با صرف کمترین زمان، ملک های مورد نظر خود را بیابند.چت باتربات های چت هوشمند می تونند برای آژانس های املاک بسیار ارزشمند باشند. چت بات ها با قرار گرفتن در سایت بنگاه می تونند منجر به جمع آوری اطلاعات، پاسخگویی به س سوالات فنی و حتی یک تور مجازی به خریداران احتمالی خانه شوند.چت بات ها با پاسخ به سوالات متداول مانند متراژ مربع یا شرایط اجاره، به آژانس های املاک و مستغلات اجازه می دند تا همزمان به مشتری های بیشتری خدمات دند . به علاوه، چت بات ها 24 ساعته در دسترس هستند.اتوماسیون کارهای دستیگزارش ها، اوراق حقوقی، محدوده بندی ها و قوانین مربوطه، درخواست های پیشنهادی، تجزیه و تحلیل های مختلف، یا توافق نامه ها تنها برخی از اسنادی هستند که در معاملات املاک تولید می شند. ابزارهای مجهز به هوش مصنوعی می تونند این اسناد را از نظر عدم دقت و مشکلاتی مانند ناقص بودن آنها بررسی کنند.علاوه بر این، برخی از راه حل های هوش مصنوعی به طور خودکار اسناد مناسب رو تولید می کنند و مشاورین را از انجام کارهای وقت گیر آزاد می کنند.</description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Sat, 20 Feb 2021 10:37:53 +0330</pubDate>
            </item>
                    <item>
                <title>مهمترین الگوریتم های کاربردی یادگیری ماشین چیست؟ فصل اول</title>
                <link>https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-cxhxyt8lev4n</link>
                <description> خلاصه ای از کتاب صد صفحه ای یادگیری ماشین، اثر آندری بورکوف فصل اول&quot;حقیقت اینه که ماشین ها یاد نمی گیرند. کاری که یادگیری ماشین انجام میده، پیدا کردن یک فرمول ریاضی است که وقتی بر روی یکسری از ورودی ها اعمال میشه، خروجی مطلوب ما رو میده.حالا پس چرا مشاین لرنینگ: دلیلش قدرت مارکتینگ بیشتر این کلمه برای مشتری ها و کلاینت هاست. &quot;اینها جملاتی از کتاب صدصفحه ای یادگیری ماشین، اثر آندری بورکوف هست. این کتاب یکی از پرفروش ترین کتاب ها در زمینه هوش مصنوعی و یادگیری ماشین است. آندری بورکوف، کتابش رو بر اساس سیاست، اول بخوایند و بعد پرداخت کنید منتشر کرده است. بنابراین شما می توانید کتاب رو به صورت رایگان دانلود کنید و در صورتی که کتاب برای شما مناسب بود، هزینه آنرا پرداخت کنید. نکته ای که این کتاب داره اینه که سعی کرده در 135 صفحه (که با اسم اصلی کتاب هم تناقض دارد-که فکر کنم اینم برای مارکتینگ بهتر کتاب بوده) الگوریتم های کاربردی یادگیری ماشین و فرومول های لازم برای استفاده از اونها رو برای ما روشن کنه.من قصد دارم مطالب اصلی این کتاب رو تو یک سری از مقالات مرتبط خلاصه کنم، تا مخاطب فارسی بتونه مطالب رو راحت تر بخونه و هر جا هم نیاز بود مطالبی رو که به نظرم می تونه به فهم مطلب کمک کنه رو اضافه کنم. بخش هایی که از متن کتاب نیست و خودم اضافه کردم، به صورت هایلایت تو متن مشخص شده. شما هر جا نیاز داشتید می تونید به کتاب اصلی مراجعه کنید و توضیحات تکمیلی رو اونجا بخونید.لینک صفحه ویکی کتاب: http://themlbook.com/wiki/doku.phpThe Hundred-Page Machine Learning Book- مقدمه:1-1 یادگیری ماشین چیست؟یادگیری ماشین رو می شه اینطور تعریف کرد: 1- جمع اوری داده 2- ساخت یک مدل آماری از روی داده ها. این مدل آماری در واقع برای حل مسائل واقعی به کار میره.برای اینکه مفهوم یادگیری ماشین رو یخورده بیشتر شرح بدیم، مثال زیر رو درنظر بگیرید:فرض کنید به شما مواد اولیه غذا و دستور پخت رو میدند. خروجی از این دو مورد یه غذای پخته شده و احتمالا خوشمزه است. (اگر دستورپخت رو به درستی پیاده سازی کردید). حالا یادگیری ماشین چیکار می کنه؟ شما به مدل خودتون مواد اولیه و غذای خوشمزه رو میدید و اون به شما دستور پخت رو میده. و این کجا به درد می خوره. اونجا که شما ورودی و خروجی ور دارید ولی نمی دونید که چطور این ورودی منجر با اون خروجی شده.تفاوت یه الگوریتم معمولی با الگوریتم یادگیری ماشین1-2- انواع یادگیرییادگیری سه نوع اصلی داره، یادگیری با نظارت، بدون نظارت و تقویت شده1-2-1 یادگیری با نظارتهدف یک الگوریتم یادگیری نظارت شده استفاده از مجموعه داده برای تولید مدلی است که یک بردار ویژگی(Feature Vector) x را به عنوان ورودی و برچسب هر ردیف از داده ها را به عنوان خروجی می گیرد و مدلی رو به شما میدهد که برچسب هر ردیف از داده ها رو پیش بینی می کنه. در واقع ما برای هر ورودی، یک یا چند خروجی داریم و قصد داریم رابطه ای بین این ورودی و خروجی پیدا کنم تا برای داده های بعدی، خروجی رو پیش بینی کنیم.2-2-1 یادگیری بدون نظارتهدف یک الگوریتم یادگیری بدون نظارت ، ایجاد مدلی است که یک بردار ویژگی x را به عنوان ورودی بگیرد و آن را به بردار دیگری یا به یک مقدار تبدیل کند که بتواند برای حل یک مسئله عملی استفاده کند. خوشه بندی یا کلاسترینگ(Clustering) یک نمونه از الگوریتم های بدون نظارته.1-2-3 یادگیری نیمه نظارتیدر این نوع مسائل ما هم داده های برچسب گذاری شده و هم بدون برچسب داریم. هدف الگوریتم یادگیری نیمه نظارت شده همان هدف الگوریتم یادگیری نظارت شده است. اینجا ما امیدواریم که استفاده از بسیاری از داده های بدون برچسب می تواند به الگوریتم یادگیری کمک کند تا مدل بهتری پیدا کند1-2-4 یادگیری تقویتیهدف الگوریتم یادگیری تقویتی، یادگیری خط مشی است. خط مشی تابعی است (شبیه مدل  یادگیری تحت نظارت) که بردار ویژگی های یک حالت را به عنوان ورودی در نظر گرفته و عملکرد بهینه ای را برای اجرای در آن حالت خروجی می دهد. این عمل در صورتی بهینه است که میانگین پاداش مورد انتظار را به حداکثر برساند.در واقع شبیه برنامه ریزی پویا ما دنبال بهینه کردن حرکت بعدی هستیم به طوری که امید انتظاری پاداش نهایی بیشینه شود.1-3 یادگیری با نظارت چطور کار می کند؟تو این بخش به طور خلاصه نحوه کار یادگیری با نظارت و توضیح میدیم. در واقع این بخش فقط یه مثال حل میشه وجزییات مدلها تو بخش های بعدی صحبت میشه. دلیل اینکه یادگیری با نظارت انتخاب شد اینه که این نوع یادگیری ماشین بیشترین استفاده رو داره.مساله زیر رو در نظر بگیرید. فرض کنید تو شرکت گوگل برای بهبود سروی جی-میل می خواد تشخیص بوده کدوم ایمیل ها اسپم هستند و کدو ها اسپم نیستند. در واقع برچسب داده های “spam” و “not-spam” خواهد بود. حالا بردار ویژگی های ما xرو باید تعریف کنیم. فرض کنید مهندس علوم داده ما تصمیم می گیره بر اساس کلمات موجود داخل ایمیل این ویژگی ها رو بسازه. اون یک لیست از کلمات رو در نظر می گیره که برای تشخیص اسپم بودن ایمیل به کار میاد. فرض کنید این لیست شامل 20،000 کلمه است. این ترتیب بردار ویژگی های یا x شامل 20،000 بعد خواهد بود و اگر کلمه ای در متن ایمیل بود، مقدار بردار برای اون ایمیل برابر 1 و اگر در متن ایمیل وجود نداشت مقدار برابر صفر میشه.حالا فرض کنید ما 10 هزار ایمیل داریم که قبلا برچسب گذاری کردیم. حالا بر اساس لیست کلماتی که تعریف کردیم، بردار ویژگی هامون رو ایجاد می کنیم. هدف ما اینه که با کمک این داده های برچسب گذاری شده بتونیم مدلی بسازیم که اگر دفعه بعد ایمیل جدیدی رسید، این مدل خودش با دقت بالایی تشخیص بده که اسپم هست یا خیر.مدلی که برای این مساله انتخاب کردیم Support Vector Machine(SVM)است. این الگورتم لیبل های +1 (spam) و -1 (not-spam) رو به عنوان برچسب داده ها درنظر می گیره.این الگوریتم یک خط فرضی(در فضای چند بعدی هایپر پلن) می کشه و داده هایی که بالای خط هستند رو به عنوان +1 و زیر خط رو -1 در نظر می گیره. در یادگیری ماشین، به مرز بین دو کلاس مختلف، مرز تصمیم گیری(Decision Boundary) می گند.معادله هایپر پلن از طریق زیر به دست میاد.wx-b=0برچسب داده ها از طریق علامت بردار ویژگی ها در wx-bبه دست میاد:y=sign(wx-b)هدف الگوریتم هم یافتن مقدار بهینه w و b است. شکل زیر یه مدل svm در فضای دو بعدی و مرز تصمیم گیری رو نشون میده.یک مدل SVM در فضای دوبعدیمرز تصمیم گیری هم از طریق مساله بهینه سازی زیر به دست میاد.Minimum ||w|| s.t: yi(wxi-b)&gt;=1 for i=1, ..., N هدف ما هم حداقل کردن اندازه مرز تصمیم گیری است.این یه مدل SVM بود. اینجا ما یه مدل خطی رو برای مرز تصمیم گیری معرفی کردیم. بعضی اوقات ساخت یه مدل خطی به درستی داده های مارو کلاس بندی نمی کنه. SVM می تونه با استفاده از کرنل ها(kernel) مدل غیر خطی بسازه. این روش ها در بخش سوم توضیح داده میشه.بعد از ساخت مدل ما باید دقت مدل رو ارزیابی کنیم. خوب بعد از ارزیابی و تایید مدل ما از اون برای حل مسائل واقعی استفاده می کنیم و اگر نیاز شد باید دوباره اون رو به روز کنیم. برای پیاده سازی یه پروژه ML معمولا باید یکسری مراحل طی بشه تا مطمین باشیم که خروجی کار، از طریق یک مسیر درست طی شده و قایل اتکا است. به این مسیر پایپلاین پروژه می گن. شکل زیر پایپلاین یک پروژه ML رو نشون میده.پایپ لاین یک پروژه یادگیری ماشینتو مساله ما برای مشخص کردن اسپم بودن یک ایمیل 1- تعریف مساله: پیش بینی “spam” یا “not-spam” برای یک ایمیل دریافتی2- داده ها: لیست 10 هزار تایی ایمیل ها و برچسب گذاری اونها3- ارزیابی: تعریف معیار های ارزیابی که نشون میده یک مدل خوب عمل می کنه یا نه(تو مثال ما در این مورد بحث نشده ولی دقت به عنوان یکی از معیار ها در اخر کار نام برده شد)4- ویژگی ها: تعریف لیست کلمات و اندازه گذاری مقدار اونها برای هر ایمیل5- مدل سازی: انتخاب SMV و مدلسازی داده ها با استفاده از داده های مرتبط با 10 هزار ایمیل6- آزمایش: بهینه سازی مدل از طریق تابع بهینه سازی تعریف شده( و یا بررسی مدل های دیگه ای که می تونستیم به جای SVM استفاده کنیم)و تمام این مراحل یه صورت مداوم در حال اجرا و بهبود هستش.تو فصل دوم در مورد نمادها و نشانه گذاری ها و یخورده هم در مورد اصول اولیه آمار صحبت خواهیم کرد که میتونید از لینک زیر مطالعش کنید. https://virgool.io/@hamidreza.firooze/%D9%85%D9%87%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-sqzf92yi1dhc </description>
                <category>حمیدرضا فیروزه</category>
                <author>حمیدرضا فیروزه</author>
                <pubDate>Tue, 16 Feb 2021 23:25:25 +0330</pubDate>
            </item>
            </channel>
</rss>