انجام پروژه های داده کاوی

انجام پروژه های داده کاوی

انجام پروژه های داده کاوی

انجام پروژه های داده کاوی

گروه‌های دوستان در شبکه‌ی اجتماعی برای نیاز به تعری

  گروه‌های دوستان در شبکه‌ی اجتماعی برای نیاز به تعریف و توضیح ندارد. چیزی شبیه به همان «حلقه‌های» و یا لیست دوستان در فیسبوک و توئیتر که به شما در سازمان‌دهی روابط خود با افراد در شبکه‌های اجتماعی کمک می‌کنند. این حلقه‌ها ممکن است کاملا جدا از هم باشند، و یا این که با هم هم‌پوشانی داشته باشند، و یا حتی به صورت تو در تو و سلسله مراتبی با هم ارتباط داشته باشند.
هدف از این پروژه بدست آوردن خودکار حلقه‌های دوستان در شبکه اجتماعی است. در واقع شما لیستی از کاربران در شبکه اجتماعی را به عنوان ورودی در اختیار خواهید گرفت، و با روش و الگوریتمی که در طول پروژه توسعه می‌دهید، برای هر کدام از این کاربران حلقه‌‌ای از دوستان احتمالی در شبکه اجتماعی را پیدا می‌کنید.
برای اطلاعات بیشتر و دریافت مجموعه داده به این صفحه مراجعه کنید.
۱. مقدمه

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com



امروزه شبکه های اجتماعی ما بسیار گسترده و بهم ریخته شده اند و درحال حاضر هیچ راه مناسبی برای مدیریت و دسته بندی آن ها وجود ندارد. البته بعضی از شبکه های اجتماعی به کاربران این امکان را داده اند تا خودشان دوستانشان را در حلقه های اجتماعی ( مانند حلقه ها در google+ و لیست دوستان در facebook و twitter ) دسته بندی کنند. بهرحال این روش راهی مناسب به نظر نمی رسد چرا که با اضافه شدن افراد دیگر به دوستان باید این حلقه ها توسط کاربران بروزرسانی گردند.
پس ما به دنبال طراحی سیستمی هستیم که قابلیت یادگیری و شناسایی افراد را داشته باشد و بتواند به صورت خودکار حلقه های اجتماعی را تشکیل داده و آن ها را بروز رسانی کند.
در این پروژه ما اطلاعات یک شخص و دوستان وی در یک شبکه اجتماعی را داریم و هدف ما پیدا کردن حلقه های اجتماعی شخص مورد نظر است که هر حلقه زیر مجموعه ای از دوستان شخص می باشد.
همان طور که در شکل زیر مشاهده می شود شخص با u و دوستان وی با v مشخص گردیده اند و هدف ما پیدا کردن حلقه های نمایش داده شده است.
an ego-network with labled circles
an ego-network with labled circles
۱.۱. شرح مسئله

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


در این پروژه قصد داریم به بررسی روش های گفته شده در کارهای مرتبط بر روی دیتاست های مختلف بپردازیم و دقتشان را با یکدیگر مقایسه کنیم.
خروجی کار در انتها نموداری برای سنجش میزان دقت و سرعت روش های مختلف مطرح شده می باشد.
۲. کارهای مرتبط
۲.۱. Clustering

در روش خوشه بندی یا clustering مدلی برای ایجاد حلقه ها با ویژگی های زیر تعریف می شود:

    راس هایی که در یک حلقه قرار دارند باید ویژگی ها یا جنبه های یکسانی داشته باشند
    حلقه های مختلف باید براساس ویژگی های متفاوتی شکل گرفته باشند مثلا حلقه ی خانوادگی یا حلقه ی افراد یک دانشگاه
    حلقه ها می توانند با یکدیگر تداخل داشته باشند و همچنین حلقه های قوی تر نیز میتوانند داخل حلقه های ضعیف تر شکل بگیرند

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


ورودی این مدل برای هر کاربر مجوعه V که رئوس متصل به u ( کاربر مورد نظر ) و مجموعه E که شامل تمام یال هایی می باشد که میان مجموعه V وجود دارد به همراه پروفایل تمام اعضای مجموعه V است.
هدف این روش پیش بینی کردن مجموعه نهایی C ( حلقه های کاربر ) میباشد

