Transmogrifai (diucapkan trăns-mŏgˈrə-fī) adalah perpustakaan Automl yang ditulis dalam Scala yang berjalan di atas Apache Spark. Ini dikembangkan dengan fokus pada percepatan produktivitas pengembang pembelajaran mesin melalui otomatisasi pembelajaran mesin, dan API yang menegakkan ketegangan-keamanan, modularitas, dan penggunaan kembali waktu yang dikompilasi. Melalui otomatisasi, ia mencapai akurasi yang dekat dengan model yang disesuaikan dengan tangan dengan pengurangan hampir 100x dalam waktu.
Gunakan transmogrifai jika Anda memerlukan perpustakaan pembelajaran mesin untuk:
Untuk memahami motivasi di balik transmogrifai, periksa ini:
Lewati untuk memulai dan dokumentasi yang cepat.
Dataset Titanic adalah dataset yang sering dikutip dalam komunitas pembelajaran mesin. Tujuannya adalah untuk membangun model yang dipelajari mesin yang akan memprediksi para penyintas dari manifes penumpang Titanic. Inilah cara Anda membangun model menggunakan transmogrifai:
import com . salesforce . op . _
import com . salesforce . op . readers . _
import com . salesforce . op . features . _
import com . salesforce . op . features . types . _
import com . salesforce . op . stages . impl . classification . _
import org . apache . spark . SparkConf
import org . apache . spark . sql . SparkSession
implicit val spark = SparkSession .builder.config( new SparkConf ()).getOrCreate()
import spark . implicits . _
// Read Titanic data as a DataFrame
val passengersData = DataReaders . Simple .csvCase[ Passenger ](path = pathToData).readDataset().toDF()
// Extract response and predictor Features
val (survived, predictors) = FeatureBuilder .fromDataFrame[ RealNN ](passengersData, response = " survived " )
// Automated feature engineering
val featureVector = predictors.transmogrify()
// Automated feature validation and selection
val checkedFeatures = survived.sanityCheck(featureVector, removeBadFeatures = true )
// Automated model selection
val pred = BinaryClassificationModelSelector ().setInput(survived, checkedFeatures).getOutput()
// Setting up a TransmogrifAI workflow and training the model
val model = new OpWorkflow ().setInputDataset(passengersData).setResultFeatures(pred).train()
println( " Model summary: n " + model.summaryPretty())Ringkasan Model:
Evaluated Logistic Regression, Random Forest models with 3 folds and AuPR metric.
Evaluated 3 Logistic Regression models with AuPR between [0.6751930383321765, 0.7768725281794376]
Evaluated 16 Random Forest models with AuPR between [0.7781671467343991, 0.8104798040316159]
Selected model Random Forest classifier with parameters:
|-----------------------|--------------|
| Model Param | Value |
|-----------------------|--------------|
| modelType | RandomForest |
| featureSubsetStrategy | auto |
| impurity | gini |
| maxBins | 32 |
| maxDepth | 12 |
| minInfoGain | 0.001 |
| minInstancesPerNode | 10 |
| numTrees | 50 |
| subsamplingRate | 1.0 |
|-----------------------|--------------|
Model evaluation metrics:
|-------------|--------------------|---------------------|
| Metric Name | Hold Out Set Value | Training Set Value |
|-------------|--------------------|---------------------|
| Precision | 0.85 | 0.773851590106007 |
| Recall | 0.6538461538461539 | 0.6930379746835443 |
| F1 | 0.7391304347826088 | 0.7312186978297163 |
| AuROC | 0.8821603927986905 | 0.8766642291593114 |
| AuPR | 0.8225075757571668 | 0.850331080886535 |
| Error | 0.1643835616438356 | 0.19682151589242053 |
| TP | 17.0 | 219.0 |
| TN | 44.0 | 438.0 |
| FP | 3.0 | 64.0 |
| FN | 9.0 | 97.0 |
|-------------|--------------------|---------------------|
Top model insights computed using correlation:
|-----------------------|----------------------|
| Top Positive Insights | Correlation |
|-----------------------|----------------------|
| sex = "female" | 0.5177801026737666 |
| cabin = "OTHER" | 0.3331391338844782 |
| pClass = 1 | 0.3059642953159715 |
|-----------------------|----------------------|
| Top Negative Insights | Correlation |
|-----------------------|----------------------|
| sex = "male" | -0.5100301587292186 |
| pClass = 3 | -0.5075774968534326 |
| cabin = null | -0.31463114463832633 |
|-----------------------|----------------------|
Top model insights computed using CramersV:
|-----------------------|----------------------|
| Top Insights | CramersV |
|-----------------------|----------------------|
| sex | 0.525557139885501 |
| embarked | 0.31582347194683386 |
| age | 0.21582347194683386 |
|-----------------------|----------------------|
Meskipun ini mungkin tampak agak terlalu ajaib, bagi mereka yang menginginkan kontrol lebih, transmogrifai juga memberikan fleksibilitas untuk sepenuhnya menentukan semua fitur yang diekstraksi dan semua algoritma yang diterapkan dalam pipa ML Anda. Kunjungi situs dokumen kami untuk dokumentasi lengkap, memulai, contoh, FAQ dan informasi lainnya.
Anda cukup menambahkan transmogrifai sebagai ketergantungan reguler ke proyek yang ada. Mulailah dengan memilih versi transmogrifai agar sesuai dengan dependensi proyek Anda dari matriks versi di bawah ini (jika tidak yakin - ambil versi stabil ):
| Versi transmogrifai | Versi Spark | Versi Scala | Versi Java |
|---|---|---|---|
| 0.7.1 (belum dirilis, master), 0.7.0 (stabil) | 2.4 | 2.11 | 1.8 |
| 0.6.1, 0.6.0, 0.5.3, 0.5.2, 0.5.1, 0.5.0 | 2.3 | 2.11 | 1.8 |
| 0.4.0, 0.3.4 | 2.2 | 2.11 | 1.8 |
Untuk lulusan di build.gradle tambahkan:
repositories {
jcenter()
mavenCentral()
}
dependencies {
// TransmogrifAI core dependency
compile ' com.salesforce.transmogrifai:transmogrifai-core_2.11:0.7.0 '
// TransmogrifAI pretrained models, e.g. OpenNLP POS/NER models etc. (optional)
// compile 'com.salesforce.transmogrifai:transmogrifai-models_2.11:0.7.0'
} Untuk SBT di build.sbt Tambahkan:
scalaVersion : = " 2.11.12 "
resolvers + = Resolver .jcenterRepo
// TransmogrifAI core dependency
libraryDependencies + = " com.salesforce.transmogrifai " %% " transmogrifai-core " % " 0.7.0 "
// TransmogrifAI pretrained models, e.g. OpenNLP POS/NER models etc. (optional)
// libraryDependencies += "com.salesforce.transmogrifai" %% "transmogrifai-models" % "0.7.0"Kemudian impor transmogrifai ke kode Anda:
// TransmogrifAI functionality: feature types, feature builders, feature dsl, readers, aggregators etc.
import com . salesforce . op . _
import com . salesforce . op . aggregators . _
import com . salesforce . op . features . _
import com . salesforce . op . features . types . _
import com . salesforce . op . readers . _
// Spark enrichments (optional)
import com . salesforce . op . utils . spark . RichDataset . _
import com . salesforce . op . utils . spark . RichRDD . _
import com . salesforce . op . utils . spark . RichRow . _
import com . salesforce . op . utils . spark . RichMetadata . _
import com . salesforce . op . utils . spark . RichStructType . _ Kunjungi situs dokumen kami untuk dokumentasi lengkap, memulai, contoh, FAQ dan informasi lainnya.
Lihat Scaladoc untuk API pemrograman.
BSD 3-Clause © Salesforce.com, Inc.