الگوریتم DBSCAN (Density-Based Spatial Clustering of Applications with Noise) یکی از روشهای خوشهبندیه که به دلیل قابلیت شناسایی خوشهها با شکلهای نامنظم و توانایی مدیریت نویز به یکی از پرکاربردترین الگوریتمهای خوشهبندی تبدیل شده.
- eps (ε): شعاع همسایگی.
- minPts: حداقل تعداد نقاط مورد نیاز در همسایگی.
۱. شروع: یک نقطه تصادفی انتخاب میشه.
۲. بررسی همسایگی: همسایگان این نقطه با استفاده از پارامتر eps تعیین میشن.
۳. تشخیص نقطه کامل پرتراکم: اگه تعداد نقاط همسایه بیشتر یا برابر با minPts باشه، این نقطه به عنوان یک نقطه کامل پرتراکم در نظر گرفته میشه و یک خوشه جدید شروع میشه. در غیر این صورت، نقطه به عنوان نویز علامتگذاری میشه.
۴. توسعه خوشه: تمامی نقاط همسایه که خودشون نقاط پرتراکم هستن به خوشه اضافه میشن و این فرآیند به صورت تکراری برای نقاط جدید ادامه داره.
۵. تکرار: مراحل ۱ تا ۴ تا زمانی که تمامی نقاط بررسی نشدن، ادامه داره.
#Clustering
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2👌2🔥1
❓کوییز شماره ۱۷۰: الگوریتم DBSCAN چطور نقاط پرت رو تشخیص میده؟
Anonymous Quiz
16%
با توجه به میانگین فاصلهها بین نقاط
8%
با محاسبه تعداد خوشهها
76%
با محاسبه چگالی نقاط در یک شعاع مشخص (Eps)
👍4❤2😁2👌1
الگوریتم DBSCAN، یک الگوریتم بدون ناظر خوشهبندی مبتنی بر تراکمه که برای پیدا کردن خوشهها در دادهها، با توجه به میزان تراکمشون طراحی شده. این الگوریتم میتونه خوشهها با اشکال متفاوت رو تشخیص بده و نسبت به نویز و نقاط پرت مقاومه.
#Clustering
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1🔥1👏1
یکی از انواع مهم شبکههای عصبی برای خوشهبندی، شبکههای عصبی خودسازمانده یا SOM است. SOM نوعی شبکه عصبی بدون ناظره که برای کاهش ابعاد و خوشهبندی دادهها استفاده میشه.
۱. مقداردهی اولیه: وزنهای به صورت تصادفی مقداردهی میشن.
۲. انتخاب بردار ورودی: یک بردار ورودی از دادهها انتخاب میشه.
۳. محاسبه بردار برنده: نزدیکترین نرون به بردار ورودی (نرون برنده) تعیین میشه.
۴. بهروزرسانی وزنها: وزنهای نرون برنده و نرونهای مجاورش به روز میشن تا به ورودی نزدیکتر شن.
۵. تکرار: مراحل ۲ تا ۴ برای تمامی بردارهای ورودی و در چند دوره تکرار میشن تا شبکه به همگرایی برسه.
شبکههای عصبی رقابتی نوع دیگهای از شبکههای عصبی برای خوشهبندی هستن. در این شبکهها نرونها با هم رقابت میکنن تا بهترین تطابق با ورودی رو داشته باشن. نرون برنده وزنهاش رو تنظیم میکنه تا به ورودی نزدیکتر شه. مراحل آموزش شبکههای عصبی رقابتی:
۱. مقداردهی اولیه: وزنها به صورت تصادفی مقداردهی میشن.
۲. محاسبه فاصله: فاصله هر نرون با ورودی محاسبه میشه.
۳. انتخاب نرون برنده: نرونی که کمترین فاصله رو داره به عنوان نرون برنده انتخاب میشه.
۴. بهروزرسانی وزنها: وزنهای نرون برنده به سمت ورودی تغییر میکنن.
۵. تکرار: مراحل ۲ تا ۴ برای تمامی بردارهای ورودی تکرار میشن تا شبکه آموزش ببینه.
#Clustering
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5👌3
❓کوییز شماره ۱۷۱: یکی از ویژگیهای بارز شبکههای عصبی خودسازمانده (Self-Organizing Maps - SOM) چیه که اونها رو از بقیه روشهای خوشهبندی متمایز میکنه؟
Anonymous Quiz
25%
استفاده از الگوریتم گرادیان کاهشی برای بهروزرسانی وزنها
20%
استفاده از لایههای متعدد برای یادگیری ویژگی
15%
استفاده از تابع هزینه برای کاهش خطای پیشبینی
40%
استفاده از شبکهای دو بعدی برای نگاشت دادهها
❤2👍2🤔1👌1😎1
راهنمای جامع تحلیل داده و تحلیلگر داده برای ارائه اطلاعات کامل و کاربردی در زمینه تحلیل دادهها و نقش تحلیلگران داده طراحی شده.
این مطلب، بهعنوان یک منبع معتبر و جامع، به کسانی که میخوان دانششون رو در حوزه تحلیل داده و علم داده افزایش بدن و برای مصاحبههای شغلی در این زمینه آماده شن، کمک میکنه.
#Data_Analysis
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥1👏1
برای ارزیابی کیفیت خوشههای ایجاد شده در خوشهبندی، از معیارهای مختلفی استفاده میشه که مهمترین اونها رو بررسی میکنیم:
شاخص دیویس-بولدین معیاری برای ارزیابی کیفیت خوشهبندیه که بر اساس میزان پراکندگی خوشهها و فاصله بین اونها محاسبه میشه. این شاخص به صورت میانگین نسبت فاصله داخلی به فاصله بین خوشهها تعریف میشه. هرچه مقدار این شاخص کمتر باشه، خوشهبندی بهتره.
شاخص سیلوئت برای ارزیابی کیفیت خوشهبندی با بررسی میزان یکنواختی و جداسازی دادهها استفاده میشه. مقدار این شاخص بین -1 تا 1 قرار داره و هرچه به 1 نزدیکتر باشه، خوشهبندی بهتره. این شاخص نشون میده که چقدر هر نقطه به خوشه خود تعلق داره و چقدر از خوشههای دیگه جداست.
این دو شاخص برای ارزیابی کیفیت داخلی خوشهها و فاصله بین خوشهها استفاده میشن. شاخص چسبندگی میانگین فاصله بین نقاط داخل هر خوشه رو اندازهگیری میکنه و شاخص جداسازی میانگین فاصله بین خوشهها رو محاسبه میکنه. هرچه مقدار چسبندگی کمتر و جداسازی بیشتر باشه، خوشهبندی بهتره.
شاخص NMI معیاری برای مقایسه دو خوشهبندی مختلف (معمولاً خوشهبندی واقعی و خوشهبندی پیشبینیشده) استفاده میشه. این شاخص نشوندهنده میزان اطلاعات مشترک بین دو خوشهبندیه. مقدار این شاخص بین 0 و 1 قرار داره و هرچه به 1 نزدیکتر باشه، دو خوشهبندی بیشتر به هم شباهت دارن.
شاخص CH معیاری برای ارزیابی کیفیت خوشهبندی بر اساس نسبت پراکندگی بین خوشهها به پراکندگی داخل خوشههاست. هر چقدر این شاخص بیشتر باشه، خوشهبندی بهتره.
شاخص Purity معیاری برای ارزیابی کیفیت خوشهبندی بر اساس مقایسه هر خوشه با کلاسهای واقعی دادههاست. هرچه مقدار این شاخص بیشتر باشه، خوشهبندی بهتره.
شاخص دان یکی دیگه از معیارهای ارزیابی کیفیت خوشهبندیه که به دنبال پیدا کردن خوشههایی با کمترین همپوشانی و بیشترین فاصله از همدیگه است. این شاخص به صورت نسبت کوچکترین فاصله بین خوشهها به بزرگترین قطر خوشهها تعریف میشه. هرچه مقدار شاخص دان بیشتر باشه، کیفیت خوشهبندی بهتره.
شاخص Rand برای ارزیابی شباهت بین دو خوشهبندی مختلف (معمولاً خوشهبندی واقعی و پیشبینیشده) استفاده میشه. این شاخص بر اساس تعداد جفت نقاطی که به درستی در یک خوشه قرار گرفتن یا در خوشههای مختلف قرار گرفتن، محاسبه میشه. مقدار شاخص Rand بین 0 و 1 قرار داره و هرچه به 1 نزدیکتر باشه، دو خوشهبندی بیشتر به هم شبیهان.
شاخص Adjusted Rand Index نسخه بهبود یافته شاخص Rand است که برای تصحیح اثر شانس طراحی شده. این شاخص برای ارزیابی کیفیت خوشهبندی با در نظر گرفتن خوشههای واقعی و پیشبینی شده استفاده میشه. مقدار ARI بین -1 و 1 قرار داره و مقدار نزدیک به 1 نشوندهنده کیفیت بهتر خوشهبندی است.
شاخص Fowlkes-Mallows برای ارزیابی کیفیت خوشهبندی بر اساس مقایسه خوشهبندی پیشبینی شده با خوشهبندی واقعی استفاده میشه. این شاخص ترکیبی از دقت و بازیابی (precision and recall) است و مقدار آن بین 0 و 1 قرار داره. هرچه مقدار این شاخص بیشتر باشه، کیفیت خوشهبندی بهتره.
شاخص Entropy معیاری برای ارزیابی یکنواختی خوشهها است. این شاخص مقدار عدم قطعیت درون خوشهها رو اندازهگیری میکنه و هرچه مقدار این شاخص کمتر باشه، خوشهبندی یکنواختتر و بهتره.
این شاخصها برای ارزیابی کیفیت خوشهبندی بر اساس یکپارچگی و کامل بودن خوشهها استفاده میشن. شاخص Homogeneity نشون میده که تمام اعضای یک خوشه به یک کلاس تعلق دارند، شاخص Completeness نشون میده که تمام اعضای یک کلاس در یک خوشه قرار دارند، و V-measure میانگینی هماهنگ از این دو شاخص است.
#Clustering
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3👏2👌1
❓کوییز شماره ۱۷۲: کدوم یک از شاخصهای زیر برای ارزیابی شباهت بین دو خوشهبندی با استفاده از مقیاس احتمال شرطی طراحی شده؟
Anonymous Quiz
9%
Davies-Bouldin Index
27%
Calinski-Harabasz Index (CH )
32%
Normalized Mutual Information (NMI)
32%
Silhouette Coefficient Index
❤4😎3🤔2👌1
#Clustering
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2👌1
#Weekend
#Clustering
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2👌2👍1
Forwarded from رضا شکرزاد - علمداده و هوش مصنوعی
برای مطالعه سرفصلها و دریافت جزئیات بیشتر، به لینک زیر سر بزنین.
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2👏1👌1
عملیات CRUD یک مخفف برای چهار عملیات اساسی در پایگاههای داده است که عبارتاند از: ایجاد (Create)، خواندن (Read)، بهروزرسانی (Update) و حذف (Delete). این چهار عملیات، اصول اولیهای هستن که هر سیستم پایگاه داده باید پشتیبانی کنه.
INSERT INTO users (name, email, age) VALUES ('Ali', 'ali@example.com', 30);
SELECT name, email FROM users WHERE age > 20;
UPDATE Users SET Age = 31 WHERE Name = 'Ali';
DELETE FROM Users WHERE Name = 'Ali';
BEGIN TRANSACTION;
UPDATE Bank_Account SET Balance = Balance - 100 WHERE User_id = 1;
UPDATE Bank_Account SET Balance = Balance + 100 WHERE User_id = 2;
COMMIT;
AS
BEGIN
RETURN @درآمد * 0.1;
END;
این موارد اضافی به شما کمک میکنند تا درک جامعتری از مدیریت و کار با پایگاههای داده داشته باشید و عملیاتهای مختلف را با کارایی و دقت بیشتری انجام دهید.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥2👏1
❓کوییز شماره ۱۷۳: کدوم گزینه یکی از مزایای استفاده از رویههای ذخیره شده (Stored Procedures) نیست؟
Anonymous Quiz
20%
کاهش بار شبکه بین برنامه کاربردی و پایگاه داده
31%
افزایش امنیت دادهها
29%
افزایش انعطافپذیری در تغییرات دادهها
20%
بهبود عملکرد پرسوجوها
🤔4😎2❤1👌1
اگه در صنعتی کار میکنین که با دادههای زیاد سروکار داره، قطعاً با پایگاههای داده آشنا هستین. یکی از رایجترین روشهای دسترسی به دادههای ذخیرهشده در یک پایگاه داده استفاده از زبان SQL هست. در این مطلب با زبان SQL و دستورهای متداولش برای دیتا ساینس آشنا میشیم.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👏1👌1👨💻1
پایگاههای داده با هدف ذخیرهسازی، مدیریت و بازیابی اطلاعات طراحی شدن و پرسوجو یا Query به عنوان یکی از مهمترین ابزارهای تعامل با پایگاه دادهها شناخته میشن. پرسوجوها به کاربران این امکان رو میدن تا اطلاعات مورد نیازشون رو از بین حجم زیاد دادههای پایگاه دادهها استخراج کنن.
پرسوجو به دستوری گفته میشه که به یک پایگاه داده ارسال میشه تا اطلاعات خاصی رو ازش استخراج کنه. این دستورات میتونن به زبانهای مختلفی مثل SQL (Structured Query Language) نوشته شن. پرسوجوها به کاربران اجازه میدن تا دادهها رو جستجو، بازیابی، بهروزرسانی یا حذف کنن.
CREATE VIEW StudentGrades AS
SELECT students.name, courses.course_name, enrollments.grade
FROM students
JOIN enrollments ON students.id = enrollments.student_id
JOIN courses ON enrollments.course_id = courses.id;
WITH TopStudents AS (
SELECT student_id, AVG(grade) AS avg_grade
FROM enrollments
GROUP BY student_id
HAVING AVG(grade) > 85
)
SELECT students.name
FROM students
JOIN TopStudents ON students.id = TopStudents.student_id;
PREPARE stmt FROM 'SELECT * FROM users WHERE username = ? AND password = ?';
EXECUTE stmt USING @username, @password;
GRANT SELECT ON students TO read_only_user;
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👏2❤1👌1
❓کوییز شماره ۱۷۴: کدوم یک از موارد زیر در مورد عبارت MERGE در SQL صحیحه؟
Anonymous Quiz
10%
فقط برای درج دادههای جدید استفاده میشه.
10%
نمیشه با یک شرط WHERE استفاده شه.
17%
فقط در MySQL پشتیبانی میشه.
62%
ترکیبی از عملیاتهای INSERT، UPDATE و DELETE هست.
👍5❤2🤔2😎2
پایگاههای داده SQL به مدلهای ساختاریافته و رابطهای تأکید میکنن، درحالیکه پایگاههای داده NoSQL با رویکردی برای مدیریت دادههای متنوع و پویا با تأکید بیشتر بر مقیاسپذیری و سرعت دارن. این مطلب تفاوتهای بین این دو سیستم پایگاه داده رو بررسی میکنه.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2👏2👌1
عبارت WHERE در SQL برای فیلتر کردن رکوردها بر اساس شرایط مشخص استفاده میشه. با استفاده از این عبارت، میتونیم دادهها رو محدود کنیم تا تنها رکوردهایی که شرایط تعیین شده در اونها صادقه، نشون داده شن.
SELECT column1, column2, ...
FROM table_name
WHERE condition;
در این ساختار:
SELECT column1, column2, ...
: تعیین میکنه که کدوم ستونها از جدول بازیابی شن.FROM table_name
: مشخص میکنه که دادهها از کدام جدول بازیابی شن.WHERE condition
: شرطی که باید برای هر رکورد بررسی شه. تنها رکوردهایی که این شرط رو برآورده میکنن، در نتیجه نشون داده میشن.-
=
(برابر بودن): برای بررسی اینکه آیا دو مقدار برابرن یا نه.-
!=
یا < >
(مخالف بودن): برای بررسی اینکه آیا دو مقدار نابرابرن یا نه.-
>
(بزرگتر بودن): برای بررسی اینکه آیا مقدار اول بزرگتر از مقدار دومه یا نه.-
<
(کوچکتر بودن): برای بررسی اینکه آیا مقدار اول کوچکتر از مقدار دومه یا نه.-
>=
(بزرگتر یا مساوی بودن): برای بررسی اینکه آیا مقدار اول بزرگتر یا مساوی با مقدار دومه یا نه.-
<=
(کوچکتر یا مساوی بودن): برای بررسی اینکه آیا مقدار اول کوچکتر یا مساوی با مقدار دومه یا نه. در مثال زیر، همه کارمندانی که سن اونها بیشتر از 30 ساله، انتخاب میشن.SELECT * FROM employees
WHERE age > 30;
-
AND
(و): وقتی هر دو شرط باید صحیح باشند.-
OR
(یا): وقتی حداقل یکی از دو شرط باید صحیح باشد.-
NOT
(نفی): برای معکوس کردن شرط. در مثال زیر، همه کارمندانی که سن بیشتر از 30 سال و حقوق بیشتر از 50000 دارن، انتخاب میشن.SELECT * FROM employees
WHERE age > 30 AND salary > 50000;
BETWEEN
برای بررسی اینکه آیا مقدار یک ستون در یک بازه مشخص قرار دارد یا نه، استفاده میشه. در مثال زیر، همه کارمندانی که سنشون بین 30 و 40 ساله، انتخاب میشن.SELECT * FROM employees
WHERE age BETWEEN 30 AND 40;
IN
برای بررسی اینکه آیا مقدار یک ستون در یک مجموعه از مقادیر مشخص قرار داره یا نه، استفاده میشه. در این مثال، همه کارمندانی که در یکی از دپارتمانهای HR، Finance یا IT کار میکنن، انتخاب میشن.SELECT * FROM employees
WHERE department IN ('HR', 'Finance', 'IT');
LIKE
برای جستجوی الگوهای مشخص در رشتهها به کار میره. این عبارت معمولاً با %
و _
استفاده میشه. %
نماینده هیچ یا چند کاراکتر و _
نماینده دقیقاً یک کاراکتر هست. در این مثال، همه کارمندانی که نام آنها با حرف A شروع میشه، انتخاب میشن.SELECT * FROM employees
WHERE name LIKE 'A%';
IS NULL
برای بررسی خالی بودن مقدار یک ستون استفاده میشه. در این مثال، همه کارمندانی که شماره تلفنشون خالیه، انتخاب میشن.SELECT * FROM employees
WHERE phone_number IS NULL;
زمان استفاده از چند شرط در یک عبارت WHERE، اولویت عملگرها اهمیت داره. عملگرهای
NOT
دارای بالاترین اولویت، بعد عملگرهای مقایسهای (=
, !=
, >
, <
, >=
, <=
)، و در نهایت عملگرهای AND
و OR
قرار دارن. در این مثال، اول شرط داخل پرانتز ارزیابی میشه (آیا سن بیشتر از 30 یا حقوق کمتر از 50000 است)، بعد نتیجهاش با NOT
معکوس میشه.SELECT * FROM employees
WHERE NOT (age > 30 OR salary < 50000);
برای تغییر اولویت عملگرها و اعمال شرطها به ترتیبی که مورد نظره، میشه از پرانتزها استفاده کرد. در این مثال، اول شرط داخل پرانتز ارزیابی میشه (آیا سن بیشتر از 30 و حقوق بیشتر از 50000 است)، بعد نتیجهاش با شرط خارج پرانتز ترکیب میشه (یا دپارتمان برابر با IT).
SELECT * FROM employees
WHERE (age > 30 AND salary > 50000) OR department = 'IT';
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3👌2👨💻2