و همچنین مشخص کردن پارامتر
θk\theta_kθk

که نمایش دهنده این می باشد که حلقه بر اساس چه ویژگی یا جنبه هایی تشکیل شده است.
همچنین از پارامتر
ϕ(x,y)\phi(x,y)ϕ(x,y)

به عنوان نمایش دادن میزان شباهت پروفایل دو کاربر x و y استفاده شده است.
در قدم اول ابتدا هر یک از رئوس گراف را یک خوشه در نظر میگیریم و سپس از فرمولی که در زیر آمده برای تشخیص اینکه آیا دو خوشه میتوانند با هم ترکیب شوند و یا خیر استفاده میشود. این روش را تا جایی که مجموعه C تغییری نکند انجام میدهیم.
p((x,y)∈E)∝exp{∑Ck⊇{x,y}⟨ϕ(x,y),θk⟩−∑Ck⊉{x,y}αk⟨ϕ(x,y),θk⟩}p((x,y) \in E) \propto exp \Bigg\{ \sum_{C_k \supseteq \{x,y\}}\langle \phi(x,y) , \theta_k \rangle – \sum_{C_k \nsupseteq \{x,y\}}\alpha_k \langle \phi(x,y) , \theta_k \rangle \Bigg\}p((x,y)∈E)∝exp{∑Ck⊇{x,y}⟨ϕ(x,y),θk⟩−∑Ck⊉{x,y}αk⟨ϕ(x,y),θk⟩}

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


که سیگمای اول شامل تمام حلقه هایی است که هر دو راس در آن ها قرار میگیرند و سیگمای دوم بقیه ی حلقه ها را شامل می شود.
در این فرمول مقدار
αk\alpha_kαk

ضریب تناسبی برای متعادل کردن مقدار سیگما ها می باشد.
ایده این فرمول آن است که اگر مقدار پارامتر
⟨ϕ(x,y),θk⟩\langle \phi(x,y) , \theta_k \rangle⟨ϕ(x,y),θk⟩

که نمایش دهنده میزان شباهت دو راس با یکدیگر بر اساس ویژگی مورد نظر می باشد بالا باشد یعنی هر دو راس متعلق به یک خوشه می باشند و اگر پایین باشد یعنی متعلق به خوشه ی مورد نظر نیستند[۱].
۲.۲. Infomap

در روش infomap با استفاده از روش خوشه بندی با این تفاوت نسبت به روش قبل که می تواند بر روی گراف های جهت دار و وزن دار نیز اعمال شود دو الگوریتم برای خوشه بندی داده ها ارائه می شود که به طور مختصر به شرح آن ها می پردازیم[۲].

    الگوریتم Two-level clustering
    هسته کاری این الگوریتم خوشه بندی براساس map equation است و ابتدا هر یک از راس های گراف را یک خوشه درنظر می گیرد و در هر مرحله هرکدام از خوشه ها که شباهت زیادی با یکدیگر دارند ادغام می کند.

    این روش از این نظر مناسب نیست که هر گاه دو خوشه با یکدیگر ترکیب شوند یک خوشه ی جدید به وجود می آید و اثری از خوشه های قبلی دیگر نیست و ممکن است که اگر خوشه های قبلی با خوشه های دیگری در مراحل بعد ترکیب شوند به جواب بهتر و دارای دقت بالاتری دست پیدا کنیم[۲].

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com

    برای رفع این مشکل دو متد زیر در نظر گرفته شده است:
    ۱٫ متد Submodule movements
    این متد به ما قابلیت تجزیه ی یک خوشه به زیر خوشه هایش که در مرحله قبل تشکیل شده اند را می دهد.
    ۲٫ متد Single-node movements
    این متد به ما قابلیت تجزیه ی خوشه و جدا کردن یک راس و درنظر گرفتن راس به عنوان خوشه ی مستقل را می دهد.
    الگوریتم Multi-level clustering
    این الگوریتم مدل کامل تری از الگوریتم قبل بوده و متد هایی که در این الگوریتم تعریف می شوند می توانند به جای تجزیه ی خوشه به یک مرحله قبل خوشه را به مقدار دلخواه تجزیه کنند.

