پیش بینی برنده انتخابات ریاست جمهوری 2024 ایالات متحده با استفاده از یادگیری ماشینی


نویسنده(ها): سانجی نانداکومار

در ابتدا منتشر شد به سمت هوش مصنوعی.

عکس توسط جاشوا ورونیسکی در پاشیدن

فهرست مطالب

  • مقدمه
  • مروری بر روش شناسی
  • تجزیه و تحلیل داده های اکتشافی (EDA).
  • آماده سازی داده ها (داده های مصنوعی)
  • مهندسی ویژگی و انتخاب
  • انتخاب مدل و آموزش
  • ارزیابی مدل و معیارها
  • تفسیرپذیری مدل و اهمیت ویژگی
  • نتیجه گیری
  • مسیرهای آینده

مقدمه

جهان نگاه خود را معطوف به انتخابات ریاست جمهوری 2024 آمریکا کرده است که بین دو حزب بزرگ جمهوری خواه و دموکرات برگزار می شود. در حالی که نظرسنجی های سنتی یک عکس فوری خوب ارائه می دهند، یادگیری ماشینی مطمئناً با دیدگاه مبتنی بر داده در مورد چیزها عمیق تر می شود. در این مقاله، چگونگی پیش‌بینی انتخابات را بررسی خواهیم کرد یادگیری ماشینی، تظاهر به داده های مصنوعی برای تقلید از عوامل اجتماعی-اقتصادی و سیاسی و بحث در مورد تکنیک های لازم برای استفاده از یادگیری ماشین در موقعیت های پیچیده دنیای واقعی.

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

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

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

مروری بر روش شناسی

در کارمان این مراحل را دنبال می کنیم:

  • تولید داده: یک ماده مصنوعی تولید کنید مجموعه داده که تأثیراتی بر رفتار رأی دهندگان دارد.
  • تجزیه و تحلیل داده های اکتشافی: تجزیه و تحلیل داده های اکتشافی را برای درک توزیع، روابط و همبستگی ویژگی ها انجام دهید.
  • مهندسی ویژگی و انتخاب: مهندسی ویژگی برای گرفتن الگوهای مهم خاص و انتخاب ویژگی فقط توسط افراد مهم انتخاب می شود.
  • مدل سازی و آموزش: مدل های مختلف ML آموزش داده شده بر روی الگوهای فرعی در داده ها.
  • ارزیابی-و-تفسیر: اندازه‌گیری و تفسیرپذیری عملکرد امکان رمزگشایی پیش‌بینی مدل را فراهم می‌کند.

آماده سازی داده ها (داده های مصنوعی)

تولید مجموعه داده

داده‌های ترکیبی شامل سن، تحصیلات، درآمد، همسویی سیاسی، مصرف رسانه‌ای، و وابستگی متغیر هدف به حزب به همان روشی که رفتار رأی‌گیری در دنیای واقعی ایجاد می‌شود، تولید می‌شود.

import pandas as pd
import numpy as np

# Set a random seed for reproducibility
# Ensures that the randomly generated data will be the same each time the code runs
np.random.seed(42)

# Define the number of samples (voters) to generate
n_samples = 1000

# Generate synthetic data for 1000 voters
data = {
'age': np.random.randint(18, 90, n_samples), # Random ages between 18 and 89
'education': np.random.choice(['High School', 'Bachelor', 'Master', 'PhD'], n_samples), # Random educational levels
'income': np.random.normal(60000, 15000, n_samples), # Normally distributed income around 60,000 with std. dev. of 15,000
'political_alignment': np.random.choice(['Conservative', 'Liberal', 'Moderate'], n_samples), # Random political alignment
'media_consumption': np.random.choice(['Conservative', 'Liberal', 'Mixed'], n_samples), # Preferred media type
'party_affiliation': np.random.choice(['Republican', 'Democrat'], n_samples) # Randomly assigned political party affiliation
}

# Create a DataFrame from the generated data
df = pd.DataFrame(data)

# Display the first few rows of the DataFrame to inspect the generated data
print(df.head())

(تصویر شده با استفاده از نوت بوک Jupyter)

