انضموا إلى بثي الآن جميعًا 😁

شاهد النسخة الأصلية
FearlessHadia
[منتهي] تشكل عملة USDC حوالي 70 في المائة من حجم تداول العملات المستقرة في si
live-cover
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 1
  • إعادة النشر
  • مشاركة
تعليق
إضافة تعليق
إضافة تعليق
Venüs_
· منذ 9 س
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
import xgboost as xgb
import warnings
warnings.filterwarnings('ignore')

# Load dataset (assume CSV file named 'dataset.csv' with target column 'target')
df = pd.read_csv('dataset.csv')

# Separate features and target
X = df.drop('target', axis=1)
y = df['target']

# Identify numeric and categorical columns
numeric_features = X.select_dtypes(include=[np.number]).columns.tolist()
categorical_features = X.select_dtypes(include=['object']).columns.tolist()

# Preprocessing pipeline
numeric_transformer = Pipeline(steps=[('scaler', StandardScaler())])
categorical_transformer = Pipeline(steps=[('onehot', OneHotEncoder(handle_unknown='ignore'))])

preprocessor = ColumnTransformer(
transformers=[
('num', numeric_transformer, numeric_features),
('cat', categorical_transformer, categorical_features)
])

# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# --- Logistic Regression ---
lr_pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', LogisticRegression(random_state=42, max_iter=1000))])

lr_params = {
'classifier__C': [0.1, 1, 10],
'classifier__solver': ['liblinear', 'lbfgs']
}
lr_grid = GridSearchCV(lr_pipeline, lr_params, cv=5, scoring='f1', n_jobs=-1)
lr_grid.fit(X_train, y_train)
lr_best = lr_grid.best_estimator_

# --- Random Forest ---
rf_pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', RandomForestClassifier(random_state=42))])

rf_params = {
'classifier__n_estimators': [50, 100],
'classifier__max_depth': [5, 10, None],
'classifier__min_samples_split': [2, 5]
}
rf_grid = GridSearchCV(rf_pipeline, rf_params, cv=5, scoring='f1', n_jobs=-1)
rf_grid.fit(X_train, y_train)
rf_best = rf_grid.best_estimator_

# --- XGBoost ---
xgb_pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', xgb.XGBClassifier(random_state=42, use_label_encoder=False, eval_metric='logloss'))])

xgb_params = {
'classifier__n_estimators': [50, 100],
'classifier__max_depth': [3, 6],
'classifier__learning_rate': [0.01, 0.1]
}
xgb_grid = GridSearchCV(xgb_pipeline, xgb_params, cv=5, scoring='f1', n_jobs=-1)
xgb_grid.fit(X_train, y_train)
xgb_best = xgb_grid.best_estimator_

# Evaluation function
def evaluate_model(model, X_test, y_test, model_name):
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred)
prec = precision_score(y_test, y_pred)
rec = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
print(f"{model_name} Performance:")
print(f" Accuracy: {acc:.4f}")
print(f" Precision: {prec:.4f}")
print(f" Recall: {rec:.4f}")
print(f" F1-score: {f1:.4f}\n")
return {'Model': model_name, 'Accuracy': acc, 'Precision': prec, 'Recall': rec, 'F1': f1}

# Evaluate all models
results = []
results.append(evaluate_model(lr_best, X_test, y_test, 'Logistic Regression'))
results.append(evaluate_model(rf_best, X_test, y_test, 'Random Forest'))
results.append(evaluate_model(xgb_best, X_test, y_test, 'XGBoost'))

# Summary comparison
results_df = pd.DataFrame(results)
print("Summary Comparison:")
print(results_df.to_string(index=False))
```
شاهد النسخة الأصليةرد0
  • مُثبت