توسط این دو متد می توان در هر مرحله و هر جا که یک خوشه ترکیب شد چک کنیم که آیا بهترین ترکیب برای خوشه بندی را انتخاب کرده ایم و یا خیر!
۲.۳. Martelot

روش Le Martelot نیز همانند روش های پیشین از الگوریتم های خوشه بندی اطلاعات استفاده می کند و قابل اجرا بر روی گراف های جهت دار و وزن دار می باشد.
در این روش با استفاده از [۴]Newman’s modularity که فرمولی برای محاسبه میزان تفاوت های یک راس یا یک خوشه با دیگر خوشه ها می باشد به خوشه بندی اطلاعات می پردازیم.
این فرمول خوشه بندی برای حل مسئله ی تشخیص گروه ها مناسب نیست چرا که در شناسایی گروه های کوچک و متداخل ضعیف عمل می کند.
برای حل این مشکل در روش Martelot ضرایب مختلفی به میزان متفاوت بودن خوشه ها با یکدیگر در ماژولاریتی داده می شود و الگوریتم خوشه بندی را چندین بار اجرا می کند و خوشه بندی بهینه را انتخاب میکند [۵].
۲.۴. Louvain

متد Louvain یک متد نسبتا سریع برای پیدا کردن گروه ها در شبکه های بزرگ است.
در این متد با استفاده از روش های حریصانه بر روی ماژولاریتی [۴] آن را بهینه کرده و به خوشه بندی راس های گراف می پردازد.
این بهینه سازی در ۲ مرحله انجام می شود:

    با بهینه سازی محلی متد به دنبال گروه های کوچک میگردد.
    سپس با ادغام گروه های کوچک که توانایی ایجاد گروه های بزرگتر را دارند خوشه بندی را ادامه می دهد.

این مراحل را مرتبا تکرار می شود تا به مقدار ماکزیمم ماژولاریتی برسیم [۶].
Louvain two greedy optimization steps
Louvain two greedy optimization steps
۲.۵. Combo

الگوریتم های جستجوی موجود برای تشخیص گروه های شبکه های اجتماعی براساس یک یا چند روش زیر کار می کنند:

    ادغام : ادغام و ترکیب دو جامعه مشابه
    تقسیم : تقسیم و تجزیه ی دو جامعه ی متفاوت
    نوترکیبی : انتقال و حرکت کردن یک راس بین دو جامعه ی مجزا

الگوریتم combo با بهره گیری از هر ۳ روش بالا به حل مساله تشخیص گروه های اجتماعی می پردازد که روش انجام کار این الگوریتم را توضیح می دهیم.
پس از انتخاب شدن یک حالت اولیه از یک شبکه اجتماعی موجود ( منظور از حالت اولیه ،جوامع موجود در ابتدای برنامه است که می توانند هر جوامع تصادفی انتخاب شوند و یا در ابتدای کار تمام شبکه یک جامعه در نظر گرفته شود و در مراحل بعدی تقسیم شود و یا هر کدام از رئوس یک جامعه جدا در نظر گرفته شوند و در مراحل بعد ادغام گردند ) مراحل زیر تا زمانی که تابع هدف به امتیاز بالا و نتایج مطلوب دست پیدا کند انجام می شود[۳]:

    برای هر جامعه بهترین توزیع مجدد ممکن برای تمام رئوس به جامعه ی مقصد آن ها ( اگر جامعه ی مقصد موجود نباشد جامعه جدید ایجاد می گردد ) محاسبه می شود. به زبان ساده تر در این مرحله وضعیت یک جامعه بررسی می شود که آیا جامعه مشخص شده مستقل از بقیه ی جوامع موجود است یا نیاز دارد که تغییرات روی آن صورت بگیرد[۳].
    در این مرحله اگر جامعه نیاز به تغییر داشته باشد بهترین عمل ادغام/تقسیم/نوترکیبی انتخاب شده و اعمال می شود[۳].

۳. آزمایش و نتایج
۳.۱. Data Set

