خوشه بندی در زبان برنامه نویسی R به معنای دسته بندی داده های مشابه در گروه های جداگانه بدون نیاز به برچسب های قبلی است. برای این کار معمولا ابتدا داده ها را با دستور scale نرمال می کنند تا مقیاس متغیرها یکدست شود، سپس با استفاده از تابع پرکاربرد kmeans و تعیین تعداد خوشه ها یعنی مقدار k، الگوهای پنهان و مراکز دسته ها را پیدا می کنند. در نهایت با دستور plot یا بسته های کاربردی مثل factoextra نتایج را رسم می کنند تا مشخص شود هر نمونه داده متعلق به کدام دسته است. از آن جا که برای نظم دهی بهتر به پروژه آموزش خوشه بندی در R یک ضرورت مهم است که تمامی افراد علاقه مند به این زبان برنامه نویسی باید بلد باشند، لذا در ادامه این مطلب ما آموزش کامل آن را به شما توضیح می دهیم و پس از مطالعه این مقاله، در صورتی که به دنبال یک مرکز معتبر برای یادگیری تخصصی زبان برنامه نویسی R هستید، می توانید از طریق شماره تلفن 02191098500 می توانید اطلاعات مورد نیاز در خصوص دوره های صفر تا صد این زبان برنامه نویسی محبوب و قدرتمند را بدست آورید.
آنچه در این پست می خوانید :

منظور از خوشه بندی در نرم افزار R چیست؟
در ابتدای مقاله به طور خلاصه توضیح دادیم که خوشه بندی در نرم افزار R یعنی تقسیم کردن داده ها به چند گروه بر اساس میزان شباهت آنها، بدون این که از قبل بدانیم هر داده باید در کدام گروه قرار بگیرد. R ویژگی های هر رکورد را بررسی می کند و مواردی را که رفتار یا مشخصات نزدیک تری دارند، داخل یک خوشه می گذارد. تفاوت خوشه بندی با دسته بندی این است که در دسته بندی، نام گروه ها از قبل مشخص است، اما در خوشه بندی خود نرم افزار الگوها و گروه های پنهان را کشف می کند.
به عنوان مثال یک فروشگاه اینترنتی اطلاعات مشتریان خود مانند سن، تعداد خرید و مبلغ پرداختی را در R وارد می کند. با خوشه بندی ممکن است مشتریان به سه گروه تقسیم شوند: مشتریان پرخرید با پرداخت بالا، مشتریان با خرید متوسط و مشتریانی که خرید کمی دارند. سپس فروشگاه می تواند برای هر گروه پیام تبلیغاتی، تخفیف یا پیشنهاد مناسب تری ارسال نماید. با توجه به این مثال تا به این جا مفهوم خوشه بندی را به خوبی یاد گرفته اید، پیشنهاد می کنیم که پس از مطالعه این مقاله اگر تمایل دارید زبان برنامه نویسی R را به صورت صفر تا صد یاد بگیرید، از طریق لینک زیر با کلاس های آموزشی آن در یکی از بهترین آموزشگاه های برنامه نویسی ایران آشنا شوید. همچنین برای آشنایی بیشتر با مزایا و کاربردهای دیگر این زبان برنامه نویسی می توانید سری به مقاله نرم افزار r چیست بزنید.
پیشنهاد ویژه » کسانی که تمایل دارند آموزش تخصصی زبان برنامه نویسی r را در معتبرترین آموزشگاه برنامه نویسی ایران یاد بگیرند برای این منظور به صفحه آموزش زبان برنامه نویسی r مراجعه نمایند.

