SpaCy
spaCy هي مكتبة بايثون قوية مفتوحة المصدر لمعالجة اللغة الطبيعية المتقدمة (NLP)، معروفة بسرعتها وكفاءتها وميزاتها الجاهزة للإنتاج مثل تقسيم النصوص، وتعيين أجزاء ...
سايكيت-ليرن هي مكتبة بايثون مجانية ومفتوحة المصدر تقدم أدوات بسيطة وفعالة لاستخراج البيانات وتعلم الآلة، بما في ذلك التصنيف، والانحدار، والتجميع، وتقليل الأبعاد.
سايكيت-ليرن، والتي تُكتب أحيانًا scikit-learn أو تُختصر بـ sklearn، هي مكتبة قوية مفتوحة المصدر لتعلم الآلة بلغة البرمجة بايثون. صممت لتقديم أدوات بسيطة وفعالة لتحليل البيانات التنبؤية، وأصبحت مصدرًا لا غنى عنه لعلماء البيانات وممارسي تعلم الآلة حول العالم.
بُنيت سايكيت-ليرن على عدة مكتبات بايثون شهيرة، وهي NumPy وSciPy وmatplotlib. تقدم مجموعة من خوارزميات تعلم الآلة المُراقَب وغير المُراقَب من خلال واجهة متسقة في بايثون. تشتهر المكتبة بسهولة استخدامها، وأدائها، وواجهتها البرمجية النظيفة، مما يجعلها مناسبة للمبتدئين والمستخدمين ذوي الخبرة على حد سواء.
بدأ المشروع باسم scikits.learn كمشروع صيفي ضمن Google Summer of Code على يد ديفيد كورنابو في عام 2007. تم استخدام مساحة الأسماء “scikits” (أدوات SciPy) لتطوير وتوزيع الامتدادات الخاصة بمكتبة SciPy. في عام 2010، تم تطوير المشروع بشكل أكبر بواسطة فابيان بيدريغوزا، غايل فاروكو، ألكسندر غرامفور، وفنسنت ميشيل من المعهد الفرنسي للبحث في علوم الحاسب الآلي والأتمتة (INRIA) في ساكلي، فرنسا.
منذ الإصدار العام الأول في 2010، شهدت سايكيت-ليرن تطورًا كبيرًا بفضل مساهمات مجتمع نشط من المطورين والباحثين. تطورت لتصبح واحدة من أشهر مكتبات تعلم الآلة في بايثون، وتُستخدم على نطاق واسع في الأوساط الأكاديمية والصناعية.
توفر سايكيت-ليرن تنفيذات للعديد من خوارزميات تعلم الآلة من أجل:
تم تصميم سايكيت-ليرن بواجهة برمجية متسقة عبر جميع وحداتها. هذا يعني أنه بمجرد أن تفهم الواجهة الأساسية، يمكنك التبديل بين النماذج المختلفة بسهولة. تعتمد الواجهة على واجهات رئيسية مثل:
fit()
: لتدريب النموذج.predict()
: لإجراء التنبؤات باستخدام النموذج المدرب.transform()
: لتعديل أو تقليل البيانات (تُستخدم في المعالجة المسبقة وتقليل الأبعاد).المكتبة مُحسنة من حيث الأداء، حيث تم تنفيذ الخوارزميات الأساسية باستخدام Cython (وهي امتداد للغة بايثون تمنح أداء قريب من C)، مما يضمن حسابات فعالة حتى مع مجموعات بيانات كبيرة.
تتكامل سايكيت-ليرن بسلاسة مع مكتبات بايثون الأخرى:
يسمح هذا التكامل ببناء عمليات معالجة بيانات مرنة وقوية.
كمكتبة مفتوحة المصدر تحت رخصة BSD، فإن سايكيت-ليرن مجانية للاستخدام الشخصي والتجاري. كما أن وثائقها الشاملة ودعم المجتمع النشط يجعلها متاحة للمستخدمين بجميع المستويات.
تثبيت سايكيت-ليرن سهل، خاصة إذا كان لديك NumPy وSciPy مثبتين بالفعل. يمكنك تثبيتها باستخدام pip:
pip install -U scikit-learn
أو باستخدام conda إذا كنت تستخدم توزيعة Anaconda:
conda install scikit-learn
تُستخدم سايكيت-ليرن لبناء نماذج تنبؤية وإجراء مهام تعلم الآلة المختلفة. فيما يلي الخطوات الشائعة لاستخدام سايكيت-ليرن:
قبل تطبيق خوارزميات تعلم الآلة، يجب معالجة البيانات مسبقًا:
StandardScaler
أو MinMaxScaler
.قسّم مجموعة البيانات إلى مجموعة تدريب واختبار لتقييم أداء النموذج على بيانات غير مرئية:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
اختر الخوارزمية المناسبة بناءً على المشكلة (تصنيف، انحدار، تجميع) ودرب النموذج:
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
استخدم النموذج المدرب لإجراء التنبؤات على بيانات جديدة:
y_pred = model.predict(X_test)
قيّم أداء النموذج باستخدام المقاييس الملائمة:
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
حسّن أداء النموذج من خلال ضبط المعاملات الفائقة باستخدام تقنيات مثل Grid Search أو Random Search:
from sklearn.model_selection import GridSearchCV
param_grid = {'n_estimators': [100, 200], 'max_depth': [3, 5, None]}
grid_search = GridSearchCV(RandomForestClassifier(), param_grid)
grid_search.fit(X_train, y_train)
تحقق من أداء النموذج باختباره على عدة أجزاء من البيانات:
from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5)
print(f"Cross-validation scores: {scores}")
إحدى مجموعات البيانات الكلاسيكية المضمنة في سايكيت-ليرن هي مجموعة بيانات السوسن. تتضمن تصنيف زهور السوسن إلى ثلاث أنواع بناءً على أربع ميزات: طول وعرض الكأس، وطول وعرض البتلة.
الخطوات:
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
from sklearn.svm import SVC
model = SVC()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
باستخدام مجموعة بيانات إسكان بوسطن (ملحوظة: تم إيقاف مجموعة بيانات بوسطن لأسباب أخلاقية؛ يُنصح باستخدام مجموعات بيانات بديلة مثل إسكان كاليفورنيا)، يمكنك إجراء انحدار للتنبؤ بأسعار المنازل بناءً على ميزات مثل عدد الغرف ومعدل الجريمة وغيرها.
الخطوات:
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
X, y = housing.data, housing.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"MSE: {mse}")
يمكن استخدام التجميع في تقسيم العملاء إلى مجموعات بناءً على سلوك الشراء.
الخطوات:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
kmeans.fit(X_scaled)
clusters = kmeans.labels_
على الرغم من أن سايكيت-ليرن ليست مصممة خصيصًا لمعالجة اللغة الطبيعية أو الشات بوت، إلا أنها أساسية في بناء نماذج تعلم الآلة التي يمكن أن تكون جزءًا من نظام ذكاء اصطناعي، بما في ذلك الدردشة الآلية.
توفر سايكيت-ليرن أدوات لتحويل بيانات النص إلى ميزات رقمية:
from sklearn.feature_extraction.text import TfidfVectorizer
documents = ["Hello, how can I help you?", "What is your name?", "Goodbye!"]
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)
غالبًا ما تحتاج الدردشة الآلية إلى تصنيف استفسارات المستخدم إلى نوايا لتقديم الردود المناسبة. يمكن استخدام سايكيت-ليرن لتدريب مصنفات لاكتشاف النوايا.
الخطوات:
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(queries)
model = LogisticRegression()
model.fit(X, intents)
new_query = "Can you help me with my account?"
X_new = vectorizer.transform([new_query])
predicted_intent = model.predict(X_new)
فهم المشاعر وراء رسائل المستخدمين يمكن أن يعزز تفاعلات الشات بوت.
from sklearn.datasets import fetch_openml
# بافتراض وجود مجموعة بيانات مصنفة لتحليل المشاعر
X_train, X_test, y_train, y_test = train_test_split(X, y)
model = SVC()
model.fit(X_train, y_train)
يمكن دمج نماذج سايكيت-ليرن في أنظمة ذكاء اصطناعي أكبر وسير عمل مؤتمت:
تكامل خطوط المعالجة: تتيح فئة Pipeline
في سايكيت-ليرن ربط المحولات والمقدّرات، مما يسهل أتمتة خطوات المعالجة المسبقة والنمذجة.
from sklearn.pipeline import Pipeline
pipeline = Pipeline([
('vectorizer', TfidfVectorizer()),
('classifier', LogisticRegression())
])
pipeline.fit(queries, intents)
نشر النموذج: يمكن حفظ النماذج المدربة باستخدام joblib ودمجها في أنظمة الإنتاج.
import joblib
joblib.dump(model, 'model.joblib')
# لاحقًا
model = joblib.load('model.joblib')
بينما تُعد سايكيت-ليرن مكتبة متعددة الاستخدامات، هناك بدائل حسب الحاجة:
البحث حول سايكيت-ليرن
سايكيت-ليرن هي وحدة بايثون شاملة تدمج مجموعة واسعة من خوارزميات تعلم الآلة الحديثة المناسبة لمشاكل متوسطة الحجم المراقَبة وغير المراقَبة. يقدم بحث مهم بعنوان “Scikit-learn: Machine Learning in Python” من تأليف فابيان بيدريغوزا وآخرين، نُشر في عام 2018، نظرة معمقة على هذه الأداة. يؤكد المؤلفون أن سايكيت-ليرن صممت لجعل تعلم الآلة متاحًا لغير المتخصصين من خلال لغة عالية المستوى متعددة الأغراض. تركز الحزمة على سهولة الاستخدام، والأداء، واتساق الواجهة، مع الحفاظ على الحد الأدنى من الاعتماديات. هذا يجعلها مناسبة للغاية للأوساط الأكاديمية والتجارية نظرًا لتوزيعها بموجب رخصة BSD المبسطة. يمكن الوصول إلى مزيد من المعلومات التفصيلية، الشيفرة المصدرية، الحزم التنفيذية، والوثائق على سايكيت-ليرن. يمكنك العثور على الورقة الأصلية هنا.
سايكيت-ليرن هي مكتبة مفتوحة المصدر لتعلم الآلة بلغة بايثون صممت لتوفير أدوات بسيطة وفعالة لتحليل البيانات والنمذجة. تدعم مجموعة واسعة من خوارزميات التعلم المُراقَب وغير المُراقَب، بما في ذلك التصنيف، والانحدار، والتجميع، وتقليل الأبعاد.
تقدم سايكيت-ليرن واجهة برمجية متسقة، وتنفيذات فعالة للعديد من خوارزميات تعلم الآلة، وتكامل مع مكتبات بايثون الشائعة مثل NumPy وpandas، ووثائق شاملة، ودعم مجتمعي واسع.
يمكنك تثبيت سايكيت-ليرن باستخدام pip عبر الأمر 'pip install -U scikit-learn' أو باستخدام conda عبر 'conda install scikit-learn' إذا كنت تستخدم توزيعة Anaconda.
سايكيت-ليرن ليست مصممة للتعلم العميق. لمهام الشبكات العصبية المتقدمة والتعلم العميق، تعتبر مكتبات مثل TensorFlow أو PyTorch أكثر ملاءمة.
نعم، سايكيت-ليرن معروفة بسهولة استخدامها وواجهتها النظيفة ووثائقها الممتازة، مما يجعلها مثالية للمبتدئين والمستخدمين ذوي الخبرة في تعلم الآلة.
اكتشف كيف يمكن لسايكيت-ليرن تبسيط مشاريع تعلم الآلة الخاصة بك. قم ببناء وتدريب ونشر النماذج بكفاءة مع مكتبة تعلم الآلة الرائدة في بايثون.
spaCy هي مكتبة بايثون قوية مفتوحة المصدر لمعالجة اللغة الطبيعية المتقدمة (NLP)، معروفة بسرعتها وكفاءتها وميزاتها الجاهزة للإنتاج مثل تقسيم النصوص، وتعيين أجزاء ...
تشاينر هو إطار مفتوح المصدر للتعلم العميق يوفر منصة مرنة وبديهية وعالية الأداء للشبكات العصبية، ويتميز برسوم بيانية ديناميكية تُحدد أثناء التشغيل، وتسريع عبر وح...
أمازون سايجميكر هو خدمة تعلم آلي (ML) مُدارة بالكامل من أمازون ويب سيرفيسز (AWS) تتيح لعلماء البيانات والمطورين بناء وتدريب ونشر نماذج التعلم الآلي بسرعة باستخد...