مجموع دادگان ورودی این مساله یک گراف شبکه است که به صورت های مختلف می تواند تعریف شود.

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


    فرمت Link list
    این نوع ورودی دارای N خط می باشد که به تعداد یال های گراف شبکه است و در هر خط هر یال به صورت
    source target weight
    تعریف می شود. که source و target رئوس مبدا و مقصد را مشخص می کنند و weight نیز نمایش دهنده وزن یال است که عددی نا منفی است و می تواند نباشد که در این صورت به صورت پیش فرض مقدار ۱ در نظر گرفته می شود.
    همان طور که مشاهده می شود توسط این نوع به سادگی می توان گراف های جهت دار و وزن دار را نیز پشتیبانی کرد.
    فرمت Pajek
    این نوع ورودی راس ها و یال های گراف شبکه را در دو قسمت جداگانه همانند زیر در یک فایل مشخص می کند:

    *Vertices N
    ۱ “V1”
    ۲ “V2”
    ۳ “V3”
    …

    *Edges M
    ۱ ۲ ۱
    ۱ ۵ ۰٫۳۳
    ۴ ۳ ۰٫۵
    ۲ ۳ ۱
    …

در بخش رئوس که با
Vertices N*
مشخص می شود N نمایش دهنده ی تعداد رئوس گراف است و در N خط بعد در هر خط ابتدا id راس و سپس label آن می آید.
در بخش یال ها نیز که با
Edges M*
و یا
Arcs M*
مشخص می شود M نمایش دهنده ی تعداد یال های گراف است و M خط بعد همانند فرمت Link List تعریف می شود.

ورودی آزمایش شده ابتدایی شبکه ی کوچکی از فیسبوک با ۴,۰۳۹ راس و ۸۸,۲۳۴ یال و از هر دو نوع فرمت Link list و Pajek می باشد.
۳.۲. Methods of Implementation

در این قسمت به بررسی و انجام آزمایش الگوریتم های ارائه شده روی مجموع دادگان پرداخته شده و از کدهای موجود و آماده ی آنان استفاده شده است. (لینک کدها)
روش کامپایل و اجرای هر الگوریتم در فایل readme که داخل فولدر هر کدام قرار دارد آورده شده است.

    ۳.۲.۱. Infomap
    با انجام این روش بر روی دادگان facebook به نتایج و خروجی های زیر دست یافتیم که در گیت هاب نیز موجود است. برای مشاهده نوع فرمت فایل های خروجی به اینجا مراجعه کنید.
    تعداد ۷ انجمن پیدا شد که توسط ۱۲ یال با یکدیگر در ارتباطند. این ۷ انجمن با یکدیگر قابل ترکیب نیستند ولی توسط وزن یالی که بین آن هاست می توان تشخیص داد که چه مقدار به نسبت بقیه به یکدیگر شباهت دارند.

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


    communities predicted by infomap on facebook dataset
    communities predicted by infomap on facebook dataset
    ۳.۲.۲. Combo
    پس از انجام این روش بر روی دادگان facebook زمان زیادی را برای دریافت نتایج منتظر ماندم ( در حدود ۷۰ ثانیه ). در پایان کار نتایج و فایل خروجی این الگوریتم فایلی متنی است که تعداد خطوط آن به تعداد رئوس گراف می باشد و در هر خط تنها یک عدد نامنفی تولید شده است که نشان دهنده تعداد انجمن هایی است که راس مورد نظر در آن مشترک است.
    تعداد انجمن ها و همچنین اعضای این انجمن ها جزو نتایج و خروجی برنامه نیست!!
    ۳.۲.۳. Louvain
    نتایج خروجی برنامه ی نوشته شده برای متد Louvain به صورت یک فایل با فرمت tree. می باشد که برای تبدیل این فرمت به clu. این قطعه کد را نوشتم. چرا که برای نمایش خروجی به فرمت clu. نیازمندیم.
    با انجام این روش بر روی دادگان facebook به تعداد ۱۷ انجمن مختلف دست پیدا کردم که در شکل زیر قابل مشاهده می باشد.

    facebook clu results in louvain method
    facebook clu results in louvain method
    ۳.۲.۴. Martelot
    با اجرای متد Le Martelot بر روی دیتاست facebook به خروجی زیر دست پیدا کردیم ( گیت هاب ) .
    این روش ۱۲ انجمن بر روی این دادگان پیدا کرد که در شکل زیر نمایان است.

    facebook clu results in martelot method
    facebook clu results in martelot method

