پرش به محتوا
آکادمی پست پروسس یارآکادمی پست پروسس یار
  • دسته بندی
    • آنالیز داده
    • برنامه نويسي
    • پست پروسس
    • شبکه 5G
    • شبکه GSM
    • شبکه LTE
    • شبکه WCDMA
  • خانه
  • بلاگ
  • درباره ما
  • تماس با ما
0

در حال حاضر خالی است: ریال0

ادامه‌ی خرید

استارتش رو بزن!
آکادمی پست پروسس یارآکادمی پست پروسس یار
  • خانه
  • بلاگ
  • درباره ما
  • تماس با ما

خوشه بندی دیتاهای حجیم به جهت نمایش در نقشه

  • خانه
  • دسته‌بندی نشده
  • خوشه بندی دیتاهای حجیم به جهت نمایش در نقشه
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
دسته‌بندی نشده

خوشه بندی دیتاهای حجیم به جهت نمایش در نقشه

  • 22 تیر, 1403
  • نظرات 0
Cluster_Original

هدف مقاله

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

خوشه بندی

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

خوشه بندی دیتای شبکه GSM با استفاده از پایتون

برای انجام این کار از خروجی تست شبکه GSM  استفاده کردم که شامل فیلدهای زمان،مکان،CellID و RxLevel میباشد، که به شکل زیر روند کلاسه‌سازی داد‌‌ه‌ها را مشخص نمودم:

  • جداسازی سمپل‌ها در بازه‌های پنج تایی
  • ایجاد محدودیت زمانی برای هر کلاستر(زیر 20 ثانیه)
  • ایجاد محدودیت عددی در هر کلاستر(زیر پنح سمپل)

در این مقاله از سمپل‌های سیگنال‌های شبکه GSM استفاده کردم که با استفاده از روش فوق تعداد سمپل‌ها را از 78210 به 19390 سمپل رسانیدم که در ذیل پلات‌های هرکدام را به صورت جداگانه میتوانید مشاهده کنید و همچنین کد نوشه شده در پایان مقاله قرار داده شده است.

Original_Samples
نقشه سمپل‌های اصلی
Clustred_Samples
نقشه سمپل‌های کلاستر شده
				
					def date_diff_in_Seconds(dt1, dt2):
    # Calculate the time difference between dt2 and dt1
    # Step 2: Extract milliseconds separately and add them to the parsed datetime object
    timedelta = datetime.strptime(dt2[:-4], '%m/%d/%Y %H:%M:%S') - datetime.strptime(dt1[:-4], '%m/%d/%Y %H:%M:%S')
    # Return the total time difference in seconds
    return timedelta.days * 24 * 3600 + timedelta.seconds

ef get_2GLocked_IDLE_cluster_fromExcel():
    KPI_gsm = pd.read_excel("Original.xlsx", sheet_name='GSM_KPI')
    lstGSMRanges = []
    base = -150
    offset = 5
    cluster_samples = 10
    cluster_Time = 20
    min = base
    max = base + 5
    while min < 0:
        crange = KPI_gsm.query("`RxLevel` >= @min and `RxLevel` < @max")
        if len(crange.index) >0:
            lstGSMRanges.append(crange)
        min = max
        max += 5
    clusters = pd.DataFrame(columns=['DateTime', 'Latitude', 'Longitude','CellID','RxLevel'])
    c_cluster = pd.DataFrame(columns=['DateTime', 'Latitude', 'Longitude','CellID','RxLevel'])
    cluster_time=10

    for gsmrange in lstGSMRanges:
        for index, row in gsmrange.iterrows():
            c_cluster=c_cluster.append({'DateTime':row['Date Time'],'Latitude':row['Latitude'],'Longitude':row['Longitude'],'CellID':row['Cell-ID'],'RxLevel':row['RxLevel']}, ignore_index=True)
            if len(c_cluster.index) > 1:
                if postfunc.date_diff_in_Seconds(c_cluster.iloc[0]['DateTime'],c_cluster.iloc[len(c_cluster.index)-1]['DateTime']) >= cluster_time or len(c_cluster.index)==5:
                    clusters = clusters.append({'DateTime':c_cluster.loc[0]['DateTime'],'Latitude':c_cluster.loc[0]['Latitude'],'Longitude':c_cluster.loc[0]['Longitude'],'CellID':c_cluster.loc[0]['CellID'],'RxLevel':c_cluster['RxLevel'].mean()}, ignore_index=True)
                    c_cluster = c_cluster.iloc[0:0]
    clusters.to_csv('clusters.csv', index=False)    
				
			
اشتراک گذاری در:
آواتار کاربر
پیمان هوشمند

سلام امیدوارم حال همگی شما خوب باشه.من پیمان هوشمند هستم. مدرس برنامه نویسی و نرم افزارهای تحلیلی در حوزه مخابرات. خود من همیشه به عنوان یه دانش آموزش و دانش پژوه عاشق برنامه نویسی و کارهای آماری بودم و نقطه قوتم حتی در زمان تحصیل خودم هم مباحث برنامه نویسی بخصوص طراحی الگوریتم بوده. بنابراین این درس را خیلی مفهومی و عمیق یاد گرفتم. تفاوت عمیق من با دانشجویان در زمان تحصیلم این بود که در حوزه ای که تحصیل میکردم مشغول به کار بودم و این دلیل بر عمیق تر شدن در حوزه نرم افزار و مخابرات بود و از دانشگاه برای فهم بیشتر مبانی های کارم استفاده کردم. تا به امروز در اکثر سازمانهایی که کار کرده ام در کنار سمت اصلیم ، به عنوان سوپروایزر آموزشی هم فعالیت میکردم و متخصصینی در این حوزه آموزش داده ام و در بازار کار مشغول به کار هستند و در مدتی که کرونا باعث تعطیلی بسیاری از مراکز آموزش بود ، به صورت رایگان در خدمت دانشجویان نرم افزار از دانشگاه های مختلف بودم. همیشه در روش های آموزشیم بدنبال ابتکار و نوآوری هایی از قبیل گیمیفیکیشن و تکنیک های شناختی به جهت بهبود یادگیری بوده ام.

محاسبه پایلوت پلوشن LTE به صورت خودکار با استفاده از نرم افزار Tems Discovery
ویدیو کارگاه کتابخانه های کاربردی پایتون در پست پروسس و آنالیز داده

پاسخ دهید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جستجو

دسته بندی مقالات

  • آنالیز داده
  • دسته‌بندی نشده
  • کارگاهها
  • یادگیری
logo-dark

پست پروسس یار تخصصی ترین آکادمی آموزش حوزه مخابرات و کامپیوتر

تماس: 09937262668
ایمیل: info@postprocessyar.com

Icon-facebook Icon-linkedin2 Icon-instagram Icon-twitter

منو

  • خانه
  • بلاگ
  • درباره ما
  • تماس با ما

خبرنامه

برای دریافت جدیدترین اخبار ایمیل خود را وارد کنید

نماد اعتماد الکترونیکی logo-samandehi
کپی رایت 2025 پست پروسس یار | طراحی پست پروسس یار. تمامی حقوق محفوظ است
آکادمی پست پروسس یارآکادمی پست پروسس یار
ورودثبت نام

ورود

هنوز حساب ندارید؟ ثبت نام
رمز عبور خود را فراموش کرده اید؟

ثبت نام

در حال حاضر یک حساب کاربری دارید؟ ورود