Datumbox Machine Learning Framework sürüm 0.8.0, PlatoBlockchain Data Intelligence'ı yayınladı. Dikey Arama. Ai.

Datumbox Machine Learning Framework sürüm 0.8.0 yayınlandı

Datumbox Framework v0.8.0 çıktı ve birkaç güçlü özellik içeriyor! Bu sürüm, yeni Ön İşleme, Özellik Seçimi ve Model Seçimi algoritmaları, Modellerin ve Veri Çerçevelerinin nasıl kaydedildiği/yüklendiği üzerinde daha iyi kontrol sağlayan yeni güçlü Depolama Motorları, önceden eğitilmiş birkaç Makine Öğrenimi modeli ve çok sayıda bellek ve hız iyileştirmesi getiriyor. adresinden şimdi indirin Github or Maven Merkez Deposu.

0.8.0 sürümünün ana hedeflerinden biri, çerçevenin Depolama mekanizmalarını iyileştirmek ve desteklenen tüm algoritmalar için disk tabanlı eğitimi kullanılabilir hale getirmekti. Yeni depolama motorları, modellerin nasıl ve ne zaman kalıcı hale getirileceği konusunda daha iyi kontrol sağlar. Önemli bir değişiklik, modellerin fit() yöntemi tamamlandıktan sonra otomatik olarak depolanmaması, bunun yerine modelin adını sağlayan save() yönteminin açıkça çağrılması gerektiğidir. Bu, yalnızca bir serileştirme aşamasından geçmeden daha kolay geçici algoritmaları atmamıza değil, aynı zamanda Veri Çerçevelerini kaydetmemize/yüklememize de olanak tanır:

Configuration configuration = Configuration.getConfiguration();
Dataframe data = ...; //load a dataframe here

MaximumEntropy.TrainingParameters params = new MaximumEntropy.TrainingParameters();
MaximumEntropy model = MLBuilder.create(params, getConfiguration());
model.fit(data);
model.save("MyModel"); //save the model using the specific name
model.close();

data.save("MyData"); //save the data using a specific name
data.close();

data = Dataframe.Builder.load("MyData", configuration); //load the data
model = MLBuilder.load(MaximumEntropy.class, "MyModel", configuration); //load the model
model.predict(data);
model.delete(); //delete the model

Şu anda iki depolama motorunu destekliyoruz: Bellekteki her şeyi yüklediği için çok hızlı olan InMemory motoru ve daha yavaş olan ancak disk tabanlı eğitime izin veren MapDB motoru. Datumbox.configuration.properties'inizi değiştirerek hangi motoru kullanacağınızı kontrol edebilir veya konfigürasyon nesnelerini programlı olarak değiştirebilirsiniz. Her motorun kendi yapılandırma dosyası vardır, ancak yine her şeyi programlı olarak değiştirebilirsiniz:

Configuration configuration = Configuration.getConfiguration(); //conf from properties file

configuration.setStorageConfiguration(new InMemoryConfiguration()); //use In-Memory engine
//configuration.setStorageConfiguration(new MapDBConfiguration()); //use MapDB engine

Lütfen her iki motorda da modellerin nerede saklandığını kontrol eden bir dizin ayarı olduğunu unutmayın (inMemoryConfiguration.dizin ve mapDBConfiguration.dizin yapılandırma dosyalarındaki özellikler). Bunları değiştirdiğinizden emin olun, aksi takdirde modeller sisteminizin geçici klasörüne yazılır. Yapılandırma dosyalarını nasıl yapılandırdığınız hakkında daha fazla bilgi için şu adrese bakın: Kod Örneği projesi.

Yeni Depolama mekanizması devreye girdiğinde, artık herkese açık olarak paylaşmak mümkün önceden eğitilmiş modeller Duyarlılık Analizi, İstenmeyen Posta Algılama, Dil Algılama, Konu Sınıflandırma ve Datumbox API aracılığıyla kullanılabilen diğer tüm modelleri kapsar. Şimdi yapabilirsin indir ve önceden eğitilmiş tüm modelleri API'yi çağırmaya gerek duymadan ve günlük çağrı sayısı ile sınırlandırılmadan projenizde kullanın. Şu anda yayınlanan modeller InMemory depolama motoru kullanılarak eğitiliyor ve yalnızca İngilizce'yi destekliyorlar. Gelecekteki sürümlerde, daha fazla dil için destek sağlamayı planlıyorum.

Yeni çerçevede, birçok sınıfın genel yöntemlerinde birkaç değişiklik var (bu nedenle geriye dönük olarak uyumlu değil). En dikkate değer fark, modellerin başlatılma şeklidir. Daha önceki kod örneğinde gördüğümüz gibi, modeller doğrudan somutlaştırılmaz, bunun yerine bir model oluşturmak veya yüklemek için MLBuilder sınıfı kullanılır. Eğitim parametreleri doğrudan oluşturucuya sağlanır ve bir ayarlayıcı ile değiştirilemez.

