از پاسخهای نظرسنجی تا بینش مصرفکننده: ایجاد یک خط لوله تقسیمبندی مصرفکننده مدیکید با پایتون، K-Means و Tableau

مقدمه
سازمانهای مراقبتهای بهداشتی حجم عظیمی از دادههای مربوط به تجربه مصرفکننده را جمعآوری میکنند، اما بخش زیادی از آن هنوز با استفاده از میانگینهای ساده و گزارشهای خلاصه تجزیه و تحلیل میشود.
یکی از ارزشمندترین منابع بازخورد مصرفکنندگان، نظرسنجی « ارزیابی مصرفکننده از ارائهدهندگان و سیستمهای مراقبتهای بهداشتی» (CAHPS) است. CAHPS که توسط سازمانهای مراقبتهای مدیریتشده Medicaid، طرحهای Medicare Advantage و سایر برنامههای مراقبتهای بهداشتی استفاده میشود، تجربیات اعضا را در مورد طرحهای بهداشتی، ارائهدهندگان، خدمات مشتری و دسترسی به مراقبتهای بهداشتی میسنجد.
بیشتر سازمانها داشبوردهایی میسازند که به سوالاتی مانند موارد زیر پاسخ میدهند:
میانگین امتیاز کلی ما چقدر است؟
چند نفر از اعضا در نظرسنجی شرکت کردند؟
کدام استان بالاترین میزان رضایت را دارد؟
اگرچه این معیارها مفید هستند، اما به ندرت به یک سوال مهمتر پاسخ میدهند:
آیا گروههای مختلف اعضا نیازهای مراقبتهای بهداشتی متفاوتی دارند؟
برای مثال، دو عضو ممکن است هر دو به طرح سلامت خود امتیاز «۷» بدهند، اما به دلایل کاملاً متفاوت.
ممکن است کسی از مراقبتهای بالینی راضی باشد اما از خدمات مشتری ناامید باشد.
دیگری ممکن است برای یافتن ارائه دهندگان خدمات درمانی در شبکه با مشکل مواجه شود.
یک سوم ممکن است به سادگی به آموزش بیشتر در مورد مزایای موجود نیاز داشته باشند.
اگر با هر عضو به طور یکسان رفتار کنیم، کمپینهای اطلاعرسانی کمتر مؤثر میشوند.
در عوض، میتوانیم از یادگیری ماشینی برای شناسایی گروههای طبیعی مصرفکنندگان و تنظیم ارتباطات بر اساس ویژگیهای آنها استفاده کنیم.
در این آموزش، ما یک خط لوله تقسیمبندی مصرفکننده ساده با استفاده از پایتون، Scikit-learn و خوشهبندی K-Means خواهیم ساخت، سپس نتایج را برای مصورسازی در Tableau آماده میکنیم.
سازمانهای مراقبتهای بهداشتی منابع قابل توجهی را صرف اطلاعرسانی به اعضا میکنند:
یادآوریهای مراقبتهای پیشگیرانه
اطلاعیههای تمدید
کمپینهای سلامتی
مدیریت مراقبت
پیگیری خدمات مشتریان
با این حال، ارسال پیامهای یکسان به هر عضو به ندرت بهترین نتایج را به همراه دارد.
تقسیمبندی مصرفکنندگان به سازمانها این امکان را میدهد که به سؤالاتی مانند موارد زیر پاسخ دهند:
کدام اعضا مشارکت بالایی دارند؟
کدام اعضا به آموزش اضافی نیاز دارند؟
کدام اعضا مرتباً با خدمات مشتری تماس میگیرند؟
کدام جمعیتها ممکن است از مدیریت مراقبت بهرهمند شوند؟
سازمانها میتوانند به جای ایجاد یک کمپین واحد برای همه، استراتژیهای تعامل شخصیسازیشدهای را برای هر بخش از مصرفکنندگان ایجاد کنند.
برای این مثال، ما از یک مجموعه داده سادهشده به سبک CAHPS استفاده خواهیم کرد.
import pandas as pd df = pd.DataFrame({ "Member_ID":[1001,1002,1003,1004,1005,1006,1007,1008,1009,1010], "Age":[26,58,44,67,31,52,61,37,49,29], "Overall_Rating":[10,6,8,5,9,7,6,9,8,10], "Provider_Communication":[10,5,9,4,9,7,5,8,8,10], "Customer_Service":[9,4,8,3,8,6,4,8,7,9], "Access_To_Care":[9,5,8,4,9,7,5,8,7,9], "Portal_Logins":[18,2,10,1,15,5,2,12,8,20], "Call_Center_Contacts":[1,7,3,8,1,4,6,2,3,1] })هر ردیف نشان دهنده یک عضو Medicaid است که یک نظرسنجی CAHPS را تکمیل کرده است.import pandas as pd df = pd.DataFrame({ "Member_ID":[1001,1002,1003,1004,1005,1006,1007,1008,1009,1010], "Age":[26,58,44,67,31,52,61,37,49,29], "Overall_Rating":[10,6,8,5,9,7,6,9,8,10], "Provider_Communication":[10,5,9,4,9,7,5,8,8,10], "Customer_Service":[9,4,8,3,8,6,4,8,7,9], "Access_To_Care":[9,5,8,4,9,7,5,8,7,9], "Portal_Logins":[18,2,10,1,15,5,2,12,8,20], "Call_Center_Contacts":[1,7,3,8,1,4,6,2,3,1] })
متغیرهای ما شامل موارد زیر است:
| متغیر | توضیحات |
|---|---|
| سن | سن عضو |
| امتیاز کلی | رتبهبندی کلی طرح سلامت (0-10) |
| ارتباطات_ارائهدهنده | رضایت از ارائه دهندگان |
| خدمات_مشتری | رضایت از خدمات مشتری |
| دسترسی به مراقبت | سهولت دریافت خدمات درمانی |
| ورودهای_پورتال | تعداد ورود به پورتال اعضا |
| مخاطبین مرکز تماس | تعداد تعاملات خدمات مشتری |
اگرچه ساده شده است، اما این متغیرها شبیه به انواع دادههایی هستند که تحلیلگران مراقبتهای بهداشتی معمولاً با آنها کار میکنند.
قبل از ساخت هر مدل یادگیری ماشینی، باید مجموعه دادهها را درک کنیم.
print(df.info()) print(df.describe())مقادیر از دست رفته را بررسی کنید.print(df.info()) print(df.describe())
مجموعه دادههای نظرسنجیهای مراقبتهای بهداشتی اغلب حاوی سوالات بیپاسخ یا پاسخهای ناقص هستند. print(df.isnull().sum())یک استراتژی رایج، جایگزینی مقادیر گمشده با استفاده از میانه است.
from sklearn.impute import SimpleImputer imputer = SimpleImputer(strategy="median") numeric_columns = df.columns.drop("Member_ID") df[numeric_columns] = imputer.fit_transform(df[numeric_columns])الگوریتمهای یادگیری ماشین زمانی که متغیرها در مقیاسهای مشابه باشند، عملکرد بهتری دارند.from sklearn.impute import SimpleImputer imputer = SimpleImputer(strategy="median") numeric_columns = df.columns.drop("Member_ID") df[numeric_columns] = imputer.fit_transform(df[numeric_columns])
برای مثال:
محدوده سنی از ۱۸ تا ۹۰ سال.
تعداد دفعات ورود به پورتال میتواند از ۰ تا ۵۰ متغیر باشد.
رتبهبندیهای نظرسنجی از ۰ تا ۱۰ متغیر است.
بدون نرمالسازی، متغیرهایی با مقادیر بزرگتر، فرآیند خوشهبندی را تحت سلطه خود قرار میدهند.
from sklearn.preprocessing import StandardScaler features = [ "Age", "Overall_Rating", "Provider_Communication", "Customer_Service", "Access_To_Care", "Portal_Logins", "Call_Center_Contacts" ] X = df[features] scaler = StandardScaler() X_scaled = scaler.fit_transform(X)یکی از چالشهای الگوریتم K-Means، تصمیمگیری در مورد تعداد خوشههایی است که باید ایجاد شوند.from sklearn.preprocessing import StandardScaler features = [ "Age", "Overall_Rating", "Provider_Communication", "Customer_Service", "Access_To_Care", "Portal_Logins", "Call_Center_Contacts" ] X = df[features] scaler = StandardScaler() X_scaled = scaler.fit_transform(X)
یک رویکرد رایج، روش آرنج (Elbow Method) است.
from sklearn.cluster import KMeans import matplotlib.pyplot as plt inertia = [] for k in range(1,8): model = KMeans( n_clusters=k, random_state=42, n_init=10 ) model.fit(X_scaled) inertia.append(model.inertia_) plt.plot(range(1,8), inertia, marker="o") plt.xlabel("Number of Clusters") plt.ylabel("Within Cluster Sum of Squares") plt.title("Elbow Method") plt.show()نقطهای که منحنی شروع به صاف شدن میکند، تعداد مناسبی از خوشهها را نشان میدهد.from sklearn.cluster import KMeans import matplotlib.pyplot as plt inertia = [] for k in range(1,8): model = KMeans( n_clusters=k, random_state=42, n_init=10 ) model.fit(X_scaled) inertia.append(model.inertia_) plt.plot(range(1,8), inertia, marker="o") plt.xlabel("Number of Clusters") plt.ylabel("Within Cluster Sum of Squares") plt.title("Elbow Method") plt.show()
برای این آموزش، از چهار خوشه استفاده خواهیم کرد.
kmeans = KMeans( n_clusters=4, random_state=42, n_init=10 ) df["Cluster"] = kmeans.fit_predict(X_scaled)اکنون هر عضو به یکی از چهار بخش مصرفکننده تعلق دارد.kmeans = KMeans( n_clusters=4, random_state=42, n_init=10 ) df["Cluster"] = kmeans.fit_predict(X_scaled)
تکالیف را مشاهده کنید.
print( df[ ["Member_ID","Cluster"] ] )شمارههای خوشه به تنهایی معنای چندانی ندارند.print( df[ ["Member_ID","Cluster"] ] )
بیایید میانگین ویژگیها را برای هر گروه محاسبه کنیم.
cluster_summary = df.groupby("Cluster")[features].mean() print(cluster_summary.round(2))تفسیر نمونه:cluster_summary = df.groupby("Cluster")[features].mean() print(cluster_summary.round(2))
خوشه ۰ – قهرمانان دیجیتال
استفاده مکرر از پورتال
رضایت بالا
به ندرت با خدمات مشتریان تماس میگیرد
استراتژی پیشنهادی:
کمپینهای سلامتی
یادآوریهای مراقبتهای پیشگیرانه
بهبودهای اپلیکیشن موبایل
خوشه ۱ – اعضای هماهنگی مراقبت
جمعیت مسنتر
نمرات پایینتر در ارتباط با ارائهدهنده خدمات
استفاده بیشتر از خدمات درمانی
استراتژی پیشنهادی:
مدیریت مراقبت
پشتیبانی بیماریهای مزمن
ناوبری ارائه دهنده
خوشه ۲ – اعضای با پشتیبانی بالا
رضایت کم
تماسهای مکرر با مرکز تماس
امتیاز پایینتر دسترسی به مراقبتهای بهداشتی
استراتژی پیشنهادی:
خدمات مشتری پیشگیرانه
مدیریت پرونده
حمایت از اعضا
خوشه ۳ – اعضای با تعامل متوسط
رضایت متوسط
تعامل دیجیتال متوسط
تعاملات گاه به گاه با مشتریان
استراتژی پیشنهادی:
آموزش سودمند
یادآوریهای سالانه سلامتی
کمپینهای تعامل دیجیتال
کاربران تجاری به ندرت به «خوشه ۰» یا «خوشه ۲» فکر میکنند.
در عوض، خوشهها را به پرسوناهای توصیفی تبدیل کنید.
persona = { 0:"Digital Champions", 1:"Care Coordination", 2:"High Support", 3:"Moderate Engagement" } df["Persona"] = df["Cluster"].map(persona)حالا هر عضو به یک بخش قابل فهم تعلق دارد.persona = { 0:"Digital Champions", 1:"Care Coordination", 2:"High Support", 3:"Moderate Engagement" } df["Persona"] = df["Cluster"].map(persona)
مجموعه دادههای غنیشده را صادر کنید.
df.to_csv( "Consumer_Segmentation.csv", index=False )اکنون Tableau میتواند مستقیماً به این فایل متصل شود.df.to_csv( "Consumer_Segmentation.csv", index=False )
طرح داشبورد پیشنهادی:
داشبورد ۱ – نمای کلی مصرفکننده
شاخصهای کلیدی عملکرد (KPI)
کل اعضا
تعداد خوشهها
میانگین امتیاز کلی
میانگین ورود به پورتال
داشبورد 2 - پرسونای مصرف کننده
تجسمها
توزیع خوشهای (نمودار میلهای)
تجزیه و تحلیل پرسونا (نمودار دایرهای)
میانگین رضایت بر اساس پرسونا
میانگین استفاده از پورتال توسط پرسونا
داشبورد ۳ – تحلیل جغرافیایی
نقشهها
شخصیت مصرفکننده بر اساس شهرستان
میانگین رضایت بر اساس منطقه
اطلاعات تماس مرکز تماس بر اساس شهرستان
داشبورد ۴ – تحلیل تعامل
نمودارها
تعداد ورود به پورتال در مقابل امتیاز کلی
مخاطبین مرکز تماس در مقابل رضایت
ارتباط با ارائه دهنده توسط پرسونا
با استفاده از فیلترهای Tableau، کاربران میتوانند موارد زیر را بررسی کنند:
گروه سنی
شهرستان
زبان
طرح سلامت
پرسونای مصرفکننده
این به کاربران تجاری اجازه میدهد تا روندها را بدون نوشتن SQL یا پایتون شناسایی کنند.
هدف خوشهبندی صرفاً ایجاد گروهها نیست، بلکه بهبود تصمیمگیری است.
سازمانها میتوانند به جای ارسال پیامهای یکسان به هر عضو مدیکید، ارتباطات را بر اساس نیازهای مصرفکننده تنظیم کنند.
برای مثال:
| پرسونا | توصیههای ارتباطی |
|---|---|
| قهرمانان دیجیتال | برنامههای سلامتی، یادآوریهای مراقبتهای پیشگیرانه |
| هماهنگی مراقبت | پشتیبانی از بیماریهای مزمن، ناوبری ارائه دهنده خدمات |
| پشتیبانی بالا | پیگیری خدمات مشتریان، مدیریت پروندهها |
| تعامل متوسط | آموزش مزایا، یادآوری تمدید سالانه |
این امر دادههای نظرسنجی را به بینشهای کاربردی مصرفکننده تبدیل میکند.
دادههای نظرسنجی CAHPS چیزی فراتر از نمرات رضایت را در بر میگیرد. این دادهها در ترکیب با یادگیری ماشینی، میتوانند الگوهای معناداری در رفتار مصرفکننده آشکار کنند که داشبوردهای سنتی اغلب از آنها غافل میشوند.
در این آموزش، ما از پایتون برای پاکسازی و آمادهسازی دادههای نظرسنجی استفاده کردیم، متغیرها را استانداردسازی کردیم، از خوشهبندی K-Means برای شناسایی بخشهای مصرفکننده استفاده کردیم، آن بخشها را به عنوان شخصیتهای تجاری تفسیر کردیم و نتایج را برای تجسم در Tableau صادر کردیم.
همین گردش کار را میتوان با گنجاندن اطلاعات ثبتنام، ویژگیهای جمعیتشناختی، میزان استفاده از خدمات درمانی و معیارهای تعامل دیجیتال، به مجموعه دادههای بزرگتر مراقبتهای بهداشتی تعمیم داد. از آنجایی که سازمانهای مراقبتهای بهداشتی همچنان به تصمیمگیری مبتنی بر داده روی میآورند، تقسیمبندی مصرفکننده راهی عملی برای فراتر رفتن از گزارشدهی توصیفی و ارائه تجربیات شخصیتر و متمرکز بر اعضا فراهم میکند.





ارسال نظر