توضیحات ویژگی ها:

  • سن: رای دهندگان متعلق به گروه های مختلف بر اساس سن خود ممکن است جهت گیری های سیاسی متفاوتی داشته باشند: رای دهندگان جوان تمایل دارند مترقی تر باشند، در حالی که احتمالاً جمعیت مسن تر ممکن است محافظه کار باشند.
  • تحصیلات: تحصیلات به خوبی با جهت گیری سیاسی مرتبط است و بر رفتار رأی دهی تأثیر می گذارد.
  • درآمد: ملاحظات اقتصادی بزرگترین دلیل انگیزشی همه فعالیت های سیاسی را تشکیل می دهد، مردم از احزاب خاص عمدتاً بر اساس برنامه اقتصادی خود حمایت می کنند.
  • همسویی سیاسی: همسویی خود گزارش شده (محافظه کار، لیبرال، میانه رو) باعث بروز انواع رفتارهای رای گیری پیش بینی شده می شود.
  • مصرف رسانه: انتخاب رسانه می تواند باورهای ایدئولوژیک را تقویت کند و بر شکل گیری عقاید تأثیر بگذارد.

متغیر هدف:

  • وابستگی حزبی: نشان می دهد که آیا یک پاسخ دهنده تمایل دارد طرفدار جمهوری یا حزب دموکرات باشد

تجزیه و تحلیل داده های اکتشافی (EDA).

یک مطالعه در سطح بالایی از تجزیه و تحلیل داده های اکتشافی (EDA) با هدف درک توزیع ها، روابط و مشکلات بالقوه در داده ها خدمت می کند. EDA با تجسم توزیع ویژگی های مختلف و روابط بین ویژگی ها و متغیر هدف شروع می کند.

مراحل مهم EDA:

  • تجزیه و تحلیل توزیع: توزیع متغیرهای پیوسته مانند سن و درآمد را ترسیم کنید.
  • تحلیل دو متغیره: بررسی ویژگی هایی که به طور بالقوه بر متغیر هدف تأثیر می گذارند.
import seaborn as sns
import matplotlib.pyplot as plt

# Plot the distribution of voter ages
plt.figure(figsize=(10, 5)) # Set the figure size
sns.histplot(df['age'], kde=True) # Plot a histogram with a kernel density estimate (kde) for age
plt.title('Age Distribution of Voters') # Set the title of the plot
plt.show() # Display the plot

# Plot the distribution of voter incomes
plt.figure(figsize=(10, 5)) # Set the figure size
sns.histplot(df['income'], kde=True) # Plot a histogram with kde for income
plt.title('Income Distribution of Voters') # Set the title of the plot
plt.show() # Display the plot

(تصویر شده با استفاده از نوت بوک Jupyter)
(تصویر شده با استفاده از نوت بوک Jupyter)

تجزیه و تحلیل

این تحلیل اولیه به شناسایی الگوهای سن، درآمد و تأثیر آنها بر وابستگی به حزب کمک می کند. به عنوان مثال، اگر رای دهندگان جوان تر به دموکرات و رای دهندگان مسن تر متمایل به جمهوری خواه باشند، این الگو می تواند مهندسی ویژگی و انتخاب مدل را راهنمایی کند.

مهندسی ویژگی و انتخاب

رمزگذاری متغیرهای طبقه بندی شده

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

# Encode categorical variables using one-hot encoding
# This converts each category into a binary column (0 or 1), excluding the first category (drop_first=True) to avoid multicollinearity
df_encoded = pd.get_dummies(df, columns=['education', 'political_alignment', 'media_consumption'], drop_first=True)

# Convert 'party_affiliation' to a binary variable
# Use 1 for 'Democrat' and 0 for 'Republican' to simplify analysis
df_encoded['party_affiliation'] = df_encoded['party_affiliation'].apply(lambda x: 1 if x == 'Democrat' else 0)

# Display the first few rows of the encoded DataFrame to verify the transformations
print(df_encoded.head())

(تصویر شده با استفاده از نوت بوک Jupyter)

استفاده کنید همبستگی ماتریس هایی برای شناسایی ویژگی های بسیار همبسته پس از رمزگذاری –

# Perform and visualize correlation analysis
# Note: This requires 'df_encoded' to be a version of 'df' where categorical data has been encoded numerically
sns.heatmap(df_encoded.corr(), annot=True, cmap="coolwarm") # Plot the heatmap of correlations with annotations
plt.title("Correlation Matrix") # Set the title for the correlation matrix plot
plt.show() # Display the plot
(تصویر شده با استفاده از نوت بوک Jupyter)

انتخاب ویژگی

ویژگی ها بر اساس تحلیل همبستگی، دانش حوزه و تعاملات بالقوه با سایر ویژگی ها انتخاب می شوند.

انتخاب مدل و آموزش

