سلام خدمت همه دوستان توی این مطلب قصد دارم موضوع داده کاوی رو از صفر تا صد آموزش بدم
سلام خدمت همه دوستان توی این مطلب قصد دارم موضوع داده کاوی رو از صفر تا صد آموزش بدم
موضوع : داده کاوی چیست و به چه دردی می خوره؟
توی اولین پست قصد داریم به یک سوال کلیدی جواب بدیم
داده کاوی چیست و به چه دردی می خوره؟
ما داریم توی عصری زندگی میکنیم که حجم داده های که به صورت روزنامه تولید میشه چندین Terabytes یا حتی چندین petabytes است. این داده ها توی انواع شبکه های کامپیوتری موجود در سراسر دنیا، توی وب، پایگاه های داده های نرم افزارهای مختلف که توسط کسب و کارهای زیادی توی دنیا دارن استفاده میشن (از حوزه پزشکی و بگیرید تا حوزه های مهندسی)
سوال اصلی که پیش می آد و شروعی میشه بر داده کاوی اینکه “این همه داده رو چطوری باید پردازش کنیم؟”. مسلما از عهده انسان پردازش این همه داده حجیم بر نمی آید. اینجاست که داده کاوی و تکنیک ها ای اون به کمک ما می آد تا بتونیم از دل این حجم بالای داده (Data) ، اطلاعات مفید (Information) رو استخراج کنیم.
پس میشه داده کاوی رو به طور خلاصه (غیر علمی) به صورت زیر تعریف کرد : داده کاوی شامل تکنیک ها و ابزارهای میشه که به ما کمک میکنه از حجم بالای داده ها ذخیره شده، اطلاعات سودمندی رو استخراج کنیم که استخراج اونا توسط انسان و تکنیک های ساده پردازش داده غیر ممکن است.
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
داده کاوی نتیجه بلوغ پایگاه داده ها
قبل از توضیح ارتباط بین پایگاه داده و داده کاوی، لازمه تا مفهوم پایگاه داده رو بدونیم: یک پایگاه داده در واقع یک ساختار برای نگهداری اطلاعات است. این ساختار به گونه ای طراحی شده که دسترسی، مدیریت و به روز رسانی اطلاعات در آن به راحتی انجام بشه.
در دهه 1960 و قبلترش، تمرکز در حوزه پایگاه داده ها معطوف به فایل های اولیه بود. و بیشتر فعالیت ها در حوزه پردازش، ذخیره سازی، بازیابی و به روز رسانی ساختارهای نگهداری داده در فایل های اولیه بود.
در دهه 1970 پایگاه داده ای شبکه ای و سلسله مراتبی به وجود آمد و بعدش پایگاه داده ای رابطه ای به وجو داومدند که در حال حاضر پرکاربرد ترین نوع پایگاه داده ها هستند. با توجه به اینکه پایگاه داده های رابطه ای از محبوبیت فوق العاده ای برخوردار بودند تلاش های زیادی در حوزه های مرتبط با آنها صورت گرفت. مهمترین این حوزه ها عبارتند از
متدهای دسترسی و ایندکس گذاری پایگاه داده
زبان های پرس و جوی اطلاعات ذخیره شده در پایگاه داده های رابطه ای که معروف ترین و پرکاربرد ترین اونا SQL است.
تلاش برای بهینه سازی پرس و جوها از اطلاعات ذخیره شده در پایگاه داده
گزارشات، فرم و رابط کاربری
پردازش های برخط از اطلاعات ذخیره شده در پایگاه داده
از اواسط دهه 1980 مدل های داده ای پیشرفته، مدیریت داده های پیچیده، پایگاه داده ای مبتنی بر وب، مدیریت داده های غیر قطعی و پاک سازی داده، یکپارچه سازی داده و … بسیار مورد توجه بود. در واقع این مفاهیم پیش نیاز های ظهور مفهوم داده کاوی و کشف دانش بود. (در مورد هر یک از این پیشنیاز ها بعدا مفصل صحبت میکنیم)
در اواخر دهه 1980 بود که کم کم مفهوم انباره داده، داده کاوی و کشف دانش به وجود آمد.
در نتیجه می توان تعریف جدیدی را برای پایگاه داده مطرح کرد. در واقع داده کاوی علمی است که با استفاده از اون داده های ذخیره شده در یک پایگاه داده رو تحلیل و پردازش می کنیم تا بتونیم ازش اطلاعات مفید رو استخراج کنیم. نکته مهم توی این تعریف اینه که داده کاوی ، ذخیره سازی داده رو در بر میگیره . در نتیجه ذخیره سازی بهینه داده می تونه یک عامل مهم در کشف دانش پنهان در اونها باشه. در نوشته های بعدی در مورد ارتباط بین ذخیره سازی داده ها ، نرمال سازی داده ها و … با تکنیک های داده کاوی بیشتر صحبت میکنیم.
توی این نوشته قصد داشتم شما رو با تاریخچه داده کاوی آشنا کنم، به طور خلاصه دیدیم که توسعه و پیشرفت در حوزه پایگاه های داده، منجر به شکلی گیری علم داده کاوی و کشف دانش شد.
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
گام اول داده کاوی : شناخت داده ها
هر چه شناخت ما از دادهها بیشتری باشه، خروجی داده کاوی مفیدتر و کاربردیتر خواهد بود.توی این مطلب و چند مطلب بعدی میخواهیم یکم در مورد دادهها و ویژگیهای اونا صحبت کنیم.
ابتدا لازمه تا انواع دادههای که ممکنه باهاش سروکار داشته باشید رو معرفی میکنیم
دادههای Nominal : مقادیری که این دادههای می گیرن شامل یک رنج میشه. مثلاً شغل فرد. مقادیری که داده میگیره میتونه معلم، پزشک، برنامه نویس، کشاورز و … باشه
دادههای Binary: این دادهها رو میشه یک زیر مجموعه از Nominal دونیت که مقداریش شامل دو حالت بیشتر نیست. مثلاً جنسیت می تونه مرد یا زن باشه. یا مثلاً سیگاری بودن فرد که می تونه بله/خیر باشه.
دادههای Ordinal: این دادههای هم یک حالت خاص از دادههای Nominal هستند. مهمترین تفاوت این دسته با Nominal اینکه، مقادیری که قبول میکنه دارای یک ترتیب هستند. یک نمونه از این موارد سطح تحصیلات فرد است (دیپلم، فوق دیپلم، کارشناسی، کارشناسی ارشد و دکتری)
بقیه انواع دادههای رو توی مطالب بعدی معرفی میکنیم.
یک سؤال مهم خوب دونستن اینکه دادههای توی این سه دسته قرار مگیرین چه مزیتی داره. قصد ندارم وارد بحثهای تخصصی بشم ولی وقتی ما بدونیم داده ما یکی از سه مورد بالا هست، باید حواسمونن باشه تعریف ویژگیهای مانند میانگین، میانه، مقدار کمینه (minimum)، مقدار بیشینه (maximum)، برای اونا بدون معنا است.
خوب این کجا به درد می خوره. بعضی از الگوریتمها داده کاوی نوع داده رو محدود میکنن به انواعی که بشه از اونا مثلاً میانگین و میانه و … گرفت. خوب اگر از یکی از داده های فوق توی اون الگوریتم ها استفاده کنیم ممکنه نتایج مطلوبی به همراه نداشته باشه
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
بررسی انواع داده Interval-Scaled/Ratio-Scaled و Discrete/Continuous (گسسته و پیوسته) در داده کاوی
در ادامه مطلب قبلی، به بررسی عنوان دادههای که در داده کاوی میپردازیم. در این مطلب دادهای Interval-Scaled/ Ratio-Scaledو Discrete/Continuous (گسسته و پیوسته) را معرفی میکنیم.
دادههای Interval-Scaled و Ratio-Scaled:
دادههای Interval-Scaled : در این نوع دادههای عددی، بین هر دو داده متوالی آن یک فاصله واحد یکسان وجود دارد، مقادیر این دادهها میتواند مثبت، منفی و صفر باشد. به عنوان مثال نمره کسب شده در یک آزمون تستی. فرض کنید هر سؤال درست سه نمره مثبت دارد و هر سؤال منفی یک نمره منفی دارد. در این صورت نمره کسب شده میتواند مثبت، 0 یا منفی باشد. دادههای Interval-Scaled دارای ترتیب میباشند و فاصله هر دو داده متوالی با یک دیگر برابر است.
دادههای Ratio-Scaled: این دادههای دارای یک مبدأ 0 هستند و محدوده آنها میتواند صفر و یا مثبت باشد. به عنوان مثال سابقه کاری افراد را یک داده Ratio-Scaled است. هر فرد یا سابقه کاری ندارد (0 سال) و یا بیشتر (1 سال، 2 سال و …).
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
پیش پردازش داده ها Data Preprocessing
پیش پردازش داده ها (Data Preprocessing) اولین گام در داده کاوی می باشد و یکی از گام های مهم آن نیز به شمار می آید.
شاید اولین سوالی که پیش بیایید این است که پیش پردازش داده ها به چه دردی می خوره؟
داده های که امروز در پایگاه داده های مختلف نگهداری می شن معولا سه تا نقض بزرگ دارن : 1- بعضی داده ها noisy هستن، بعضی از مقادیر داده ها وجود نداره (missing)، و بعضی موارد هم ناسازگاری بین داده ها وجود داره.. این نقایص توی داده های حجم بسیار بیشتر است و به همین خاطر توجه به آنها بسیار مهم است.
همانطور که بیان داده های نامناسب خروجی های داده کاوی نیز غیر مفید خواهند کرد. به همین خاطر ما تو پیش پردازش سعی میکنیم 1- داده های noisy و missing و ناسازگار رو شناسایی کنیم 2- و به بهترین شیوه ممکن این نقایض رو رفع کنیم. تا بتوانیم خروجی های مطلوبی از داده کاوی، داده های داشته باشیم.
مهمترین تکنیک های پیش پردازش داده ها عبارتند از
تکنیکهای پاکسازی داده یا Data cleaning: که هدف اونها از بین برده دادههای noisy و ناسازگاریهای بین داده ها است.
تکنیکهای پاکسازی داده Data integration: از آنجایی که ممکن است دادهها از منابع مختلفی جمع آوری شده باشند، نیاز به یکپارچگی بین آنها است.
تکنیکهای کاهش داده Data reduction: توی حجم بالای داده ممکن است بعضی از دادههای غیر مفید هم وجود داشته باشه و نیاز نباشه همه دادهها توی پردازش نهایی باشن، تکنیکهای Data reduction اینجا کاربرد دارن
تکنیکهای Data transformations: این الگوریتم هیا بیشتر زمانی به درد میخورند که قصد داشته باشیم نرمال سازی های رو روی دادهها انجام بدیم
تا اینجا فک کنم برای شروع پیش پردازش داده ها کافی باشه توی مطالب بعدی تک تک مفاهیم بیان شده در بالا رو توضیح میدیم به همراه مثالهای متنوع.
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نمونه کاربردی از داده کاوی در افزایش فروش محصول
در این مطلب یک نمونه واقعی از کاربرد داده کاوی در افزایش فروش محصول رو توی یک سوپر مارکت بررسی میکنیم.
در یک نمونه کاربردی داده کاوی، داده های ذخیره شده در حوزه فروش محصولات یک سوپر مارکت مورد بررسی و تحلیل قرار گرفت و مشخص شد که ارتباط معناداری بین فروش نوشیدنی ها الکلی و پوشک بچه وجود دارد. یک نکته توی پرانتز بگم، “ارتباط معنا دار” یکی از اون کلماتی است که در تحلیل نتایج داده کاوی باهاش خیلی بخورد می کنیم. ارتباط معنا دار توی این مورد به این معنا است که، از بین مشتریانی که مشروبات الکلی می خریده، تعداد قابل توجهی پوشک هم می خریدن.
با بررسی دقیقتر نتایج مشخص شد که این اتفاق نتیجه قرار گیری تصادفی این دو محصول کنار یکدیگر است. این قرارگیری تصادفی بدون داشتن هیچ دانش قبلی از رفتار خرید مشتریان و کاملاً تصادفی بوده.
تحلیل نتایج داده کاوی مشخص کرده بود که، پدرانی که فرزند دارند و آخر شب برای خرید پوشک میآیند، وقتی که مشروبات الکی رو کنار پوشک میدیدند ترغیب میشدند که اون رو هم بخرن. با بررسی بیشتر دادههای این سوپر مارکت الگوهای موثر دیگری نیز از رفتار خرید مشتریان به دست اومده که فعلاً به همین مقدار بسنده میکنیم. بعدها به این مثال بر میگردیم. این نمونه اولین نمونه ما از استفاده داده کاوی در افزایش فروش محصول بود.
خروجی داده کاوی برای این سوپر مارکت در نهایت چی شد؟
شناسایی رفتار خرید مشتریان
(یک جوری نتیجه مورد اول هستش و مهمتر از اون) ارائه یک چینش بهینه از کالاها و محصولات فروشگاه در جهت افزایش فروش (استفاده از داده کاوی در افزایش فروش محصول)
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کاربرد داده کاوی در حوزه سلامت
در این مطلب به کاربرد داده کاوی در حوزه سلامت می پردازیم. داده کاوی در بخش های مختلفی از حوزه سلامت می تواند کاربرد داشته باشد. در این مطلب تنها به یکی از آنها اشاره می کنیم.
زمانی که یک بیمار به پزشک مراجعه میکند، اطلاعات زیر میتواند به تشخیص بهتر درمان کمک کند:
اطلاعاتی که بیمار خودش در اختیار پزشک قرار میدهد. این اطلاعات معمولاً توسط خود بیمارا ارائه میشود و از مهمترین منابع برای تشخیص بیماری است.
سابقه بیمار: یکی دیگر از منابعی که میتواند به پزشک برای تشخیص بهتر بیماری، کمک کند، “سابقه پزشکی” فرد است. هر چه اطلاعات مربوط به سابقه پزشکی کاملتر باشد، مسلماً پزشک میتواند با اطمینان بیشتری بیماری را تشخیص دهد.
سابقه بیمارانی که شرایط بیمار فعلی را دارند نیز میتواند به عنوان یک منبع اطلاعاتی مهم برای درمان بیمار به کار گرفته شود.
با توجه به مطالب بیان شده در بالا، هر چه میزان اطلاعات پزشک بیشتر باشد تشخیص صحیح بیماری با اطمینان بالاتر انجام میشود. نکته مهمی که در این باید به آن توجه داشت این است که هر چه میزان دادهها بیشتر باشد نتیجه بهتری میگیریم، اما اگر این دادهها بسیار زیاد باشد، بررسی و نتیجه گیری بر اساس آنها از عهده یک نفر بر نمیآید. این نقطه دقیقاً محل ورود داده کاوی به حوزه سلامت است.
امروز بسیاری از بیمارستانهای پیشرفته دنیا، با استفاده از تکنیکها و ابزارهای داده کاوی، حجم بالای از دادههای پزشکی را تحلیل و بررسی میکنند. خروجی داده کاوی میتواند منجر به تجویز و ارائه بهترین راه برای بهبودی بیمار شود.
داده کاوی در حوزه سلامت محدود به مثال بالا نمی شود و نمونه ها و تحقیقات زیاد در این زمینه انجام شده است که در مطالب بعدی نمونه های از آنها را با جزییات بیشتری بررسی می کنیم.
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کاربرد داده کاوی در تشخیص تخلفات قانونی
یکی از مهمترین کارکردها داده کاوی در فعالیت های قانونی، کمک به اجرای دقیق قانون است. ابتدا یک تعریف از داده کاوی ارائه میدیم که تعریف قبلی رو کمی کاملتر می کنه. داده کاوی ابزاری است که به ما کمک میکند تا اطلاعات (Information) را از دادهها(Data) استخراج کنیم. ما به این فرایند می گیم کشف دانش (knowledge discovery). کشف دانش به کمک ما کمک میکند تا الگوهای مناسب رو از دل دادههای با حجم بالا استخراج کنیم.
بازرسانی که در حوزه کشف تخلفات قانونی کار میکنند، معمولاً حجم بالایی از اطلاعات رو مورد بررسی قرار میدهند که شامل 1) دادههای موجود در سازمانها که مورد بررسی قرار میگیرند، 2) تجربیات و دانشی که خود بازرس دارد و 3) پروندههای که قبلاً برسی کردهاند و سایر منابع دادهای. هر چه میزان این دادهها بیشتر باشد تجربه فرد کاملتر میشود و میتواند تخلفات را راحت تر شناسایی کند.
اگر بخواهیم با استفاده از تعریف بالا، پاراگراف قبلی رو ترجمه میکنیم می شه: معمولاً بازرسان با توجه به دانشی که دارند یک سری الگو مهم را برای خود تببین میکنند که میتواند به عنوان راهنما برای شناسایی تخلفات به کار گرفته شوند. به عبارت دیگر وقتی شواهد نشان دهد که فرایندهای یک سازمان با الگوهای تخلفات تبیین شده توسط بازرس همخوانی دارد، میتواند نشان دهنده شرایطی باشد که احتمالاً تخلفی رخ خواهد داد.
وقتی حجم دادهها بالا برود تحلیل و بررسی آنها و کشف الگوها، کمی زمانبر و سخت میشود. داده کاوی میتواند در این زمینه به افراد بازرسان در تبیین الگوها دقیقتر و مطمئنتر کمک کند.
کارکردهای دیگر داده کاوی در تشخیص تخلفات قانونی، به شرح زیر است
1- با جمع آوری داده های بازرسان در حوزههای مختلف ، میتوان سازمانها را بر اساس اینکه کدام نوع تخلفات در آنها شایعتر است دسته بندی کند.
2- داده کاوی میتواند پیش بینی را در مورد تخلفات آتی بعضی از سازمانها ارائه دهد. به عنوان مثال اگر ما یک الگو کشف کرده باشیم و فعالیتهای یک سازمان با آن الگو منطبق است میتواند سایر فعالیتهای که احتمالاً آن سازمان انجام خواهد داد را بر اساس الگوی کشف شده، تشخیص دهیم.
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
هدف پیش پردازش داده (Data Preprocessing) ایجاد داده های کامل، سازگار و دقیق
هدف پیش پردازش داده این است که بتوانیم داده های دقیق ( accuracy )، کامل ( completeness ) و سازگار ( consistency ) برای انجام داده کاوی داشته باشیم. همانطور که تا کنون چندین بار اشاره کردیم، داده کاوی بسیار به مناسب بودن داده ای که برای پردازش به ما داده میشود وابسته است. هر چه داده ها دقیق تر، سازگارتر و کامل تر باشند نتایج حاصل از داده کاوی نیز به همان اندازه مفیدتر و سودمندتر خواهند بود.
ما گفتیم داده ها باید دقیق ، کامل و سازگار باشند. ابن به چه معناست. با یک مثال این سه واژه رو توضیح میدیم. فرض کنید داده های یک شرکت فروش قطعات الکترونیکی رو به ما دادن تا داده کاوی انجام بدیم. فرض میکنیم اهداف انجام داده کاوی، توسط مدیران شرکت مشخص شده است. حالا داده های شرکت می خواهیم یک نگاهی بندازیم. خوب توی این داده ها چه معایب و نقایصی رو ممکن است بهش بخوریم (برای هر نمونه برای مشخص شده هدف پیش پردازش داده مثال های بیان شده است):
داده های ناقص (incomplete) : مثال های از داده های ناقص
عدم وجود مقدار برای یکی از داده های که به آن نیاز داریم : فرض کنید برای داده کاوی ما به نام محصول، قیمت و تعداد محصول فروش رفته از هر محصول نیاز داریم، اولین مشکلی که ممکن است با آن برخورد کنیم آن است، در بعضی موارد اطلاعات یکی از سه قلم ذکر شده ثبت نشده باشه. این خودش یک نوع داده ناقص است.
داده ای که به آن نیاز داریم ولی اصلا ذخیره نشده است : فرض کنید در یک گام داده کاوی نیاز داشته باشید بدانید که آیا برای یک محصول خاص تبلیغیات تلویزیونی انجام شده است یا خیر. مشکلی که ممکن است اینجا رخ بدهد این است که، اصلاً همچنین دادهای ثبت نشده است. (تفاوت با بالایی این است که آنجا ممکن در بعضی از موارد مثلا نام کالا ثبت نشده باشد، در این مثال اصلا همچین داده ای ذخیره نشده است)
داده غیر دقیق (inaccurate or noisy): مثال های از داده های غیر دقیق
خطاها در دادههای وارد شده: کاربر به جای قیمت، تعداد کالا را وارد کرده باشه. یا اینکه مقدار منفی برای تعداد کالای فروخته شده وارد کرده باشد (بر خلاف داده های ناقص در داده های غیر دقیق، مقدار وجود دارد ولی نادرست است)
داده ناسازگار (inconsistent) : مثال های از داده های ناسازگار
در یک کاربر کد کالای خازن را 1005 وارد کرده و یک کاربر دیگر کد 1008 را برای خازن وارد کرده است.
یک کاربر سوییچ را با دو تا “ی” وارد کرده است و یک سوئیچ را با یک “ئ” و یک “ی” وارد کرده است.
برای اینکه ما بتونیم داده کاوی رو بخوبی انجام بدیم باید بتونیم این داده های ناقص، ناسازگار و غیر دقیق رو تبدیل کنیم به داده های دقیق، سازگار و کامل. در مطالب بعدی این موارد رو به صورت کامل به همراه تکنیک های اون بررسی میکنیم. به عبارت دیگر هدف پیش پردازش داده داشتن داده های بدون مشکل است.
منبع
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)