tgoop.com/tensorphilia/217
Create:
Last Update:
Last Update:
🔸Voting Classifiers
🔹طبقهبندهای رأیگیری چندین مدل طبقهبندی را برای بهبود دقت کلی پیشبینی ترکیب میکند.
ایده اصلی این است که پیشبینیهای چندین مدل را ترکیب کنیم و از نقاط قوت آنها برای دستیابی به یک طبقهبند قویتر استفاده کنیم.
■دو نوع اصلی رأیگیری وجود دارد:
• Hard Voting:
کلاسی که بیشترین رأی (یعنی کلاس اکثریت) را دریافت میکند، بهعنوان پیشبینی نهایی انتخاب میشود.
• Soft Voting:
احتمالهای هر کلاس از هر طبقهبندی ترکیب میشوند و کلاسی که بالاترین احتمال میانگین را دارد، انتخاب میشود.
🔺مثال
در ادامه به یک پیادهسازی با استفاده از رگرسیون لجستیک، ماشین پشتیبان (SVM)، و جنگل تصادفی(Random forest) میپردازیم:
from sklearn.ensemble import VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# مرحله 1: ایجاد یک مجموعه داده مصنوعی
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# مرحله 2: تعریف مدلهای پایه
log_reg = LogisticRegression(solver='liblinear')
svm = SVC(probability=True) # تنظیم probability=True برای رأیگیری نرم
random_forest = RandomForestClassifier(n_estimators=100)
# مرحله 3: ایجاد طبقهبند رأیگیری
voting_classifier = VotingClassifier(
estimators=[
('lr', log_reg),
('svm', svm),
('rf', random_forest)
],
voting='soft' # انتخاب 'hard' برای رأیگیری سخت
)
# مرحله 4: آموزش مدل
voting_classifier.fit(X_train, y_train)
# مرحله 5: انجام پیشبینی و ارزیابی
y_pred = voting_classifier.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"دقت طبقهبند رأیگیری: {accuracy:.2f}")
✨ توضیح کد:
۱. ایجاد مجموعه داده: ما یک مجموعه داده مصنوعی با استفاده از
make_classification
ایجاد میکنیم. این شامل ویژگیها و برچسبهای کلاسی باینری است.۲. تعریف مدلها: سه مدل پایه را تعریف میکنیم:
- رگرسیون لجستیک: یک مدل خطی ساده برای طبقهبندی باینری.
- ماشین پشتیبان (SVM): مهم است که
probability=True
را تنظیم کنیم تا بتوانیم از رأیگیری نرم استفاده کنیم.- جنگل تصادفی(Random forest): یک مجموعه از درختان تصمیم که در برابر اورفیتینگ مقاوم است.
۳. طبقهبند رأیگیری: ما یک
VotingClassifier
ایجاد میکنیم که سه مدل پایه ما را در بر میگیرد.ما
voting='soft'
را انتخاب میکنیم تا از احتمالهای پیشبینیشده برای پیشبینیها استفاده کنیم.۴. آموزش مدل: مدل با استفاده از مجموعه دادههای آموزشی آموزش دیده میشود.
۵. پیشبینی و ارزیابی: در نهایت، ما برچسبها را برای مجموعه آزمایشی پیشبینی کرده و دقت طبقهبند رأیگیری را ارزیابی میکنیم.
🤖➖➖➖➖➖➖➖➖➖➖
🆔 Telegram | LinkedIn | YouTube
BY Tensorphilia
Share with your friend now:
tgoop.com/tensorphilia/217