اذهب إلى المحتوى
  • 0

بناء نموذج اعتماداً على فكرة ال Pipeline في مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

هي طريقة أكثر ترتيباً وسهولة إذا كنت دقيقاً في التعامل معها لإنجاز مشاريعك.
فمثلاً في الكود التالي قمت ببناء نموذج بسيط واستخدمت فيه ال Pipeline. وهي أداة نمرر لها خطوات الخوارزمية ثم تقوم هي بتنفيذها.
يمكنك استخدامها عبر الموديول:

pipeline.Pipeline

إليك المثال التالي:

from sklearn.linear_model import LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer 
from sklearn.pipeline import Pipeline
from sklearn.metrics import confusion_matrix,accuracy_score, classification_report
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import PolynomialFeatures
from sklearn.preprocessing import StandardScaler

# تحميل الداتا
BostonData = load_boston()
data = BostonData.data
labels = BostonData.target
# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, shuffle =True, random_state=2021)
# الخطوات المراد تنفيذها نعرفها بالشكل التالي ضمن قاموس
steps = [
        ('step1', StandardScaler()),
        ('step2', PolynomialFeatures(degree=2)),
        ('model', RandomForestRegressor())
        ]
# pipeline نقوم بإنشاء 
pipe = Pipeline(steps)
pipe.fit(X_test,y_test)
# مرحلة التقييم
prediction = pipe.predict(X_test)
pipe.score(X_test,y_test) # 0.9637792975442071

أو بالشكل التالي باستخدام الكلاس make_pipeline من نفس الموديول pipeline كالتالي:

from sklearn.linear_model import LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer 
from sklearn.pipeline import make_pipeline
from sklearn.metrics import confusion_matrix,accuracy_score, classification_report
from sklearn.model_selection import train_test_split
import pandas as pd
# نقوم بتحميل الداتا
Data = pd.read_csv('D:/train.csv')
Data['Tweet'] =Data['Tweet'].astype(str)  
Data['Class'].replace({"abusive":0,"hate":0,"normal":1},inplace=True) 
data = Data['Tweet']
label = Data["Class"]
# تقسيم الداتا
X_train, X_test, Y_train, Y_test = train_test_split(data, label, test_size = 0.2, random_state = 2021)
# pipeline نقوم بإنشاء 
pipe = make_pipeline(TfidfVectorizer(),LogisticRegression()) # نضع داخله الخطوات التي نريدها بشكل متتالي 
pipe.fit(X_train,Y_train)
# مرحلة التقييم
prediction = pipe.predict(X_test)
print(f"Accuracy score is {accuracy_score(prediction, Y_test):.2f}")
print(classification_report(prediction, Y_test))

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...