۴. کارهای آینده
بررسی نتایج بدست آمده

تا اینجای کار روش های موجود را بر روی دادگان فیسبوک اجرا کردیم و برای هر کدام به نتایجی رسیدیم.
برای دقیق تر شدن نتایج اقدام به بررسی دادگان توییتر (اینجا) نیز کردم که متاسفانه به دلیل بالا بودن حجم آن رم کامپیوترم پر شد و در استفاده از تمام روش ها به ارور segmentation fault برخوردم.
برای بررسی دقت الگوریتم های مختلف نیازمند یک جواب بودم که با خروجی دیگر برنامه ها مقایسه کنم و میزان صحت روش های مختلف را اندازه گیری کنم ولی متاسفانه دسترسی به جواب صحیح برای دادگان فیسبوک نداشتم. البته طبق تحقیقات دانشگاه MIT بر روی همین دادگان و مقایسه روش ها با یکدیگر به نمودار رسیده اند.
comparison of algorithms
comparison of algorithms

با توجه به این نمودار که از نظر کیفیت و سرعت متدهای مختلف بررسی شده اند متد Combo دارای بالاترین کیفیت و متد Martelot بالاترین سرعت را دارا بوده است.
نکته حائز اهمیت نبودن روش Infomap است که دلیلش رو نمیدونم!

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

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com

تشخیص حالت احساسی نویسنده متن

مقدمه

تشخیص احساسات یا Sentiment analysis شاخه ای از علوم کامپیوتر و پردازش زبان (NLP) است که سعی دارد ماشین و هوش مصنوعی را با احساس و عواطف انسانی آشنا سازد و تشخیص آنها از هم را میسر سازد .
تلفن همراهی را تصور کنید که بر اساس مکالمات شما با افراد تشخیص میدهد که امروز روز دشواری داشته اید و به طور خودکار تماس کسانی که سابقه ی بیشترین دعوا ی لفظی را دارند را بلاک میکند تا شما در آرامش باشید .
شبکه ی اجتماعی را تصور کنید که لحن و احساس شما را از آپدیت روزانه ی که پست کردید تشخیص میدهد و شما را با افرادی با حس مشابه در تماس قرار میدهد تا با هم بر سر مشکل مشترکتان (مثلا حقوق کم ) درد و دل کنید ! همچنین اگر شبکه ی اجتماعی دارای جامعه ی بزرگی باشد اطلاعات جمع آوری شده ی آن برای امور آماری – روان شناسی بی نظیر خواهند بود . مثلا روانشناسان میتوانند شروع یک اپیدمی افسردگی در یک منطقه ی خاص را تشخیص دهند . از آنجا که میزان جرم وقتی که مردم یک منطقه مشکلات روحی دارند بیشتر است پلیس نیز میتواند نیرو های خود را بر این اساس در جا های مختلف تقسیم کند .
تشخیص احساس در زمان حال بیشترین کاربرد را در سایت های عرضه انواع کالا ( مجازی یا حقیقی ) دارد . بسیار مهم است که مدیر سایت و شرکت عرضه کننده ی محصول بدانند کدام نقد و بررسی ها از یک محصول مثبت هستند و کدام منفی و اینکه شدت منفی یا مثبت بودن چقدر است . کاربر از محصول کمی ناراضی است یا شدیدا ؟ شرکت های بزرگی همچون Amazon و Google و Ebay از SA برای بررسی نظرات کاربران استفاده میکنند . این شاخه از SA را Opinion mining میگویند .
تشخیص احساس ماشین های فعلی را یک نسل به جلو رانده و باور عمومی بر بی احساس بودن ماشین ها را کمرنگ تر میسازد . در پی آن باعث آسان تر شدن بسیاری از جهات زندگی انسان نیز خواهد شد .
۱٫۱شرح مساله

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


