<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مهدی بدریان</title>
        <link>https://virgool.io/feed/@mbadriyan</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 14:05:29</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>مهدی بدریان</title>
            <link>https://virgool.io/@mbadriyan</link>
        </image>

                    <item>
                <title>تحلیل اثربخشی تبلیغات</title>
                <link>https://virgool.io/@mbadriyan/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%A7%D8%AB%D8%B1%D8%A8%D8%AE%D8%B4%DB%8C-%D8%AA%D8%A8%D9%84%DB%8C%D8%BA%D8%A7%D8%AA-cjbpgj2gnrs9</link>
                <description>پس از مبتلا شدن به کرونا و گذراندن دوران قرنطینه خانگی، از روی اجبار به اندازه 10 سال اخیر برنامه‌های تلویزیون را مشاهده کردم. با توجه به حوزه‌ی کار فعلیم که مربوط به تحلیل موضوعات کسب و کار در حوزه‌ی فروش و بازاریابی است، جالب‌ترین بخش برنامه‌ها برای من آگهی‌های بازرگانی بود. آگهی‌هایی که با بی‌سلیقه‌گی تمام و در زمان نامناسب برای مخاطب نامناسب پخش می‌شوند. به خاطر همین تصمیم گرفتم که در این پست به صورت مختصر چگونگی تحلیل یک کمپین تبلیغاتی که بر پایه‌ی تبلیغات در مدیاهای تلویزیون، رادیو و نشریات عمومی با هدف افزایش فروش انجام می‌شوند را به صورت مختصر بیان کنم. در زمان اجرای یک کمپین تبلیغاتی بسیار مهم است که به طور پیوسته شرایط موجود را تحلیل کرده تا بهترین وجه ممکن اهداف کمپین برآورده شوند. مسئولین اجرای کمپین‌های تبلیغاتی باید همواره دنبال پاسخ‌های موجه برای دو سوال ذیل باشند: آیا رابطه‌ای بین میزان فروش و بودجه تبلیغات وجود دارد؟به میزان یک واحد تخصیص بودجه در هر یک از مدیاها، میزان فروش چه مقدار افزایش خواهد یافت؟دیتاست مورد استفاده برای کمپین بازاریابی از این لینک قابل دسترسی است. در این دیتاست میزان فروش مقداری به ازای هزینه‌های صرف شده در هر یک از مدیاهای تبلیغاتی بیان شده است. برای جواب به سوالات فوق، از زبان برنامه‌نویسی پایتون و  دو کتابخانه Pandas و  Statsmodels استفاده خواهیم کرد. بدین منظور کتابخانه‌های فوق را در Jupyter Notebook فراخوانی مینماییم.import pandas as pdimport statsmodels.formula.api as smfابتدا دیتاست را با قطعه کد ذیل فراخوانی می‌نماییم.advertising = pd.read_csv(&#x27;Advertising.csv&#x27;, usecols=[1,2,3,4])برای پاسخ سوال1،  می‌توان یک رگرسیون چندگانه بر روی متغییرهای مستقل تلویزیون، رادیو، روزنامه و متغییر وابسته میزان فروش برازش نمود و فرض آماری H0: BTV = BRadio = BNewspaper= 0 را تست نمود. بدین منظور آماره‌ی F برای پذیرش یا رد فرض صفر در مقابل فرض یک استفاده می‌گردد. به منظور انجام رگرسیون قطعه کد ذیل را در پایتون اجرا می‌نماییم:est = sm.ols(&#x27;sales ~ TV + radio + newspaper&#x27;, advertising).fit()est.summary()در جدول ذیل نتایج اجرای رگرسیون چندگانه فوق بر دیتاست نشان داده شده است.تفسیر نتایج این جدول به شرح ذیل می‌باشد:مقدار آماره‌ی F در رگرسیون چندگانه برازش شده برابر با 570 است. با توجه به اختلاف زیاد آن با عدد 1، می توان با قاطعیت ادعا کرد که ضریب حداقل یکی از متغیرهای تلویزیون، رادیو و روزنامه نزدیک به صفر می‌باشد و حداقل یک متغیر تاثیر قابل ملاحظه‌ای بر متغییر وابسته(میزان فروش) ندارد. ضریب‌های تخمین شده معادله‌ی رگرسیونی برای روزنامه در مدل رگرسونی تقریباٌ برابر صفر است و همجنین p-value آن در حدود 0.86 می‌باشد که با توجه به فرض صفر در نظر گرفته شده، این منغیر اثر معناداری در میزان افزایش فروش ندارد و با توجه به ضرایب تلویزیون و رادیو در معادله رگرسیون و مقادییر p-value آن‌ها می‌توان نتیجه گرفت که این دو متغییر تاثیر معناداری در میزان فروش دارند.به منظور تحلیل دقیق‌تر این موضوع، با اجرای کد ذیل ماتریس ضریب همبستگی را برای سه متغییر مستقل و متغیر وابسته فروش ترسیم می‌نماییم:advertising.corr()ماتریس ضریب همبستگی در شکل ذیل نشان داده شده است:تبلیغات تلویزیون و رادیویی ضریب همبستگی بالایی با میزان فروش دارند و روزنامه ضریب همبستگی پایین‌تری با میزان فروش دارند که تصدیق‌کننده‌ی نتایج رگرسیون می‌باشد.اکنون می‌توان بررسی نمود نتایج مدل تا چه میزان قابل اعتماد می باشد؟شاخص Adjusted R-Squared برابر با 0.896  محاسبه شده است. این شاخص بیانگر میزان واریانسی است که توسط متغیرهای مستقل (رادیو، تلویزیون، روزنامه) در تعیین میزان متغییر وابسته(میزان فروش) در مدل رگرسیونی برآورد شده است. در دیتاست مورد بررسی، متغیرهای مستقل توانسته‌اند تا 90 درصد واریانس فروش را کاور کنند و تنها 10 درصد وابسته به متغیرهای مستقلی است که در مدل رگرسیونی در نظر گرفته نشده‌اند. لذا می‌توان به تحلیل‌های صورت گرفته اعتماد نمود.برای پاسخ به سوال دوم و تعیین این که به میزان یک واحد تخصیص بودجه در هر یک از مدیاهای تلویزیون و رادیو، میزان فروش چه مقدار خواهد بود، معادله رگرسیونی را با متغییرهای مستقل تاثیرگذار بر میزان فروش محاسبه می‌نماییم و قطعه کد ذیل را اجرا می‌نماییم:est = smf.ols(&#x27;sales ~ TV + radio&#x27;, advertising).fit()est.summary()با اجرای کد، نتایج ذیل حاصل می‌گردد:با توجه به نتایج جدول ذیل و ضرایب متغییرها خواهیم داشت:sales = 2.9211 + 0.0458 * 1 + 0.188 * 1 = 3.1549در واقع به میزان یک واحد هزینه برای تبلیغات تلویزیونی و رادیویی 3.15 واحد فروش خواهیم داشت.اکنون با توجه به اطلاعات مرتبط با بهای تمام شده و سود حاصل از فروش می توان در رابطه با اثربخش بودن یا غیر اثربخش بودن تبلغات تصمیم‌گیری کرد.</description>
                <category>مهدی بدریان</category>
                <author>مهدی بدریان</author>
                <pubDate>Sat, 23 Apr 2022 18:26:10 +0430</pubDate>
            </item>
                    <item>
                <title>تحلیل کمپین‌های بازاریابی با استفاده از تحلیل اکتشافی داده‌ها و مصورسازی</title>
                <link>https://virgool.io/@mbadriyan/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%DA%A9%D9%85%D9%BE%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1%DB%8C%D8%A7%D8%A8%DB%8C-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%A7%DA%A9%D8%AA%D8%B4%D8%A7%D9%81%DB%8C-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7-%D9%88-%D9%85%D8%B5%D9%88%D8%B1%D8%B3%D8%A7%D8%B2%DB%8C-m1h65bkopsda</link>
                <description>هر فعالیت بازاریابی به منابع مالی نیاز دارد. زمانی که شما کمپین‌های بازاریابی را از طریق ارسال ایمیل اجرا می‌نمایید، ارسال هر ایمیل نیز منجر به هزینه می‌گردد. در صورت اجرای فعالیت‌های بازاریابی بر اساس سرویس‌های شبکه‌های اجتماعی یا مدیا(تلویزیون، رادیو و ...)، به منابع مالی نیاز دارید. با توجه به این که هر فعالیت بازاریابی اثرات مالی دارد لذا بررسی عملکرد و پرفورمنس هر کمپین بازاریابی از اهمیت زیادی برخوردار است. در واقع هدف اصلی هر فعالیت بازاریابی افزایش درآمد در سازمان می‌باشد و هیچ سازمانی تمایل ندارد بیش‌تر از ارزش و درآمدی که از فعالیت‌های بازاریابی ایجاد می‌گردد برای فعالیت‌های بازاریابی هزینه نماید.بررسی و تحلیل پرفورمنس فعالیت‌های بازاریابی با گسترش کانال‌های بازاریابی به فضاهای آنلاین مانند شبکه‌های اجتماعی، وبلاگ‌ها و موتورهای جستجو اهمیت فراوانی یافته است. یکی از شاخص‌های کلیدی عملکرد در تحلیل کمپین‌های دیجیتال مارکتینگ شاخص نرخ تبدیل(Conversion Rate) می‌باشد. مفهوم کلی این شاخص عبارتست از درصد سرنخ‌هایی(Leads) که به مشتریان فعال برای سازمان تغییر یافته‌اند. با توجه به اهداف بازاریابی می‌توان معیار نرخ تبدیل را به صورت مختلف تعریف نمود. اگر هدف معادل باشد با افزایش مشتریانی که بابت خرید محصولات و خدمات سازمان پرداخت مالی داشته باشند، می‌توان نرخ تبدیل را به صورت زیر تعریف نمود:Conversion Rate = تعداد سرنخ‌ها/ تعداد مشتریانی که بابت خرید محصولات و خدمات پرداختی داشته باشنداگر هدف افزایش تعداد مشتریانی باشد که در سایت تجاری سازمانی با ثبت کامل مشخصات ثبت‌نام می‌نمایند، می‌توان نرخ تبدیل را به صورت زیر محاسبه نمود:Conversion Rate = تعداد سرنخ‌ها / تعداد مشتریانی که ثبت نام نموده‌انددر ادامه این پست چگونگی محاسبه شاخص نرخ تبدیل با استفاده از دیتاست کمپین یک بانک تجاری با استفاده از زمان برنامه‌نویسی پایتون و کتابخانه‌های Pandas و Matplotlib شرح داده شده است. دیتای مورد استفاده مربوط به کمپین بازاریابی مستقیمی می‌باشد که بر اساس تماس تلفنی اجرا شده است که سرنخ‌ها(Leads) به افتتاح یک سپرده مدت‌دار تشویق شده‌اند که از این لینک قابل دسترسی است.در ابتدا کتابخانه‌های مدنظر برای اجرای محاسبات را ایمپورت می‌نماییم.import pandas as pdimport matplotlib.pyplot as plt%matplotlib inlineدیتاست مدنظر را با استفاده از تابع read_csv در محیط برنامه‌نویسی پایتون فراخوانی می‌نماییم.df =   pd.read_csv(&quot;C:/Users/badriyan.mahdi/Desktop/bank-additional/bank-additional/bank-additional-full.csv&quot;   , sep= &quot;;&quot;)با توجه به خروجی که در شکل فوق نیز نشان داده شده است، قابل مشاهده است که دیتاست مورد بررسی دارای 21 ستون و 41188 ردیف می‌باشد که اطلاعات ستون‌های آن به شرح ذیل می‌باشد:1 - age (numeric)2 - job : type of job (categorical: &#x27;admin.&#x27;,&#x27;blue collar&#x27;,&#x27;entrepreneur&#x27;,&#x27;housemaid&#x27;,&#x27;management&#x27;,&#x27;retired&#x27;,&#x27;self employed&#x27;, &#x27;services&#x27;,&#x27; student&#x27;,&#x27; technician&#x27;, &#x27;unemployed&#x27;,&#x27;unknown&#x27;)3 - marital : marital status (categorical: &#x27;divorced&#x27;,&#x27;married&#x27;,&#x27;single&#x27;,&#x27;unknown&#x27;; note: &#x27;divorced&#x27; means divorced or widowed)4 - education (categorical: &#x27;basic.4y&#x27;,&#x27;basic.6y&#x27;,&#x27;basic.9y&#x27;, &#x27;high.school&#x27;, &#x27;illiterate&#x27;, &#x27;professional.course&#x27;, &#x27;university.degree&#x27;, &#x27;unknown&#x27;)5 - default: has credit in default? (categorical: &#x27;no&#x27;,&#x27;yes&#x27;,&#x27;unknown&#x27;)6 - housing: has housing loan? (categorical: &#x27;no&#x27;,&#x27;yes&#x27;,&#x27;unknown&#x27;)7 - loan: has personal loan? (categorical: &#x27;no&#x27;,&#x27;yes&#x27;,&#x27;unknown&#x27;)8 - contact: contact communication type (categorical: &#x27;cellular&#x27;,&#x27;telephone&#x27;)9 - month: last contact month of year (categorical: &#x27;jan&#x27;, &#x27;feb&#x27;, &#x27;mar&#x27;, ..., &#x27;nov&#x27;, &#x27;dec&#x27;)10 - day_of_week: last contact day of the week (categorical: &#x27;mon&#x27;,&#x27;tue&#x27;,&#x27;wed&#x27;,&#x27;thu&#x27;,&#x27;fri&#x27;)11 - duration: last contact duration, in seconds (numeric).12 - campaign: number of contacts performed during this campaign and for this client (numeric, includes last contact)13 - pdays: number of days that passed by after the client was last contacted from a previous campaign (numeric; 999 means client was not previously contacted)14 - previous: number of contacts performed before this campaign and for this client (numeric)15 - poutcome: outcome of the previous marketing campaign (categorical: &#x27;failure&#x27;, &#x27;nonexistent&#x27;,&#x27; success&#x27;)# social and economic context attributes16 - emp.var.rate: employment variation rate - quarterly indicator (numeric)17 - cons.price.idx: consumer price index - monthly indicator (numeric)18 - cons.conf.idx: consumer confidence index - monthly indicator (numeric)19 - euribor3m: euribor 3 month rate - daily indicator (numeric)20- nr.employed: number of employees - quarterly indicator (numeric)21- y : target value: has the client subscribed a term deposit? (binary: &#x27;yes&#x27;,&#x27;no&#x27;)برای محاسبه‌ی نرخ تبدیل (Conversion Rate) لازم است که اطلاعات ستون y را Encodingنماییم و مقدار 1 را به “yes” و مقدار 0 را به  “no” تخصیص دهیم تا بتوانیم تعداد مشتریان مدنظر را count نماییم. بدین منظور قطعه کد زیر را اجرا می‌نماییم:df[&quot;conversion&quot;] = df[&quot;y&quot;].apply(lambda x:1 if x == &quot;yes&quot; else 0)برای محاسبه‌ی نرخ تبدیل تجمیعی(Aggregate Conversion Rate) تنها کافی است تعداد مشتریانی که مشترک شده‌اند را به تعداد کل مشتریان تقسیم نماییم. بدین منظور قطعه کد ذیل را اجرا می‌نماییم:df[&quot;conversion&quot;].sum()    # total number of conversionsdf.shape[0]       #total   number of clients in the data (= number of rows in the data)print(&quot;conversion rate %0.2f %% &quot; %   (df[&quot;conversion&quot;].sum()/df.shape[0]*100))با اجرای کد فوق، خروجی پایتون به صورت ذیل است:conversion rate 11.27 %عدد فوق بیانگر عملکرد کلی کمپین بازاریابی است و اطلاعات و بینش کافی را در اختیار ما قرار نمی‌دهد. در زمان ارزیابی و پیشرفت فعالیت‌‌های بازاریابی علاقه‌مندیم که داده‌ها را عمیق‌تر بررسی نماییم و با گروه‌بندی مشتریان در سگمنت‌های مختلف، شاخص‌های عملکردی را برای هر سگمنت به طور مستقل محاسبه نماییم.اکنون مشتریان را بر اساس اطلاعات ستون سن(age)سگمت‌بندی می‌نماییم و نرخ تبدیل را برای هر سگمنت به طور جداگانه محاسبه می‌نماییم. بدین منظور قطعه کد زیر را اجرا می‌نماییم:conversions_by_age = pd.DataFrame(df.groupby(&quot;age&quot;)[&quot;conversion&quot;].sum())total_customer_by_age = pd.DataFrame(df.groupby(&quot;age&quot;)[&quot;conversion&quot;].count())ax = conversion_rate_by_age.plot(grid=True, figsize=(10, 7),title=&#x27;Conversion Rates by Number of Contacts&#x27;)ax.set_xlabel(&#x27;age&#x27;)ax.set_ylabel(&#x27;conversion rate (%)&#x27;)با اجرای کد فوق، پایتون گراف ذیل را ایجاد می‌نماید:نمودار فوق نشان می‌دهد که برای گروه‌های سنی بزرگسال (بیش از 70 سال) نویز و واریانس قابل ملاحظه‌ای برای نرخ تبدیل(محور y) وجود دارد. علّت اصلی این موضوع این است که تعداد داده‌های این گروه سنی نسبت به سایر سال‌ها کمتر است. به منظور کاهش این نویز، می‌توان چند گروه سنی را در یک گروه تجمیع نمود. لذا داده‌ها را در 6 گروه مختلف 18 تا 30، 30 تا 40، 40 تا 50، 50 تا 60، 60 تا 70 و بزرگتر از 70 سال گروه‌بندی می‌نماییم و نرخ تبدیل را برای هر یک از این گروه‌ها محاسبه می‌نماییم. بدین منظور قطعه کد زیر را اجرا می‌نماییم:df[&#x27;age_group&#x27;] = df[&#x27;age&#x27;].apply(lambda x: &#x27;[18, 30)&#x27; if x &lt; 30 else &#x27;[30, 40)&#x27; if x &lt; 40 \else &#x27;[40, 50)&#x27; if x &lt; 50 else &#x27;[50, 60)&#x27; if x &lt; 60 \else &#x27;[60, 70)&#x27; if x &lt; 70 else &#x27;70+&#x27;)conversions_by_age_group = df.groupby(by=&#x27;age_group&#x27;)[&#x27;conversion&#x27;].sum() / df.groupby(by=&#x27;age_group&#x27;)[&#x27;conversion&#x27;].count() * 100.0ax = conversions_by_age_group.loc[[&#x27;[18, 30)&#x27;, &#x27;[30, 40)&#x27;, &#x27;[40, 50)&#x27;, &#x27;[50, 60)&#x27;, &#x27;[60, 70)&#x27;, &#x27;70+&#x27;]].plot(kind=&#x27;bar&#x27;, color=&#x27;skyblue&#x27;, figsize=(10, 7), title=&#x27;Conversion Rates by Age Groups&#x27;)ax.set_xlabel(&#x27;age&#x27;)ax.set_ylabel(&#x27;conversion rate (%)&#x27;)plt.show()با اجرای کد فوق، پایتون گراف ذیل را ایجاد می‌نماید:تفاوت جمعیتی بین مشتریان Converted و Non-Converted یکی دیگر از موضوعاتی که می‌توان بررسی نمود. با این تحلیل می‌توان تفاوت‌های بین گروه مشتریان Converted و Non-Converted را شناسایی نمود که در نهایت منجر به این می‌شود که مشتریان تارگت و مشتریانی که به اقدامات بازاریابی بهتر واکنش نشان داده‌اند را شناسایی نمود. لذا در ابتدا مشتریان را بر اساس وضعیت تأهل گروه‌بندی می‌نماییم. بدین منظور قطعه کد زیر را اجرا می‌نماییم:conversions_by_marital_status_df = df.pivot_table(index = &quot;marital&quot;, columns = &quot;conversion&quot;, aggfunc = len, values=&#x27;y&#x27;)conversions_by_marital_status_df.columns = [&#x27;non_conversions&#x27;, &#x27;conversions&#x27;]conversions_by_marital_status_df.plot(kind=&#x27;pie&#x27;, figsize=(15, 7), startangle=90, subplots=True, autopct=lambda x: &#x27;%0.1f%%&#x27; % x)plt.show()با اجرای کد فوق، پایتون گراف ذیل را ایجاد می‌نماید:از روی نمودار pie فوق می‌توان تشخیص داد که گروه مزدوجین دارای بیشترین فراوانی می‌باشند و اقدامات بازاریابی برای این گروه از جامعه بیشتر تاثیرگذار بوده است.اکنون برای بررسی موشکافانه تحلیل فوق را به طور همزمان برای دو ویژگی سن و وضعیت تأهل انجام می‌دهیم. بدین منظور قطعه کد زیر را اجرا می‌نماییم:age_marital_df = df.groupby([&#x27;age_group&#x27;, &#x27;marital&#x27;])[&#x27;conversion&#x27;].sum().unstack(&#x27;marital&#x27;).fillna(0)age_marital_df = age_marital_df.divide(df.groupby(by=&#x27;age_group&#x27;)[&#x27;conversion&#x27;].count(), axis=0)ax = age_marital_df.loc[[&#x27;[18, 30)&#x27;, &#x27;[30, 40)&#x27;, &#x27;[40, 50)&#x27;, &#x27;[50, 60)&#x27;, &#x27;[60, 70)&#x27;, &#x27;70+&#x27;]].plot(kind=&#x27;bar&#x27;, grid=True, figsize=(10,7))ax.set_title(&#x27;Conversion rates by Age &amp; Marital Status&#x27;)ax.set_xlabel(&#x27;age group&#x27;)ax.set_ylabel(&#x27;conversion rate (%)&#x27;)plt.show()در قطعه کد بالا، ابتدا مجموع نرخ تبدیل براساس شاخص‌های سن و وضعیت تأهل محاسبه و سپس بر تعداد کل مشتریان تقسیم شده است.با اجرای کد فوق، پایتون گراف ذیل را ایجاد می‌نماید:در گراف فوق، توزیع نرخ تبدیل بر اساس دو معیار سن و وضعیت تأهل قابل مشاهده است. به عنوان مثال نرخ تبدیل برای مشتریانی که 18 تا 30 سال سن دارند و وضعیت تأهل آن‌ها مجرد است برابر است با 13.25 و نرخ تبدیل برای مشتریان متاهل که 60 تا 70 سال سن دارند 30.11 درصد می‌باشد و بیانگر این است که این گروه پاسخ بهتری به اقدامات بازاریابی ارائه نموده‌اند.نوت بوک سورس کدهای این نوشته را از این لینک می توانید دانلود نمایید.</description>
                <category>مهدی بدریان</category>
                <author>مهدی بدریان</author>
                <pubDate>Tue, 22 Feb 2022 19:25:25 +0330</pubDate>
            </item>
                    <item>
                <title>کاربرد علم داده در پیش‌بینی کیفیت محصولات تولیدی</title>
                <link>https://virgool.io/@mbadriyan/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D8%B9%D9%84%D9%85-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D9%BE%DB%8C%D8%B4-%D8%A8%DB%8C%D9%86%DB%8C-%DA%A9%DB%8C%D9%81%DB%8C%D8%AA-%D9%85%D8%AD%D8%B5%D9%88%D9%84%D8%A7%D8%AA-%D8%AA%D9%88%D9%84%DB%8C%D8%AF%DB%8C-pk14p73hqltj</link>
                <description>یکی از دغدغه‌های مهندسین کیفیت و قابلیت اطمینان، حصول اطمینان از کیفیت محصولات تولیدی بر اساس تست‌هایی است که پس از پایان فرایند تولید بر روی محصولات انجام می‌گردد.در این پست سعی نموده‌ام با استفاده از تکنیک رگرسیون لجستیگ و اصول تنظیم (Regularization)، مدلی برای سهولت پیش‌بینی کیفیت محصولات ارائه نمایم. تکنیک‌های فوق با استفاده از زبان برنامه‌نویسی R پیاده‌سازی خواهند شد. در صورتی که علاقمند به پیاده‌سازی مدل ارائه شده هستید، نیاز می‌باشد که کتابخانه‌های ذیل را  نصب نمایید:library(ggplot2)library(data.table)library(magrittr)لازم به ذکر است که دیتاست مورد استفاده در این مطلب، از دوره‌ی یادگیری ماشین دانشگاه استنفورد الهام گرفته شده است. در صورت نیاز به آشنایی با مفاهیم رگرسیون لجستیک پیشنهاد می‌کنم مطالب ذکر شده در صفحه ذیل را مطالعه نمایید. https://datascienceplus.com/perform-logistic-regression-in-r/ فرض کنید مجموعه‌ی داده‌ای داریم که نتایج انجام دو تست مختلف و مستقل بر محصولات تولیدی در آن گزارش شده است. در مجموعه‌ی داده‌ی ذیل که بخشی از دیتاست مورد استفاده می‌باشد، ستون اول بیانگر اجرای نتایج تست 1 بر روی هر محصول تولیدی، ستون دوم بیانگر اجرای نتایج تست 2 بر روی هر محصول تولیدی و ستون سوم که به صورت یک متغیر باینر(صفر و یک) می‌باشد نشان می‌دهد که محصول در حین مصرف از کیفیت ماسنب برخودار می‌باشد یا خیر. عدد صفر بیانگر عدم پذیرش کیفیت و عدد یک بیانگر پذیرش کیفیت می‌باشد.شکل 1- نتایج تستبه منظور اجرای تحلیل‌ و آغاز مدلسازی برای داده‌های tidy، پیشنهاد می‌گردد که در مرحله‌ی اول دیتاهای موجود را plot نماییم تا درک بهتری از داده‌های موجود حاصل گردد.برای رسم نمودار Scatter Plot داده‌های نشان داده شده در شکل 1، کد نشان داده شده در شکل 2 را اجرا می‌نماییم تا خروجی شکل 3 حاصل گردد.شکل 2- کد رسم نمودارشکل 3- نمودار نتایج اجرای تست‌ها و کیفیت مشاهده شده در محصولاتهمان طور که از شواهد پیداست برای classify کردن دیتاها به دو دسته Failed  و Passed به معادله رگرسیون لجستیکی غیر خطی نیاز می‌باشد. غیر خطی بودن نیز همواره با مشکل Overfitting می‌باشد، لذا در این مواقع استفاده از Regularization برای حل این مشکل توصیه اکید می‌گردد.برای توسعه مدل مناسب، تمامی حالات متغییرهای Test1  و Test2 تا درجه 6 را ایجاد می نماییم و سپس با استفاده از Regularization تنها ویژگی‌هایی را در نظر می‌گیریم که تابع هزینه مدل رگرسیون لجستیک را مینیمم کنند.کدهای نشان داده شده در شکل 4 تمامی ویژگی‌ها تا توان 6 دو متغییر Test1 و Test2 را ایجاد می‌کند که نتایج آن در شکل 5 نشان داده شده است.شکل 4- کد ایجاد ویژگی‌هاشکل 5- نتایج اجرای تست ایجاد ویژگی‌هابرای توسعه‌ی مدل، کدهای نشان داده شده در شکل 7 را پیاده‌سازی می‌نماییم که نتایج آن در شکل 8 نشان داده شده است.شکل 7- پیاده‌سازی مدل رگرسیون لجستیک همراه با Regularizationشکل 8- نتایج مدلدر ستون fitted_result_label مقادیر خروجی مدل برای دیتاست نشان داده شده است. به عنوان مثال برای داده‌های ردیف سوم مقدار مشخص شده در ستون Label نشان دهنده‌ی این موضوع می‌باشد که محصول تولید شده از لحاظ کیفیت قابل قبول می‌باشد و نتایج مدل توسعه داد شده نیز نشان می دهد که محصول مورد نظر نیز از لحاظ کیفی قابل قبول می‌باشد.برای بررسی کیفیت مدل توسعه داده شده نیاز می‌باشد که شاخص‌هایی را محاسبه نماییم که بیانگر کیفیت مدل می‌باشند. کدهای مورد نیاز این شاخص‌ها در شکل 9 نشان داده شده است.شکل 9- کد پیاده‌سازی شاخص‌های بررسی کیفیت مدل پیاده‌سازی شدهشکل 10- نتایج شاخص هابا توجه به نتایج شاخص‌ها می توان این استنباط را نمود که مدل پیاده‌سازی شده از کیفیت مناسبی برخوردار است.در شکل 11، تابع رگرسیون برازش داده شده نشان داده شده است.بر اساس نتایج تست‌ها با استفاده از Decision boundary نشان داده شده، می‌توان برای محصولاتی که در آینده تولید خواهند شد در رابطه با کیفیت محصول تصمیم‌گیری نمود. نقاطی که بر اساس نتایج تست‌ها خارج از خطوط سبز واقع شوند به احتمال زیاد از کیفیت مناسب برخودار نخواهند بود.</description>
                <category>مهدی بدریان</category>
                <author>مهدی بدریان</author>
                <pubDate>Fri, 05 Feb 2021 22:02:59 +0330</pubDate>
            </item>
            </channel>
</rss>