Smile (Statistik Mesin Kecerdasan dan Mesin Pembelajaran) adalah pembelajaran mesin yang cepat dan komprehensif, NLP, aljabar linier, grafik, interpolasi, dan sistem visualisasi di Java dan Scala. Dengan struktur dan algoritma data canggih, Smile memberikan kinerja canggih. Smile didokumentasikan dengan baik dan silakan periksa situs web proyek untuk pemandu pemrograman dan informasi lebih lanjut.
Smile mencakup setiap aspek pembelajaran mesin, termasuk klasifikasi, regresi, pengelompokan, penambangan aturan asosiasi, pemilihan fitur, pembelajaran berlipat ganda, penskalaan multidimensi, algoritma genetika, imputasi nilai yang hilang, pencarian tetangga terdekat yang efisien, dll.
Smile mengimplementasikan algoritma pembelajaran mesin utama berikut:
Klasifikasi: Dukungan mesin vektor, pohon keputusan, Adaboost, penambah gradien, hutan acak, regresi logistik, jaringan saraf, jaringan RBF, pengklasifikasi entropi maksimum, KNN, Bayesian Naif, analisis diskriminak naif/linier/kuadrat/kuadrat/reguler.
Regresi: Dukungan regresi vektor, proses Gaussian, pohon regresi, peningkatan gradien, hutan acak, jaringan RBF, OLS, Lasso, Elasticnet, regresi punggungan.
Pemilihan fitur: Pemilihan fitur berbasis algoritma genetika, pemilihan fitur berbasis pembelajaran ensemble, treeshap, rasio kebisingan sinyal, rasio SUM Squares.
Clustering: Birch, Clarks, DBSCAN, Denclue, Annealing Deterministik, K-means, X-Means, G-Means, Gas Saraf, Tumbuh Gas Neural, Clustering Hirarki, Bottleneck Informasi Berurutan, peta pengorganisasian diri, pengelompokan spektral, pengelompokan entropi minimum.
Aturan Asosiasi & Penambangan Item Frequent: Algoritma Penambangan Pertumbuhan FP.
Manifold Learning: Isomap, LLE, Eigenmap Laplacian, T-SNE, UMAP, PCA, PCA kernel, PCA probabilistik, GHA, proyeksi acak, ICA.
Penskalaan multi-dimensi: MDS klasik, MDS isotonik, pemetaan Sammon.
Pencarian tetangga terdekat: BK-Tree, Cover Tree, KD-Tree, Simhash, LSH.
Pembelajaran Urutan: Model Markov Tersembunyi, bidang acak bersyarat.
Pemrosesan Bahasa Alami: Kalimat Pembagi dan Tokenizer, Tes Statistik Bigram, Ekstraktor Frasa, Ekstraktor Kata Kunci, Stemmer, Pos Tagging, Peringkat Relevansi
Anda dapat menggunakan pustaka melalui repositori pusat Maven dengan menambahkan yang berikut ke file proyek pom.xml Anda.
<dependency>
<groupId>com.github.haifengl</groupId>
<artifactId>smile-core</artifactId>
<version>4.0.0</version>
</dependency>
Untuk NLP, gunakan senyum artefactid.
Untuk Scala API, silakan gunakan
libraryDependencies += "com.github.haifengl" %% "smile-scala" % "4.0.0"
Untuk API Kotlin, tambahkan bagian di bawah ini ke bagian dependencies skrip Build Gradle.
implementation("com.github.haifengl:smile-kotlin:4.0.0")
Untuk Clojure API, tambahkan ketergantungan berikut ke proyek Anda atau membuat file:
[org.clojars.haifengl/smile "4.0.0"]
Beberapa algoritma mengandalkan Blas dan Lapack (misalnya pembelajaran manifold, beberapa algoritma pengelompokan, regresi proses Gaussian, MLP, dll.). Untuk menggunakan algoritma ini, Anda harus menyertakan OpenBlas untuk perhitungan matriks yang dioptimalkan:
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"
)
Dalam contoh ini, kami memasukkan semua platform 64-bit yang didukung dan memfilter platform 32-bit. Pengguna hanya harus menyertakan platform yang dibutuhkan untuk menghemat spasi.
Jika Anda lebih suka implementasi BLAS lainnya, Anda dapat menggunakan perpustakaan apa pun yang ditemukan pada "java.library.path" atau di jalur kelas, dengan menentukannya dengan properti sistem "org.bytedeco.openblas.load". Misalnya, untuk menggunakan perpustakaan BLAS dari kerangka kerja Accelerate pada Mac OS X, kita dapat melewati opsi seperti -Dorg.bytedeco.openblas.load=blas .
Jika Anda memiliki instalasi default MKL atau hanya menyertakan modul berikut yang menyertakan versi lengkap biner MKL, Smile akan secara otomatis beralih ke MKL.
libraryDependencies ++= {
val version = "2025.0-1.5.11"
Seq(
"org.bytedeco" % "mkl-platform" % version,
"org.bytedeco" % "mkl-platform-redist" % version
)
}
Smile menggunakan model lisensi ganda yang dirancang untuk memenuhi kebutuhan pengembangan dan distribusi kedua distributor komersial (seperti OEM, ISV dan VAR) dan proyek open source. Untuk detailnya, silakan lihat lisensi.
Smile hadir dengan cangkang interaktif untuk Java, Scala dan Kotlin. Unduh senyum pra-paket dari halaman rilis. Di direktori rumah senyum, ketik
./bin/smile
untuk memasuki shell scala. Anda dapat menjalankan ekspresi Scala yang valid di shell. Dalam kasus paling sederhana, Anda dapat menggunakannya sebagai kalkulator. Selain itu, semua operator senyum tingkat tinggi telah ditentukan sebelumnya di shell. Secara default, shell menggunakan hingga 75% memori. Jika Anda membutuhkan lebih banyak memori untuk menangani data besar, gunakan opsi -J-Xmx atau -XX:MaxRAMPercentage . Misalnya,
./bin/smile -J-Xmx30G
Anda juga dapat memodifikasi file konfigurasi ./conf/smile.ini untuk memori dan pengaturan JVM lainnya.
Untuk menggunakan Java's Jshell, ketik
./bin/jshell.sh
yang memiliki toples senyum di classpath. Demikian pula, lari
./bin/kotlin.sh
untuk memasukkan Kotlin Rept.
Sebagian besar model mendukung antarmuka Serializable Java (semua pengklasifikasi mendukung antarmuka Serializable ) sehingga Anda dapat menggunakannya dalam Spark. Protostuff adalah alternatif yang bagus yang mendukung kompatibilitas ke depan (evolusi skema) dan validasi. Di luar XML, Protostuff mendukung banyak format lain seperti JSON, YAML, Protobuf, dll.
Smile menyediakan pustaka visualisasi data berbasis swing Smileplot, yang menyediakan plot sebar, plot garis, plot tangga, plot batang, plot kotak, histogram, histogram 3D, dendrogram, heatmap, hexmap, plot QQ, plot kontur, permukaan, dan rangka rangka.
Untuk menggunakan smileplot, tambahkan yang berikut ini ke dependensi berikut
<dependency>
<groupId>com.github.haifengl</groupId>
<artifactId>smile-plot</artifactId>
<version>4.0.0</version>
</dependency>
Smile juga mendukung visualisasi data dalam pendekatan deklaratif. Dengan smile.plot.vega package , kita dapat membuat spesifikasi yang menggambarkan visualisasi sebagai pemetaan dari data ke properti tanda grafis (misalnya, titik atau batang). Spesifikasi ini didasarkan pada Vega-Lite. Kompiler Vega-Lite secara otomatis menghasilkan komponen visualisasi termasuk sumbu, legenda, dan skala. Kemudian menentukan sifat -sifat komponen ini berdasarkan pada serangkaian aturan yang dirancang dengan cermat.
Kernel PCA | Isomap |
Penskalaan multi-dimensi | Som |
Jaringan saraf | SVM |
Clustering hierarkis | X-Means |
Dbscan | Gas saraf |
Koncah | Campuran keluarga eksponensial |