مطالب
الگوریتم‌های داده کاوی در SQL Server Data Tools یا SSDT - قسمت پنجم - الگوریتم‌ Association Rules

از این الگوریتم بیشتر جهت تحلیل سبد خرید یا چیزی شبیه به آن استفاده می‌شود. مشتری در هر خرید، الگویی را تولید می‌کند. این الگو نشان دهنده این است که معمولا کدام کالاها با یکدیگر خریداری می‌شوند.


مقدمه

خودتان را جای مدیر یک سوپرمارکت بگذارید. یکی از وظایف شما فروش بالاتر نسبت به بقیه مدیران یک سوپرمارکت زنجیره ای است. برای نیل به این هدف، درک الگوی خرید مشتریان بسیار حایز اهمیت است. فرض کنید متوجه شده‌اید که مشتریان شما در 75 درصد موارد سس، هات داگ و ترشی را با هم خریده‌اند. بنابراین چیدن قفسه به طوری که این اقلام کنار یکدیگر باشند، بهتر است. همچنین می‌توانید پکیجی را شامل این اقلام ایجاد کرده و با درصد تخفیف مناسبی به‌فروش برسانید؛ برای مثال یک ترشی را که تازه به بازار آمده و هنوز اقبال عمومی در رابطه با آن وجود ندارد، اما سود خوبی در فروش آن نصیب شما می‌شود، در این پکیج و در کنار هات داگ و سس معروفی قرار داده و بفروش برسانید.


نحوه عملکرد الگوریتم

این الگوریتم، براساس شمارش ترکیبات تکرارشونده‌ی حالات گوناگون ویژگی‌های یک مدل، کار می‌کند. این الگوریتم شبیه به الگوریتم Naïve Bayes می‌باشد؛ با این تفاوت که دارای رویکرد کمی است (براساس عدد خامی از وقوع ترکیبات حالات یک ویژگی) و رویکرد کیفی ندارد (محاسبه تمامی احتمالات شرطی، آنچه که در الگوریتم Naïve Bayes اتفاق می‌افتاد). همچنین در اینجا ماتریس ضرایبی محاسبه نمی‌شود، بلکه تنها ضرایب قابل توجه، نگهداری می‌شوند.


تفسیر مدل

این الگوریتم، پس از پردازش، سه تب دارد.


تب Itemsets تعداد تکرار مجموعه اقلام کشف شده را نشان می‌دهد. مقدار پارامتر Minimum_Support اگر خیلی پایین در نظر گرفته شود، آنگاه لیست طولانی را ایجاد می‌کند. با استفاده از Filter Item Set می‌توان Item Set‌های موردنظر را فیلتر نمود. برای مثال می‌توان چنین Item Set ای را در نظر گرفت Gender=Male.

تب Rules نشان دهنده قوانین وابستگی کاربردی و ارزشمندی می‌باشد که به همراه احتمال و درجه اهمیتشان در یک جدول آورده شده‌اند. درجه اهمیت (Importance) نشان دهنده میزان سودمندی یک قانون است و هرچه بیشتر باشد، قانون متناظر آن درجه کیفی بالاتری دارد. به عبارت دیگر بیشتر می‌توان روی آن قانون حساب کرد. توسط پارامترهای Minimum_Probability و Minimum_Importance به ترتیب می‌توان لیست مزبور را براساس مینیمم احتمال و مینیمم درجه اهمیت فیلتر کرد.

تب Network Dependency، هر آیتم و قانون، وابستگی بین آن‌ها را نشان می‌دهد.


نکته آخر: در یک مدل وابستگی، اگر ستونی به عنوان ورودی در نظر گرفته شود، مقادیرش فقط می‌توانند در itemset‌های تکرار شونده و درسمت چپ قوانین وابستگی قرار بگیرند. اگر ستونی به عنوان خروجی درنظر گرفته شود، حالات مختلف آن ستون می‌توانند در itemset‌های تکرار شونده و در سمت راست قوانین وابستگی قرار بگیرند. اگر ستونی به عنوان ورودی-خروجی در نظر گرفته شود، آنگاه حالات مختلف آن ستون می‌توانند در itemset‌های تکرار شونده و در سمت چپ و هم راست قوانین وابستگی قرار بگیرند.  

مطالب
خلاصه اشتراک‌های روز سه شنبه 17 آبان 1390
مطالب
خلاصه اشتراک‌های روز جمعه 1390/07/01
نظرات نظرسنجی‌ها
آیا «بازی» هم می‌نویسید؟
با تشکر از این نظر سنجی 
برای دوستانی که علاقه به بازی سازی دارن این مطلبو میزارم...
همانطور که میدونید بازیهای روز از گرافیک فوق العاده ای برخورداره و مشخصه که این بازیهارو فقط با برنامه نویسی نمیشه ساخت. 
نیازهایی نرم افزاری که برای ساخت یک بازی باید در نظر گرفت:
1-استفاده از 3d-max یا maya برای ساختن کارکترها و متریالها
2-استفاده از موتورهای بازی سازی مانند  unity game engine یا unrealengine هر دوی این موتورها از C# پشتیبانی می‌کنند و منابع آموزشی خوبی دارن. دوستان مایه داری که هزینه براشون مهم نیست میتونن از آنرییل انجین استفاده کنند و دوستانی که مانند من از نرم افزارهای رایگان یا ک.ر.ک استفاده می‌کنن یونیتی بهترین گزینه هست(با نرم افزارهای تغییر آی پی وارد سایت یونیتی بشید)
3-سی شارپ یا سی پلاس در حد متوسط 
همچنین نیاز هست تا حدودی به هوش مصنوعی و تکنیک‌های درآمد زایی از طریق بازی سازی آگاه بود.(باید بدونید این بازی که میسازید قراره فقط از فروش خود بازی کسب درآمد کنه یا رایگان باشه و  پرداختهای درون برنامه ای داشته باشه مانند اغلب بازیهای اندروید)
نکته: توسط موتورهای بازی سازی می‌توانید خروجی سازگار برای اندروید، آی او اس ، رایانه  و... داشته باشید .