برای این کار، از سه مدل استفاده می کنیم که هر کدام مزایای منحصر به فردی را ارائه می دهند:

  1. رگرسیون لجستیک: برای عملکرد پایه با قابلیت تفسیر در طبقه بندی باینری مفید است.
  2. جنگل تصادفی: روابط غیر خطی را از طریق گروه ضبط می کند درختان تصمیم.
  3. افزایش گرادیان: به‌طور متوالی درخت‌ها را می‌سازد، با تمرکز بر خطاهای باقی‌مانده برای بهبود دقت.
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report

# Split data into features and target
X = df_encoded.drop('party_affiliation', axis=1)
y = df_encoded['party_affiliation']

# Split data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Initialize models
log_reg = LogisticRegression(random_state=42, max_iter=500)
rf = RandomForestClassifier(random_state=42)
gb = GradientBoostingClassifier(random_state=42)

# Train and evaluate each model
models = {'Logistic Regression': log_reg, 'Random Forest': rf, 'Gradient Boosting': gb}
for name, model in models.items():
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(f"{name} Accuracy: {accuracy_score(y_test, y_pred):.2f}")
print(classification_report(y_test, y_pred))

(تصویر شده با استفاده از نوت بوک Jupyter)

توضیحات مدل به تفصیل:

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

ارزیابی مدل و معیارها

ارزیابی معیارها برای امتیازدهی به عملکرد مدل اهمیت زیادی دارد. تمرکز بر روی:

  1. دقت: معیاری برای عملکرد کلی
  2. دقت و یادآوری: برای جلوگیری از طبقه بندی نادرست وابستگی های حزبی در پیش بینی های انتخاباتی حیاتی است.
  3. F-Measure: دقت و یادآوری را متعادل می کند و در مورد داده های نامتعادل مفید است.

تفسیرپذیری مدل و اهمیت ویژگی

SHAP برای تفسیرپذیری مدل

SHAP که مخفف Shapley Additive Explanations است، نشان می‌دهد که کدام ویژگی‌ها باعث پیش‌بینی‌های مدل ما می‌شوند. SHAP با نسبت دادن ویژگی‌ها به پیش‌بینی‌ها، به باز کردن قفل جعبه سیاه روش‌های گروه کمک می‌کند.

import shap

# Initialize a SHAP explainer for the Gradient Boosting model
# This calculates the SHAP values, which explain the influence of each feature on predictions
explainer = shap.TreeExplainer(gb)

# Calculate SHAP values for the test set
# SHAP values represent the impact of each feature on the predictions for each instance in the test set
shap_values = explainer.shap_values(X_test)

# Display a SHAP summary plot
# The summary plot provides a bar chart of mean absolute SHAP values, showing feature importance
# 'plot_type="bar"' displays the average magnitude of feature impacts across the test set
shap.summary_plot(shap_values, X_test, plot_type="bar", feature_names=X.columns)

(تصویر شده با استفاده از نوت بوک Jupyter)

توضیح تحلیل SHAP

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

نتیجه گیری

خلاصه

از طریق این تمرین، پیش‌بینی‌های نتایج رای‌گیری را با مدل‌های یادگیری ماشین بر اساس داده‌های مصنوعی شبیه‌سازی کردیم. بینش برای هر مدل منحصر به فرد بود:

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

رگرسیون لجستیک

دقت: 0.53
بینش: رگرسیون لجستیک بهترین دقت را در بین همه مدل ها (تقریبا کمی بهتر از حدس زدن تصادفی) با دقت متعادل و یادآوری در بین کلاس ها ارائه می دهد. اگرچه قابل تفسیر است، اما رگرسیون لجستیک به خوبی برای زمینه مشکل تعمیم داده نشده است، که نشان دهنده ناتوانی آن در مدیریت روابط غیر خطی و پیچیده است که داده ها در آن ریشه دارند.

جنگل تصادفی

دقت: 0.50
بینش: Random Forest دقتی نزدیک به حدس تصادفی (یعنی در 0.50) با دقت و یادآوری متعادل داد و نتوانست از رگرسیون لجستیک پیشی بگیرد. این نتیجه نشان می‌دهد که یا یک فرآیند بیش از حد برازش در جریان است یا اینکه Random Forest به دلیل قدرت پیش‌بینی نسبتاً پایین ویژگی‌های مصنوعی با مشکلاتی مواجه شده است.

افزایش گرادیان:

دقت: 0.48

بینش: Gradient Boosting بدترین عملکرد را داشت، با دقت 0.48، که نشان می دهد احتمالاً به اندازه کافی از مجموعه داده مصنوعی یاد نگرفته است، یا مجموعه داده از هر ویژگی پیچیده ای که قابل تشخیص است اجتناب کرده است. دقت و یادآوری برای هر کلاس تقریباً برابر با رگرسیون لجستیک بود که نشان‌دهنده قدرت پیش‌بینی – تمایز محدود است.

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