در این پروژه قصد داریم به کمک SA برنامه ای بنویسیم که حالت روحی نویسنده ی یک حساب سایت Twitter را بررسی و تشخیص دهد . برای ساده تر شدن مساله کمیت “حالت روحی” را یک کمیت بولین در نظر میگیریم به این شکل که شخص میتواند خوشحال – ناراحت – خنثی باشد .
در صورت امکان سعی خواهد شد که حالت های پیچیده تر روحی مثل استرس و آرام بودن (Contentsity and stress ) را نیز شناسایی کنیم .
در انتها اطلاعات را بر روی نموداری بر حسب زمان/احساس نمایش میدهیم که نشان دهنده ی حالت روحی فرد در گذر زمان خواهد بود .
هدف ما در این مساله رسیدن به دقت بالای ۷۰ درصد است . دلیل آن اینست که طبق گزارش ها و تحقیقات متعدد دقت انسان در تشخیص حالت احساسی با در دست داشتن تنها متن ، در حدود ۷۰ درصد است [۲۰] .
۲٫۱چالش ها

در پیاده سازی SA برای یک نوشتار همیشه چالش های زیادی را پیش روی داریم :

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


    کاربر به طور مستقیم احساس خود را بروز نمیدهد و ممکن است به شیوه های متعدد ( افعال یا صفات منفی ) نظر خود را بروز دهد . جملات پیاپی ممکن است معنی هم را تکمیل کنند .
    امروز حالم به هیچ وجه خوب نبود
    یا
    اگر فکر میکنید حالم خوبه در اشتباهید
    کاربر ممکن است از کنایه – طعنه – شوخی استفاده کند . هر کدام از این موارد در ساختار جمله مفهومی کاملا متفاوت با مفهوم واقعی دارند .
    امروز همونقدر خوشحال بودم که یه بره تو سلاخ خونه خوشحاله !
    این کامپیوتر کاربردش در حد یه پاره آجر هم نیست
    کاربران معمولا از ساختار های جمله ای پیچیده ای استفاده میکنند که به دلیل رسمی نبودن الزاما در چهارچوب کلی ساختار زبان قرار نمیگیرند .
    بنا به دلایل فوق بررسی تنها لغت به لغت (Lexical) میتواند باعث ایجاد نتایج غلط شود .

هیچ کدام از این چالش ها تا به کنون در ضمینه ی NLP به کلی حل نشده اند .
۲٫ کار های مرتبط

در ضمینه ی Sentiment analysis که ازین به بعد آن را به اختصار SA می نامیم تا به کنون روش های مختلفی پیشنهاد شده . درادامه به بررسی تعدادی از کارهای انجام شده میپردازیم . هر روش به مقاله مربوط ارجا داده شده است .

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


ٍشکلک ها ! [۱] ساده ترین روش تشخیص حالت یک نویسنده مشاهده ی شکلک ها یا Emoticons ای هست که او در متن به کار برده . با این شکلک های بسیار ساده میتوان مفاهیم احساسی پیچیده ای را انتقال داد .
مثلا :
حالم خوب است :))
مفهوم بسیار ساده ای دارد . در حالی که :
حالم خوب است

Data Type و Content Type در داده کاوی

برای پیاده سازی مدل های داده کاوی در SSAS از دو نوع داده ای استفاده می شود. یک نوع فیزیکی که در ساختار داده کاوی کاربرد دارد و دیگری نوع منطقی است که برای ستون های مورد استفاده در مدل بکار می رود. به زبان ساده تر در زمان ایجاد یک مدل داده کاوی برای ستون های انتخاب شده از جداول دو نوع داده ای Data Type و Content Type خواسته می شود که اولی به عنوان نوع فیزیکی و دومی به عنوان نوع منطقی برای SSAS شناخته می شود.
در ادامه به شرح هر یک از آن ها خواهم پرداخت اما قبل از آن به عبارات و تعارف زیر توجه کنید.

 

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com

Data Type: از آن به عنوان نوع داده ای نام برده می شود که نشان دهنده نوع رکوردهای یک ستون خاص در جدول است.Content Type: از آن به عنوان نوع محتوایی نام برده می شود که بیانگر شرح حالت و نوع منطقی رکوردهای ستون است.Column: ستون های هر جدول است.Row: به سطرهای هر جدول گفته می شود.Case Table: منظور از آن جدول اصلی و پایه است.Nested Table: منظور از آن جدول کمکی یا تودرتو است.Input: به ستون های ورودی انتخاب شده برای مدل گفته می شود.Predictable: به ستون هایی که باید پیش بینی بر اساس آن ها انجام شود گفته می شود. از آن ها به عنوان ستون های قابل پیش بینی نیز یاد می شود.

 

