Smile (ذكاء الآلة الإحصائي ومحرك التعلم) هو التعلم الآلي السريع والشامل ، NLP ، الجبر الخطي ، الرسم البياني ، الاستيفاء ، ونظام التصور في Java و Scala. من خلال هياكل البيانات المتقدمة والخوارزميات ، تقدم Smile أداءً على أحدث طراز. تم توثيق Smile بشكل جيد ويرجى التحقق من موقع المشروع لأدلة البرمجة والمزيد من المعلومات.
تغطي Smile كل جانب من جوانب التعلم الآلي ، بما في ذلك التصنيف ، والانحدار ، والتجميع ، والتعدين في القاعدة ، واختيار الميزات ، والتعلم المتعدد ، والتوسيع متعدد الأبعاد ، والخوارزميات الوراثية ، وضغط القيمة المفقودة ، وأقرب جار كفاءة ، وما إلى ذلك.
تبتسم Smile خوارزميات التعلم الآلي الرئيسي التالي:
التصنيف: دعم آلات المتجهات ، أشجار القرار ، adaboost ، تعزيز التدرج ، الغابات العشوائية ، الانحدار اللوجستي ، الشبكات العصبية ، شبكات RBF ، مصنف الإنتروبيا القصوى ، KNN ، ساذجة بايزي ، فيشر/خطي/تربيعي/تحليل تمييز.
الانحدار: دعم الانحدار المتجه ، العملية الغوسية ، أشجار الانحدار ، تعزيز التدرج ، الغابات العشوائية ، شبكات RBF ، OLS ، LASSO ، TILISTINGNET ، RIDGE REPRASTION.
اختيار الميزات: اختيار الميزات القائم على الخوارزمية الوراثية ، اختيار الميزات القائم على التعلم ، Treeshap ، نسبة ضوضاء الإشارة ، نسبة المربعات.
التجميع: بيرش ، كلارانز ، DBSCAN ، Denclue ، الصلب الحتمي ، K-Means ، X-Means ، G-Means ، الغاز العصبي ، الغاز العصبي المتنامي ، التجميع الهرمي ، عنق الزجاجة المعلومات المتسلسلة ، خرائط تنظيم ذاتي ، التجميع الطيفي ، التجميعات الحد الأدنى للإنتروبيا.
قاعدة الجمعية والتعدين بشكل متكرر: خوارزمية تعدين النمو FP.
التعلم المنوع: ISOMAP ، LLE ، Laplacian eigenmap ، T-SNE ، UMAP ، PCA ، kernel PCA ، PCA الاحتمالية ، GHA ، الإسقاط العشوائي ، ICA.
التحجيم متعدد الأبعاد: MDS الكلاسيكية ، MDS متساوي التوتر ، رسم الخرائط Sammon.
أقرب بحث جار: BK Tree ، شجرة الغلاف ، KD Tree ، Simhash ، LSH.
تعلم التسلسل: نموذج ماركوف المخفي ، الحقل العشوائي المشروط.
معالجة اللغة الطبيعية: فاصل الجملة والرمز المميز ، اختبار إحصائي Bigram ، مستخرج العبارات ، مستخرج الكلمات الرئيسية ، STEMMER ، وضع علامات POS ، تصنيف الأهمية
يمكنك استخدام المكتبات من خلال مستودع Maven Central عن طريق إضافة ما يلي إلى ملف Project Pom.xml.
<dependency>
<groupId>com.github.haifengl</groupId>
<artifactId>smile-core</artifactId>
<version>4.0.0</version>
</dependency>
بالنسبة إلى NLP ، استخدم Artifactid Smile-NLP.
لـ Scala API ، يرجى الاستخدام
libraryDependencies += "com.github.haifengl" %% "smile-scala" % "4.0.0"
بالنسبة إلى API Kotlin ، أضف أدناه إلى قسم dependencies في البرنامج النصي Build Build.
implementation("com.github.haifengl:smile-kotlin:4.0.0")
بالنسبة إلى Clojure API ، أضف التبعية التالية إلى مشروعك أو ملف الإنشاء:
[org.clojars.haifengl/smile "4.0.0"]
تعتمد بعض الخوارزميات على Blas و Lapack (على سبيل المثال التعلم المتعدد ، وبعض خوارزميات التجميع ، والانحدار العملي Gaussian ، MLP ، إلخ). لاستخدام هذه الخوارزميات ، يجب عليك تضمين OpenBlas لحساب المصفوفة الأمثل:
libraryDependencies ++= Seq(
"org.bytedeco" % "javacpp" % "1.5.11" classifier "macosx-arm64" classifier "macosx-x86_64" classifier "windows-x86_64" classifier "linux-x86_64",
"org.bytedeco" % "openblas" % "0.3.28-1.5.11" classifier "macosx-arm64" classifier "macosx-x86_64" classifier "windows-x86_64" classifier "linux-x86_64",
"org.bytedeco" % "arpack-ng" % "3.9.1-1.5.11" classifier "macosx-x86_64" classifier "windows-x86_64" classifier "linux-x86_64"
)
في هذا المثال ، نقوم بتضمين جميع المنصات 64 بت المدعومة وتصفية منصات 32 بت. يجب أن يتضمن المستخدم فقط الأنظمة الأساسية اللازمة لحفظ المساحات.
إذا كنت تفضل تطبيقات BLAS الأخرى ، فيمكنك استخدام أي مكتبة موجودة على "java.library.path" أو على مسار الفصل ، من خلال تحديدها مع خاصية نظام "org.bytedeco.openblas.load". على سبيل المثال ، لاستخدام مكتبة Blas من إطار التسريع على Mac OS X ، يمكننا تمرير خيارات مثل -Dorg.bytedeco.openblas.load=blas .
إذا كان لديك تثبيت افتراضي لـ MKL أو ببساطة تضمين الوحدات التالية التي تتضمن النسخة الكاملة من ثنائيات MKL ، فسيتم تبديل Smile تلقائيًا إلى MKL.
libraryDependencies ++= {
val version = "2025.0-1.5.11"
Seq(
"org.bytedeco" % "mkl-platform" % version,
"org.bytedeco" % "mkl-platform-redist" % version
)
}
توظف Smile نموذج ترخيص مزدوج مصمم لتلبية احتياجات التطوير والتوزيع لكل من الموزعين التجاريين (مثل OEMs و ISVs و Vars) والمشاريع المفتوحة المصدر. لمزيد من التفاصيل ، يرجى الاطلاع على الترخيص.
تأتي الابتسامة مع قذائف تفاعلية لجافا ، سكالا وكوتلين. قم بتنزيل ابتسامة معبأة مسبقًا من صفحة الإصدارات. في الدليل المنزلي للابتسامة ، اكتب
./bin/smile
لدخول قذيفة سكالا. يمكنك تشغيل أي تعبيرات Scala صالحة في shell. في أبسط حالة ، يمكنك استخدامها كآلة حاسبة. إلى جانب ذلك ، يتم تعريف جميع مشغلي الابتسامة رفيعة المستوى مسبقًا في القشرة. بشكل افتراضي ، تستخدم shell ذاكرة تصل إلى 75 ٪. إذا كنت بحاجة إلى مزيد من الذاكرة للتعامل مع البيانات الكبيرة ، فاستخدم الخيار -J-Xmx أو -XX:MaxRAMPercentage . على سبيل المثال،
./bin/smile -J-Xmx30G
يمكنك أيضًا تعديل ملف التكوين ./conf/smile.ini للذاكرة وإعدادات JVM الأخرى.
لاستخدام Java's Jshell ، اكتب
./bin/jshell.sh
التي لها جرار ابتسامة في classpath. وبالمثل ، تشغيل
./bin/kotlin.sh
لدخول Kotlin REPL.
تدعم معظم الطرز واجهة Java Serializable (جميع المصنفات تدعم الواجهة Serializable ) بحيث يمكنك استخدامها في Spark. Protostuff هو بديل جميل يدعم التوافق الأمامي (تطور المخطط) والتحقق من الصحة. ما وراء XML ، يدعم Protostuff العديد من التنسيقات الأخرى مثل JSON و YAML و Protobuf ، إلخ.
يوفر Smile مكتبة تصور البيانات المستندة إلى الأرجوحة SmiLeplot ، والتي توفر مؤامرة مبعثرة ، مؤامرة خط ، مخطط للدرج ، قطعة بار ، مؤامرة مربع ، رسم بياني ، رسم بياني ثلاثي الأبعاد ، dendrogram ، hexmap ، hexmap ، مؤامرة QQ ، مؤامرة الكنتور ، السطح ، والسلوكية.
لاستخدام SmilePlot ، أضف ما يلي إلى التبعيات
<dependency>
<groupId>com.github.haifengl</groupId>
<artifactId>smile-plot</artifactId>
<version>4.0.0</version>
</dependency>
ابتسامة تدعم أيضًا تصور البيانات في النهج التعريفي. مع smile.plot.vega package ، يمكننا إنشاء مواصفات تصف التصورات بأنها تعيينات من البيانات إلى خصائص العلامات الرسومية (على سبيل المثال ، نقاط أو أشرطة). تعتمد المواصفات على Vega-Lite. ينتج برنامج التحويل البرمجي Vega-Lite تلقائيًا مكونات التصور بما في ذلك المحاور والأساطير والمقاييس. ثم يحدد خصائص هذه المكونات بناءً على مجموعة من القواعد المصممة بعناية.
نواة PCA | isomap |
التحجيم متعدد الأبعاد | سوم |
الشبكة العصبية | SVM |
التجميع الهرمي | X-Means |
DBSCAN | الغاز العصبي |
المويجات | مزيج الأسرة الأسي |