آموزش خوشه بندی در نرم افزار R
خوشه بندی در R روشی برای پیدا کردن گروه های مشابه در داده ها است، بدون این که از قبل برچسب گروه ها را داشته باشیم. مثلا می توان مشتریان را بر اساس سن، میزان خرید و تعداد سفارش به چند گروه تبدیل کرد. قبل از خوشه بندی بهتر است داده های عددی را با تابع scale() هم مقیاس کنیم، چون اختلاف واحدها مانند تومان و سال می تواند نتیجه را تغییر دهد.
یکی از ساده ترین روش ها، خوشه بندی K-means است. در این روش ابتدا تعداد خوشه ها را مشخص می کنیم و سپس R داده ها را به نزدیک ترین مرکز هر خوشه اختصاص می دهد. نمونه کد زیر داده های عددی را به 3 گروه تقسیم می کند:
rnote_addویرایش با Canvasdata_scaled <- scale(data) result <- kmeans(data_scaled, centers = 3) result$cluster
خروجی result$cluster شماره خوشه هر ردیف را نشان می دهد. برای بررسی بهتر نتیجه می توان نمودار رسم کرد و ویژگی های میانگین هر خوشه را مقایسه کرد؛ مثلا اگر یک خوشه تعداد خرید و مبلغ سفارش بیشتری داشته باشد، می توان آن را گروه مشتریان ارزشمند در نظر گرفت. در ادامه آموزش خوشه بندی تفکیکی و سلسله مراتبی با نرم افزار آر R را به شکل کامل توضیح می دهیم.
خوشه بندی سلسله مراتبی (Hierarchical Clustering)
خوشه بندی سلسله مراتبی در R روشی است که داده های مشابه را مرحله به مرحله کنار هم قرار می دهد و یک ساختار درختی از گروه ها می سازد. برخلاف روش K-means، لازم نیست از ابتدا تعداد خوشه ها را تعیین کنید. خروجی اصلی این روش نموداری به نام دندروگرام است که نشان می دهد کدام داده ها به هم نزدیک تر هستند و در چه مرحله ای با هم ادغام شده اند. با نگاه کردن به دندروگرام می توانید تصمیم بگیرید داده ها را مثلا به 2، 3 یا 4 خوشه تقسیم کنید.
برای اجرا، ابتدا فاصله بین ردیف های داده را با dist() محاسبه می کنیم، سپس با hclust() خوشه بندی را انجام می دهیم. در مثال زیر، داده های عددی ابتدا هم مقیاس شده اند و سپس با روش Ward که معمولا برای ساخت خوشه های منظم مناسب است، تحلیل می شوند:
r
data_scaled <- scale(data)
distance_matrix <- dist(data_scaled)
hc_result <- hclust(distance_matrix, method = "ward.D2")
plot(hc_result)
clusters <- cutree(hc_result, k = 3)
در این کد، plot(hc_result) دندروگرام را نمایش می دهد و cutree(…, k = 3) درخت را به 3 گروه تقسیم می کند. مثلا اگر اطلاعات مشتریان شامل مبلغ خرید، تعداد سفارش و زمان آخرین خرید باشد، می توانید مشتریان مشابه را در یک خوشه قرار دهید، سپس برای مشتریان پرارزش پیشنهاد ویژه، برای مشتریان عادی تخفیف محدود و برای مشتریان کم فعالیت پیام بازگشت به خرید ارسال کنید.
خوشه بندی تفکیکی (Discriminant clustering) در نرم افزار R
خوشه بندی تفکیکی یا Divisive Clustering روشی از خوشه بندی سلسله مراتبی است که کار را با همه داده ها در یک گروه بزرگ شروع می کند و سپس آن را به گروه های کوچک تر تقسیم می کند. این تقسیم بندی چند مرحله ادامه پیدا می کند تا داده های متفاوت از هم جدا شوند و داده های شبیه در یک گروه بمانند. بنابراین بر خلاف خوشه بندی تجمعی که ابتدا هر داده را یک گروه جدا می داند و بعد گروه ها را به هم وصل می کند، در خوشه بندی تفکیکی از یک خوشه شروع می کنیم و به سمت چند خوشه حرکت می کنیم.
در R می توان از تابع diana() در بسته cluster برای انجام خوشه بندی تفکیکی استفاده کرد. ابتدا بهتر است داده های عددی را با scale() هم مقیاس کنیم، سپس مدل را اجرا و نمودار درختی را بررسی کنیم. در مثال زیر داده ها در نهایت به 3 خوشه تقسیم می شوند:
r
library(cluster)
data_scaled <- scale(data)
div_result <- diana(data_scaled)
plot(div_result)
clusters <- cutree(as.hclust(div_result), k = 3)
این روش مثلا برای تحلیل مشتریان کاربرد دارد. اگر همه مشتریان یک فروشگاه را ابتدا یک گروه فرض کنیم، R به تدریج آنها را بر اساس تفاوت در مبلغ خرید، تعداد سفارش و زمان آخرین خرید جدا می کند. در پایان ممکن است گروه مشتریان وفادار، مشتریان با خرید متوسط و مشتریان کم فعالیت به دست آید و برای هر گروه برنامه بازاریابی جداگانه طراحی شود.
برای مطالعه» از مزایای قابل توجه زبان برنامه نویسی R حجم بالای داکیومنت و مستندات آن است. دو نمونه از سایتهای مرجع زبان برنامهنویسی R به آدرس r-project.org و cran.r-project.org میباشد که جزئیات کاربری و استفاده از R را در شرایط مختلف و گروههای متفاوت گفتگوها و تالارهای تبادلنظر بین مشتریان و کاربران را در اختیار میگذارد.
.
خوشه بندی به روش k means
خوشه بندی K-means در R روشی برای تقسیم داده ها به تعداد مشخصی گروه است. ابتدا باید تعداد خوشه ها را تعیین کنید؛ مثلا 3 خوشه. سپس الگوریتم برای هر خوشه یک مرکز پیدا می کند و هر داده را در خوشه ای قرار می دهد که به مرکز آن نزدیک تر باشد. این فرایند چند بار تکرار می شود تا اعضای هر گروه تا حد ممکن شبیه هم و با گروه های دیگر متفاوت باشند. قبل از اجرا بهتر است داده ها را با scale() هم مقیاس کنید، چون تفاوت واحد متغیرها مانند سن و مبلغ خرید می تواند نتیجه را نادرست کند.
برای مثال، فرض کنید یک فروشگاه می خواهد مشتریان خود را بر اساس سن، تعداد خرید و مبلغ کل خرید گروه بندی کند. کد زیر داده های عددی را استاندارد کرده و آنها را به 3 خوشه تقسیم می کند:
r
customer_data <- data.frame(
age = c(22, 25, 28, 35, 38, 42, 45, 50),
purchase_count = c(2, 3, 4, 8, 10, 12, 15, 18),
total_purchase = c(500, 700, 900, 3000, 3800, 4500, 6000, 7500)
)
data_scaled <- scale(customer_data)
kmeans_result <- kmeans(data_scaled, centers = 3, nstart = 25)
kmeans_result$cluster
خروجی kmeans_result$cluster نشان می دهد هر مشتری در کدام خوشه قرار گرفته است. مثلا یک خوشه می تواند مشتریان کم خرید، خوشه دیگر مشتریان با خرید متوسط و خوشه سوم مشتریان وفادار با مبلغ خرید بالا باشد. فروشگاه می تواند برای مشتریان وفادار پیشنهاد ویژه، برای گروه متوسط کد تخفیف و برای مشتریان کم خرید پیام تشویقی ارسال کند.
پیشنهاد ویژه » با توجه به مزایا و قابلیت های خوشه بندی در زبان برنامه نویسی که در بخش قبلی با آن آشنا شدید، اگر تمایل دارید انواع زبان های برنامه نویسی را به شکل حرفه ای یاد بگیرید برای مشاهده قیمت دوره های آموزشی برنامه نویسی به صفحه هزینه دوره های برنامه نویسی با مدرک بین المللی مراجعه نمایید.
مزایا و معایب الگوریتم k means
با توجه به مثال الگوریتم k means در بخش قبلی، مهمترین مزایا و معایب الگوریتم k means را می توان به صورت زیر تعریف کرد.
مزایای الگوریتم K-means
- ساده و قابل فهم است: منطق آن بر پایه قرار دادن داده های مشابه در یک گروه است.
- سرعت بالایی دارد: برای داده های زیاد معمولا سریع اجرا می شود.
- پیاده سازی آسانی دارد: در R با تابع kmeans() به راحتی قابل اجرا است.
- مناسب داده های عددی است: برای تحلیل متغیرهایی مانند سن، مبلغ خرید، تعداد سفارش و درآمد کاربرد دارد.
- نتیجه قابل تفسیر می دهد: با بررسی مرکز هر خوشه می توان ویژگی گروه ها را شناخت.
- برای تقسیم بندی مشتریان مفید است: در بازاریابی، فروش، تحلیل رفتار کاربران و بسیاری از مسائل مشابه استفاده می شود.
معایب الگوریتم K-means
- باید تعداد خوشه ها را از قبل مشخص کنیم: انتخاب مقدار مناسب k همیشه ساده نیست.
- به مقیاس داده ها حساس است: اگر داده ها استاندارد نشوند، متغیرهای با اعداد بزرگ تر اثر بیشتری می گذارند.
- به داده های پرت حساس است: چند داده غیرعادی می توانند مرکز خوشه ها را جابه جا کنند.
- برای داده های غیرعددی مناسب نیست: مثلا متن، نام شهر یا رنگ را مستقیم نمی تواند تحلیل کند.
- برای خوشه های نامنظم ضعیف است: وقتی شکل خوشه ها دایره ای یا فشرده نباشد، ممکن است نتیجه مناسبی ندهد.
- نتیجه به انتخاب اولیه مراکز وابسته است: اجرای الگوریتم در دفعات مختلف ممکن است نتایج کمی متفاوت ایجاد کند.
سوالات متداول در مورد آموزش خوشه بندی در R؟
روشی برای گروه بندی داده های مشابه است، بدون این که از قبل برچسب گروه ها مشخص باشد.
خوشهبندی در R (programming language) یکی از روشهای تحلیل داده است که در آن دادههای مشابه در گروههای مشخص (کلاسترها) دستهبندی میشوند. این روش در داده کاری و یادگیری ماشین کاربرد زیادی دارد.
خوشهبندی در R برای تحلیل رفتار مشتریان، بخشبندی بازار و شناسایی الگوهای پنهان در دادهها استفاده می شود. این روش به تصمیم گیری دقیق تر در کسب و کارها کمک می کند.
در R می تئان با استفاده از تابع kmeans() دادهها را به چند خوشه تقسیم کرد. ابتدا دادهها آماده سازی شده و سپس تعداد خوشه ها مشخص می شود تا الگوریتم اجرا شود.
بله، خوشه بندی یکی از روش های مهم یادگیری بدون ناظر در یادگیری ماشین است و داده های مشابه را بدون داشتن برچسب، در گروه های جدا قرار می دهد. از آن برای بخش بندی مشتریان، تشخیص الگو، پیشنهاد محصول، تحلیل رفتار کاربران و کشف موارد غیرعادی استفاده می شود.
برای روش K-means از تابع kmeans() و برای خوشه بندی سلسله مراتبی از hclust() استفاده می شود.
بله، معمولا استفاده از تابع scale() توصیه می شود تا همه متغیرها اثر متعادلی داشته باشند.
این الگوریتم بیشتر برای داده های عددی مانند سن، درآمد، مبلغ خرید و تعداد سفارش مناسب است.
می توان از روش آرنجی یا Elbow Method و بررسی نمودار تغییرات خطا استفاده کرد.
در K-means تعداد خوشه ها از ابتدا مشخص می شود، اما در روش سلسله مراتبی می توان تعداد خوشه ها را با بررسی دندروگرام انتخاب کرد.
دندروگرام یک نمودار درختی است که میزان شباهت داده ها و نحوه تشکیل خوشه ها را نمایش می دهد.
داده های پرت می توانند نتیجه را تغییر دهند، به ویژه در روش K-means که به مقادیر غیرعادی حساس است.
از آن در بخش بندی مشتریان، تحلیل رفتار کاربران، کشف الگوها، بازاریابی و تشخیص داده های غیرعادی استفاده می شود.
هنوز بررسیای ثبت نشده است.