در زمان ساخت مدل، نوع داده ای هر ستون در قسمت Data Type مشخص می شود که این کار باعث می شود تا الگوریتم اطلاعاتی از داده های هر ستون بدست آورد و در پردازش آن ها بکار گیرد. در داده کاوی هر نوع داده ای یک یا چند نوع محتوایی را پشتیبانی می کند. Content Type رفتار محتوای ستون ها را به SSAS توصیف می کند. برای مثال اگر داده های یک ستون در وقفه های زمانی خاصی مانند روزهای هفته تکرار شوند می توان نوع محتوایی مربوط به آن ستون را برابر با Cyclical قرار داد.برخی از الگوریتم های داده کاوی برای اینکه به خوبی کار کنند حساسیت زیادی به مشخص بودن این انواع دارند مانند الگوریتم بیز که نمی تواند از نوع محتوایی Continus برای مقادیر ورودی استفاده کند.

Data Typeهنگام ساخت مدل داده کاوی در SSAS باید نوع داده ای هر ستون مشخص شود. در واقع نوع داده ای مشخص کننده ی متنی یا عددی بودن داده های موجود در ستون است. موتور داده کاوی از این اطلاعات برای مشخص کردن نحوه پردازش استفاده می کند.هر نوع داده ای یک یا چند نوع محتوایی را پشتیبانی می کند. برای مثال اگر داده های موجود در یک ستون عدد باشند می توانید در قسمت Data Type آن نوع Numeric یا Text را انتخاب کنید. اگر نوع Numeric را انتخاب کنید در آن صورت برای Content Type نوع های Continuous و Discretize قابل انتخاب هستند.جدول زیر نوع های داده ای و محتوایی قابل پشتیبانی را نشان می دهد.

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com

نوع محتوایی(Content Types) نوع داده ای (Data Type)
Cyclical, Discrete, Discretized, Key Sequence,Ordered, Sequence Text
Continuous, Cyclical, Discrete, Discretized, Key, Key Sequence, Key Time, Ordered, Sequence Long
Cyclical, Discrete, Ordered Boolean
Continuous, Cyclical, Discrete, Discretized, Key, Key Sequence, Key Time, Ordered, Sequence Double
Continuous, Cyclical, Discrete, Discretized, Key, Key Sequence, Key Time, Ordered Date

Content Type
همانطور که پیش تر گفته شد نوع محتوایی برای SSAS به عنوان یک نوع منطقی شناخته می شود که بیانگر رفتار محتوای ستون ها است. در ادامه به شرح هر یک از انواع Content Type می پردازم. Discrete: این نوع نشان دهنده این است که ستون مورد نظر شامل تعداد محدودی از مقادیر است. برای مثال ستون جنسیت را در نظر بگیرید، مقادیر این ستون یا مرد است یا زن، به ستون هایی که این نوع مقادیر را در خود دارند Discreteگفته می شود. این نوع مقادیر نظم و ترتیب خاصی ندارند و نمی توانند حاکی از مسئله ای باشند و با اینکه ممکن است گاهی اوقات عددی هم باشند، نمی توانند ما را به مقصود خاصی برسانند. مثل شماره تلفن که عدد است اما کاربردی در محاسبات ندارند. Continuous: این نوع بیانگر داده های عددی نامحدود است که در یک مقیاس خاصی میان مقادیر وجود دارد. همانطور که در مورد نوع Discreteمتوجه شدید، این نوع محدود و قابل شمارش است اما مقادیر Continuous مقادیر عددی در رنج بزرگ و نامحدود می باشند. یک ستون با رکوردهایی از درجه حرارت مثال مناسبی برای این نوع است.
Discretized: این نوع بیانگر فرایند قرار دادن یک مجموعه از تعداد محدودی از مقادیر Continuous در یک گروه است. به عبارت دیگر نوعdiscretized گروهی از داده های مشتق شده از ستون Continuous را شامل می شود. می توان داده ها را به صورت دستیdiscretized کرد.
Key: همانطور که از نام این نوع مشخص است، به معنای یونیک بودن رکوردها در هر سطر است. معمولا در جداول اصلی (Case Tables) کلید به صورت عددی یا متنی مشخص می شود. انتخاب نوع Key برای ستون به معنای عدم آنالیز برروی آن ستون است و فقط جهت پیگیری رکوردها استفاده می شود. جداول تودرتو (Nested Tables) نیز ستون کلید دارند اما معنای Key در این جداول کمی متفاوت با قبلی است. در جداول تودرتو زمانی یک ستون را به عنوان Key معرفی می کنیم که قصد داشته باشیم تا از خصوصیات آن ستون برای آنالیز استفاده کنیم. با این حال مقادیر ستون این جدول باید جدول اصلی یونیک باشد. برای مثال اگر قصد آنالیز محصولات خریداری شده ی مشتریان را دارید، باید در قسمت Content Type مربوط به ستون CustomerID در جدول اصلی نوع Key را انتخاب کنید و همین کار را برای ستون PurchasedProducts در جدول تودرتو انجام دهید.
key sequence: از این نوع فقط در الگوریتم خوشه بندی زنجیره ای استفاده می شود و بیانگر و توصیف کننده ی رویدادهای پیوسته و زنجیره ای در ستون است.