خوراکی های کلیدی

  • اهمیت ویژگی: با عملکرد ضعیف مدل‌ها، تحلیل اهمیت ویژگی ممکن است نشان دهد که کدام ویژگی، اگرچه ضعیف، در پیش‌بینی‌ها نقش داشته است. هنگام استفاده، مقادیر SHAP به شناسایی مهم‌ترین ویژگی‌ها مانند سن، درآمد و همسویی سیاسی کمک می‌کند. با این حال، آنها ممکن است پیش بینی کننده قدرتمندی برای این مجموعه داده مصنوعی نبوده باشند. این تحلیل بر نیاز به ویژگی‌های آموزنده و تأثیرگذار در مدل‌های پیش‌بینی سیاسی تأکید می‌کند، با توجه به اینکه ویژگی‌های کنونی مانند درآمد و مصرف رسانه‌ها ممکن است به اندازه کافی پیچیدگی‌های رفتار رأی‌گیری را نشان ندهند.
  • عملکرد مدل: همه مدل‌های رگرسیون لجستیک، جنگل تصادفی و تقویت گرادیان توانایی پیش‌بینی بسیار کمی را با دقت نزدیک به حدس تصادفی (0.50) نشان داده‌اند. رگرسیون لجستیک، اگرچه بالاترین دقت 0.53 را به دست آورد، اما همچنان نشان می دهد که مدل ها باید برای یافتن هر گونه الگوی معنی دار در داده های شبیه سازی شده تلاش کرده باشند.
  • انتخاب مدل: رگرسیون لجستیک بهترین عملکرد کلی را داشت، اگرچه تفاوت معنی‌داری بین مدل‌ها وجود نداشت. این نشان می دهد که با یک مجموعه داده ساده، یک مدل ساده تر باید در نظر گرفته شود. بهبود جنگل تصادفی و تقویت گرادیان در سطوح مورد انتظار محقق نشد، احتمالاً به دلیل تطبیق بیش از حد یا عدم وجود ویژگی‌های با کیفیت بالا.
  • تفسیرپذیری و معیارها: همه مدل‌ها دقت و یادآوری مشابهی در بین کلاس‌ها دارند، اما امتیازات پایین F1 نشان می‌دهد که هیچ مدلی در تشخیص کلاس‌ها موفق نبوده است. بنابراین، عملکرد بسیار پایین، به نیاز به مهندسی ویژگی های اضافی یا جمع آوری داده های آموزنده تر برای افزایش قابلیت تفسیر و قدرت آماری در پیش بینی های انتخابات اشاره دارد.

مسیرهای آینده

برای برنامه های کاربردی دنیای واقعی، باید پیشرفت هایی وجود داشته باشد:

  • داده های دنیای واقعی: برای دقت بیشتر، از داده های جمعیتی و نظرسنجی رای دهندگان واقعی استفاده کنید.
  • تکنیک های پیشرفته: مدل‌های پیشرفته‌تری مانند XGBoost یا شبکه‌های عصبی را برای ثبت تعاملات ظریف‌تر در نظر بگیرید.
  • تجزیه و تحلیل سری زمانی: از داده های رای گیری تاریخی و روندهای زمانی در نظرسنجی استفاده کنید تا توسعه نگرش ها را در میان رای دهندگان به تصویر بکشید.
  • گنجاندن NLP: ارزیابی افکار عمومی از رسانه های اجتماعی یا مقالات خبری برای ایجاد احساسات در ویژگی های پیش بینی.

این نشان می دهد که چگونه فرآیندهای علم داده و یادگیری ماشین، بینش هایی را در مورد نتایج انتخابات نشان می دهد. در حالی که ما داده‌های ترکیبی را برای نمایش ارائه کرده‌ایم، این تکنیک‌ها به عنوان کمک‌های بصری ارزشمندی برای درک و پیش‌بینی الگوهای رأی‌گیری، و بینش پیش‌بینی‌کننده در تصمیم‌گیری با ریسک بالا عمل می‌کنند.

توجه: تحلیل آموزشی است. عملاً، پیش‌بینی نتیجه یک انتخابات به داشتن مجموعه داده‌های جامع و اعتبارسنجی آن بستگی دارد، هم بر اساس آنها و هم به بسیاری از عوامل زمینه‌ای خارجی.

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/l/predicting-the-2024-u-s-presidential-election-winner-using-machine-learning