نظرات مطالب
EF Code First #12
فرض کنید که بخواهیم در این مثال این کارها رو انجام بدیم:
  1. در یک صفحه لیست کالاها و دسته بندی اونها رو نشون بدیم.
  2. کاربر قادر باشه در همون صفحه مشخصات یک کالا شامل گروه کالا یا نام کالا رو ویرایش کنه.
در این حالت برای ویرایش آیا بایستی از همون وهله DbContext که جهت گرفتن لیست کالاها استفاده شده، استفاده بشه؟ یا برای ویرایش بایستی یک وهله جدید DbContext ساخته بشه؟
نظرات مطالب
وی‍‍ژگی های پیشرفته ی AutoMapper - قسمت دوم
ممنون از راهنماییتون . 
یک سوال دیگه هم برام پیش اومد: اگه نحوه ارتباط کلاس‌ها به صورت زیر باشه:
 public class Kala
    {
        [Key]
        public int Kala_id { get; set; }
        
        [DisplayName("نام کالا")]
        public string Name { get; set; }

        [DisplayName("قیمت خرید")]
        public double Fee_Kharid { get; set; }
     
        public virtual Brand Brand { get; set; }
        
        public ICollection<Anbar_Kala> Anbar_Kalas { get; set; }
    }

 public class Anbar_Kala
    {
        [ForeignKey("Anbar_Id")]
        public virtual Anbar Anbar { get; set; }
        public int Anbar_Id { get; set; }

        [ForeignKey("Kala_Id")]
        public virtual Kala Kala{ get; set; }
        public int Kala_Id { get; set; }

        [DisplayName("تعداد")]
        public int Tedad { get; set; } //تعداد کالاها در هر انبار
    }

public class KalaViewModel 
    {
        public int Kala_Id { get; set; }
        public string  Name { get; set; }
        public double Fee_Kharid { get; set; }
        public string Brand_Name { get; set; }
        public int Tedad { get; set; }
    }

//controller
        var kala = _Kala_Service.GetAllKalas();
        var tedad= _Anbar_Kala_Service.GetAllAnbar_Kalas();

        var kalaviewmodel = EntityMapper.Map<List<KalaViewModel>>(kala, tedad);


protected override void Configure()
        {
        Mapper.CreateMap<Kala, KalaViewModel>()
       .ForMember(des => des.Brand_Name, op => op.MapFrom(src => src.Brand.Brand_Name));
              
       Mapper.CreateMap<Anbar_Kala, KalaViewModel>(); // این نگاشت باید به چه صورتی باشد؟
      .ForMember(des =>des.Kala_Id, op=>op.Ignore();     
        }
تو شرایط فوق که نحوه ارتباط کلاس‌ها به صورت عکس حالت قبله، اگر به صورت بالا نگاشت صورت بگیره، قبل از نگاشت پراپرتی‌ها نال نیستند ولی بعد از نگاشت باز هم پارامترهای مربوط به کلاس کالا که در  Modelview قرار دارند Null میشوند.
اشتراک‌ها
دانشمند داده بهترین شغل ۲۰۱۷ آمریکا

سایت معتبر کاریابی Glassdoor  اخیراً فهرستی ۵۰ تایی از بهترین شغل‌های آمریکا در سال ۲۰۱۷ منتشر کرده است که اولین شغل با بهترین حقوق و مزایادر این فهرست، دانشمند داده یا همان Data Scientist بوده است.
 

دانشمند داده بهترین شغل ۲۰۱۷ آمریکا
پاسخ به بازخورد‌های پروژه‌ها
راهنمایی در مورد سفارش و جزییات سفارش و اتصال به درگاه بانک
یعنی به ازای هر بار که کاربر به درگاه متصل میشه یک سفارش جدید با وضعیت در انتظار تایید و همینطور جزییات سفارش در جدول مربوطه ثبت میشه و اگر پرداخت موفقیت امیز نباشه و دوباره یک زمان دیگه ای بخواد همون سبد خرید جاری اش رو پرداخت کنه یک سفارش و جزییات سفارش دیگه براش ثبت میشه و اون شناسه جدید سفارش به درگاه ارسال میشه و زمانی هم که پرداختش با موفقیت امیز انجام میشه وضعیت سفارش به روز شده و سبد خرید کاربر از جدول سبد خرید حذف میشه؟