key time: از این نوع فقط در الگوریتم سری زمانی استفاده می شود و به معنای این است که مقادیر این ستون در واحد زمان نمایش داده می شوند.

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


Cyclical: رکوردهای موجود در این نوع بیانگر وجود یک مجموعه ی گردشی است برای مثال روزهای هفته یک مجموعه گردشی است زیرا هفت روز هفته مرتبا تکرار می شود. ستون های cyclical را با نوع های ordered discrete نیز مشخص می کنند.
Ordered: این نوع معمولا مشخص کننده ی ستون هایی است که مقادیر آن ها به صورت زنجیره ای است.

انجام پایان نامه داده کاوی

– پروژه داده کاوی با rapid miner

– پایان نامه داده کاوی با rapid miner

– پایان نامه داده کاوی با متلب Matlab

– پروژه داده کاوی با کلمنتاین

– انجام پروژه با نرم افزار کلمنتاین

– انجام پروژه با نرم افزار Clementine

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com

انجام پروژه های داده کاوی با رپیدماینر و وکا

انجام پروژه های داده کاوی (Data Mining) در زمینه های رده بندی (Classification)، خوشه بندی (Clustering)، پیش بینی (Prediction)، انتخاب ویژگی (Feature Selection) و قواعد انجمنی (Association Rules) با استفاده از روش ها و الگوریتم های مختلفی نظیر:
۱ -Ann)شبکه عصبی مصنوعی)

۲ - شبکه های عصبی مصنوعی (RBF)

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com


۳ - درخت تصمیم--هرس درخت تصمیم--درخت تصمیم با شاخص جینی و آنتروپی
۴ - بگینگ  و بوستینگ
۵ - ماشین بردار پشتیبان
۶-ماشین بردار پشتیبان با بهینه ساز ازدحام ذرات
۸ - سیستم استنباط بیزین
۱۰-الگوریتم ژنتیک , ازدحام ذرات
۱۱-الگوریتم های فراابتکاری
۱۲-قواعد همسایگی با fp-growth,apriory
۱۳-تحلیل نتایج با رسم نمودار Roc
۱۴-انواع مختلف روش های انتخاب ویژگی:شاخص ریلیف، ازدحام ذرات،شاخص جینی و ...
۱۵-انواع روش های نمونه برداری و بیش نمونه گیری
۱۶-روش های حل مشکل رده نامتوازن

۱۷-تشخیص داده پرت با کانزدیکترین همسایه)

09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com

Knn

۱۸-تشخیص داده پرت محلی
انجام پروژه های رپیدماینر در کوتاهترین زمان ممکن با کمترین قیمت با مشاوره وآموزش اجرای پروژه
انجام پروژه های داده کاوی با مشاوره و آموزش اجرا جهت ارایه پروژه
در صورت ارایه پروژه فیلم آموزشی کار با نرم افزار و اجرای پروژه تحویل داده خواهد شد.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com