Diğer bir iyileştirme, Model Seçimi gerçekleştirme yöntemimizdir. v0.8.0, modellerimizin performansını doğrulamak ve ölçmek için gerekli tüm araçları sunan yeni model seçim paketini sunar. Metrikler alt paketinde sınıflandırma, kümeleme, regresyon ve tavsiye için en önemli doğrulama metriklerini sağlıyoruz. ValidationMetrics'in her bir algoritmadan kaldırıldığını ve artık modelle birlikte depolanmadıklarını unutmayın. Çerçeve, orijinal veri kümesini farklı şemalar kullanarak bölmeyi sağlayan yeni ayırıcılar alt paketini sunar. Şu anda K-katlama bölmeleri, veri kümesini bir eğitime bölerken KFoldSplitter sınıfı kullanılarak gerçekleştirilir ve ShuffleSplitter ile test kümesi elde edilebilir. Son olarak, bir modeli hızlı bir şekilde doğrulamak için çerçeve Validator sınıfını sunar. Birkaç kod satırında K-kat çapraz doğrulamanın nasıl gerçekleştirilebileceği aşağıda açıklanmıştır:

ClassificationMetrics vm = new Validator<>(ClassificationMetrics.class, configuration)
    .validate(new KFoldSplitter(k).split(data), new MaximumEntropy.TrainingParameters());

Yeni Ön İşleme paketi, eski Veri Transformatörlerinin yerini alıyor ve makine öğrenimi algoritmalarından önce verileri nasıl ölçeklendirip kodladığımız konusunda daha iyi kontrol sağlıyor. Sayısal değişkenleri ölçeklendirmek için aşağıdaki algoritmalar desteklenir: MinMaxScaler, StandardScaler, MaxAbsScaler ve BinaryScaler. Kategorik değişkenleri booleanlara kodlamak için aşağıdaki yöntemleri kullanabilirsiniz: OneHotEncoder ve CornerConstraintsEncoder. Yeni algoritmaları şu şekilde kullanabilirsiniz:

StandardScaler numericalScaler = MLBuilder.create(
    new StandardScaler.TrainingParameters(), 
    configuration
);
numericalScaler.fit_transform(trainingData);

CornerConstraintsEncoder categoricalEncoder = MLBuilder.create(
    new CornerConstraintsEncoder.TrainingParameters(), 
    configuration
);
categoricalEncoder.fit_transform(trainingData);

Bir diğer önemli güncelleme ise Feature Selection paketinin yeniden yazılmış olmasıdır. Şu anda tüm özellik seçim algoritmaları belirli veri türlerine odaklanarak farklı yöntemleri birlikte zincirlemeyi mümkün kılıyor. Sonuç olarak, TextClassifier ve Modeler sınıfları, yalnızca bir tane yerine özellik seçici parametrelerinin bir listesini alır.

Daha önce belirtildiği gibi, tüm algoritmalar artık Matris kullananlar da dahil olmak üzere disk tabanlı eğitimi desteklemektedir (yalnızca Destek Vektör Makineleri istisnadır). Yeni depolama motoru mekanizması, bazı algoritmaları veya veri çerçevelerini, diğerleri diskteyken bellekte depolanacak şekilde yapılandırmayı bile mümkün kılar. Öncelikle yeni depolama motoru mekanizması nedeniyle, ancak aynı zamanda DPMM ailesindekiler gibi bireysel algoritmaların ayarlanması nedeniyle çeşitli hız iyileştirmeleri yapıldı.

Son olarak, yeni sürüm tüm bağımlılıkları en son sürümlerine günceller ve commons-lang ve lp_solve gibi bazılarını kaldırır. HTML ayrıştırma için kullanılan commons-lang, daha hızlı bir özel HTMLParser uygulaması ile değiştirilir. lp_solve, saf bir Java simpleks çözücü ile değiştirilir; bu, Datumbox'ın artık işletim sisteminde kurulu belirli sistem kitaplıklarını gerektirmediği anlamına gelir. Ayrıca lp_solve, Apache 2 lisansı ile uyumlu olmayan LGPLv2.0 kullandığı için gitmek zorunda kaldı.

0.8.0 sürümü, çerçeve üzerinde birkaç yeni özellik ve iyileştirme getiriyor. Değişikliklerin ayrıntılı bir görünümü için lütfen kontrol edin Değişiklik.

kodunu klonlamayı unutmayın Datumbox Çerçevesi v0.8.0 Github'dan, kontrol edin Kod Örnekleri ve önceden eğitilmiş Makine Öğrenimi modellerini şuradan indirin: Datumbox Hayvanat Bahçesi. Yorumlarınızı ve önerilerinizi bekliyorum.

Zaman Damgası:

Den fazla Veri kutusu