Azure Databricks AutoML veri hazırlama ve işleme
Bu makalede, Azure Databricks AutoML'nin makine öğrenmesi eğitimi için verileri nasıl hazırladığı ve yapılandırılabilir veri ayarlarının nasıl açıklandığı açıklanır. Deneme kurulumu sırasında bu seçenekleri AutoML kullanıcı arabiriminde ayarlayabilirsiniz. AutoML API'sini kullanarak bu ayarları yapılandırmak için AutoML Python API başvurusuna bakın.
Desteklenen veri özelliği türleri
Aşağıda listelenmeyen özellik türleri desteklenmez. Örneğin, görüntüler desteklenmez.
Aşağıdaki özellik türleri desteklenir:
- Sayısal (
ByteType
,ShortType
,IntegerType
,LongType
,FloatType
veDoubleType
) - Boolean
- Dize (kategorik veya İngilizce metin)
- Zaman damgaları (
TimestampType
,DateType
) - ArrayType[Numeric] (Databricks Runtime 10.4 LTS ML ve üzeri)
- DecimalType (Databricks Runtime 11.3 LTS ML ve üzeri)
Sütun seçimi
Not
Bu işlev yalnızca sınıflandırma ve regresyon sorunları için kullanılabilir
Databricks Runtime 10.3 ML ve üzerinde AutoML'nin eğitim için hangi sütunları kullanması gerektiğini belirtebilirsiniz. Kullanıcı arabirimindeki bir sütunu dışlamak için Ekle sütunundaki işaretini kaldırın. API'de parametresini exclude_cols
kullanın. Daha fazla bilgi için bkz . Azure Databricks AutoML Python API başvurusu.
Tahmin hedefi olarak veya verileri bölmek için zaman sütunu olarak seçilen sütunu bırakamazsınız.
Varsayılan olarak, tüm sütunlar eklenir.
Eksik değerleri açma/kapatma
Databricks Runtime 10.4 LTS ML ve üzerinde, null değerlerin nasıl işaretleneceğini belirtebilirsiniz. Kullanıcı arabiriminde, tablo şemasındaki Impute with sütunundaki açılan listeden bir yöntem seçin. API'de parametresini imputers
kullanın. Daha fazla bilgi için bkz . Azure Databricks AutoML Python API başvurusu.
Varsayılan olarak, AutoML sütun türüne ve içeriğe göre bir imputation yöntemi seçer.
Not
Varsayılan olmayan bir imputation yöntemi belirtirseniz, AutoML anlamsal tür algılaması gerçekleştirmez.
Verileri eğitim, doğrulama ve test kümelerine bölme
AutoML, eğitim, doğrulama ve test için verilerinizi üç bölmeye böler. ML sorununun türüne bağlı olarak, verileri bölmek için farklı seçenekleriniz vardır.
Regresyon ve sınıflandırma için verileri bölme
Regresyon ve sınıflandırma görevleri için verileri eğitim, doğrulama ve test kümelerine bölmek için aşağıdaki yöntemleri kullanın:
(Varsayılan) Rastgele bölme: Bir veri bölme stratejisi belirtilmezse veri kümesi rastgele olarak %60 tren bölme, %20 doğrulama bölme ve %20 test bölmesine ayrılır. Sınıflandırma için katmanlı rastgele bölme, her sınıfın eğitim, doğrulama ve test kümelerinde yeterince temsil edilmesini sağlar.
Kronolojik bölme: Databricks Runtime 10.4 LTS ML ve üzerinde kronolojik eğitim, doğrulama ve test bölmeleri oluşturmak için bir zaman sütunu seçebilirsiniz. Kronolojik bölmeler eğitim için en erken veri noktalarını, doğrulama için bir sonraki en erken ve test için en son noktaları kullanır. Zaman sütunu bir zaman damgası, tamsayı veya dize sütunu olabilir.
El ile bölme: Databricks Runtime 15.3 ML ve üzerinde, el ile bölme ayarlamak için API'yi kullanabilirsiniz. Bölünmüş bir sütun belirtin ve eğitim, doğrulama ve test veri kümelerinde train
validate
kullanmak istediğiniz satırları belirlemek için , veya test
değerlerini kullanın. , test
veya validate
dışındaki train
bölünmüş sütun değerlerine sahip tüm satırlar yoksayılır ve buna karşılık gelen bir uyarı oluşturulur.
Tahmin için verileri bölme
Tahmin görevleri için AutoML, zaman serisi çapraz doğrulamasını kullanır. Bu yöntem, eğitim veri kümesini kronolojik olarak artımlı olarak genişletir ve sonraki zaman noktalarında doğrulama gerçekleştirir. Çapraz doğrulama, modelin farklı zamana bağlı segmentlere göre performansının sağlam bir değerlendirmesini sağlar. Tahmin modelinin gelecekteki görülmeyen verilere karşı sıkı bir şekilde test edilmesini ve tahminlerin ilgi ve doğruluğunu korumasını sağlar.
Çapraz doğrulama katlamalarının sayısı, zaman serisi sayısı, kovaryatların varlığı ve zaman serisi uzunluğu gibi giriş tablosu özelliklerine bağlıdır.
Büyük veri kümelerini örnekleme
Not
Örnekleme, tahmin sorunlarına uygulanmaz.
AutoML hiper parametre ayarlama denemelerini bir kümenin çalışan düğümlerine dağıtsa da, her model tek bir çalışan düğümünde eğitilir.
AutoML, veri kümenizi yüklemek ve eğitmek için gereken belleği otomatik olarak tahmin eder ve gerekirse veri kümesini örnekler.
Databricks Runtime 10.4 LTS ML aracılığıyla Databricks Runtime 9.1 LTS ML'de örnekleme kesri, kümenin düğüm türüne veya her düğümdeki bellek miktarına bağlı değildir.
Databricks Runtime 11.x ML'de:
- Örnekleme kesri, çekirdek başına daha fazla belleğe sahip çalışan düğümleri için artar. Bellek için iyileştirilmiş örnek türünü seçerek örnek boyutunu artırabilirsiniz.
- Küme için Spark yapılandırmasında için
spark.task.cpus
daha büyük bir değer seçerek örnek boyutunu daha da artırabilirsiniz. Varsayılan ayar 1'dir; en yüksek değer, çalışan düğümündeki CPU sayısıdır. Bu değeri artırdığınızda, örnek boyutu daha büyük olur, ancak paralel olarak daha az deneme çalıştırılır. Örneğin, dört çekirdeği ve toplam RAM'i 64 GB olan bir makinede varsayılan olarakspark.task.cpus=1
çalışan başına dört deneme sürümü çalıştırılır ve her deneme 16 GB RAM ile sınırlıdır. ayarlarsanızspark.task.cpus=4
, her çalışan yalnızca bir deneme çalıştırır, ancak bu deneme 64 GB RAM kullanabilir.
Databricks Runtime 12.2 LTS ML ve üzerinde AutoML, eğitim görevi başına daha fazla CPU çekirdeği ayırarak daha büyük veri kümelerinde eğitebilir. Toplam belleği daha fazla olan bir örnek boyutu seçerek örnek boyutunu artırabilirsiniz.
Databricks Runtime 11.3 LTS ML ve üzerinde AutoML veri kümesini örneklediyse, örnekleme kesri kullanıcı arabiriminin Genel Bakış sekmesinde gösterilir.
Sınıflandırma sorunları için AutoML, hedef etiket dağılımını korumak üzere katmanlı örnekleme için PySpark sampleBy
yöntemini kullanır.
Regresyon sorunları için AutoML, PySpark sample
yöntemini kullanır.
Sınıflandırma sorunları için dengesiz veri kümesi desteği
Databricks Runtime 11.3 LTS ML ve üzeri sürümlerde AutoML bir veri kümesinin dengesiz olduğunu algılarsa, ana sınıfın (es) küçük örneklemesini yaparak ve sınıf ağırlıkları ekleyerek eğitim veri kümesinin dengesizliğini azaltmaya çalışır. AutoML yalnızca eğitim veri kümesini dengeler ve test ve doğrulama veri kümelerini dengelemez. Bunun yapılması, model performansının her zaman gerçek giriş sınıfı dağıtımıyla zenginleştirilmemiş veri kümesinde değerlendirilmesini sağlar.
AutoML, dengesiz bir eğitim veri kümesini dengelemek için belirli bir sınıfın aşağı örnekleme derecesiyle ters ilişkili sınıf ağırlıklarını kullanır. Örneğin, 100 örneği olan bir eğitim veri kümesinde A sınıfına ait 95 örnek ve B sınıfına ait beş örnek varsa, AutoML A sınıfını 70 örne düşürerek bu dengesizliği azaltır; yani A sınıfını 70/95 veya 0,736 oranında aşağı örnekleme yaparken B sınıfındaki örnek sayısını 5'te tutar. Son modelin doğru şekilde ayarlandığından ve model çıkışının olasılık dağılımının girişle aynı olduğundan emin olmak için AutoML, A sınıfı için sınıf ağırlığını 1/0,736 veya 1,358 oranına göre ölçeklendirir ve B sınıfının ağırlığını 1 olarak tutar. AutoML daha sonra model eğitiminde bu sınıf ağırlıklarını parametre olarak kullanarak modeli eğitirken her sınıftan örneklerin uygun şekilde ağırlıklı olmasını sağlar.
Zaman serisi toplama
Tahmin sorunları için, bir zaman serisinde bir zaman damgası için birden çok değer olduğunda, AutoML değerlerin ortalamasını kullanır.
Bunun yerine toplamı kullanmak için deneme çalıştırmaları tarafından oluşturulan kaynak kod not defterini düzenleyin. Verileri ... hücresine göre topla hücresinde, aşağıdaki gibi olarak değiştirin.agg(y=(target_col, "sum"))
.agg(y=(target_col, "avg"))
:
group_cols = [time_col] + id_cols
df_aggregation = df_loaded \
.groupby(group_cols) \
.agg(y=(target_col, "sum")) \
.reset_index() \
.rename(columns={ time_col : "ds" })
Anlamsal tür algılama
Not
- Anlamsal tür algılama, tahmin sorunlarına uygulanmaz.
- AutoML, belirtilen özel imputation yöntemlerine sahip sütunlar için anlamsal tür algılaması gerçekleştirmez.
Databricks Runtime 9.1 LTS ML ve üzeri sürümlerde AutoML, sütunların tablo şemasındaki Spark veya pandas veri türünden farklı bir anlam türüne sahip olup olmadığını algılamaya çalışır. AutoML bu sütunları algılanan anlam türü olarak ele alır. Bu algılamalar en iyi çabadır ve bazen anlam türlerinin varlığını kaçırabilir. Ayrıca, bir sütunun semantik türünü el ile ayarlayabilir veya AutoML'ye ek açıklamaları kullanarak sütuna anlam türü algılama uygulamaması gerektiğini söyleyebilirsiniz.
AutoML özellikle şu ayarlamaları yapar:
- Tarih veya zaman damgası verilerini temsil eden dize ve tamsayı sütunları zaman damgası türü olarak değerlendirilir.
- Sayısal verileri temsil eden dize sütunları sayısal bir tür olarak değerlendirilir.
Databricks Runtime 10.1 ML ve üzeri ile AutoML şu ayarlamaları da yapar:
- Kategorik kimlikler içeren sayısal sütunlar kategorik bir özellik olarak değerlendirilir.
- İngilizce metin içeren dize sütunları bir metin özelliği olarak değerlendirilir.
Anlamsal tür ek açıklamaları
Databricks Runtime 10.1 ML ve üzeri sürümlerde, bir sütuna anlam türü ek açıklaması yerleştirerek atanan anlam türünü el ile denetleyebilirsiniz. Sütun <column-name>
<semantic-type>
semantik türüne el ile olarak not eklemek için aşağıdaki söz dizimini kullanın:
metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)
<semantic-type>
aşağıdakilerden biri olabilir:
categorical
: Sütun kategorik değerler (örneğin, kimlik olarak ele alınması gereken sayısal değerler) içerir.numeric
: Sütun sayısal değerler (örneğin, sayılara ayrıştırılabilir dize değerleri) içerir.datetime
: Sütun zaman damgası değerlerini (zaman damgalarına dönüştürülebilen dize, sayısal veya tarih değerleri) içerir.text
: Dize sütunu İngilizce metin içerir.
Sütunda anlamsal tür algılamayı devre dışı bırakmak için özel anahtar sözcük ek açıklamasını native
kullanın.
Özellik Deposu tümleştirmesi
Databricks Runtime 11.3 LTS ML ve üzeri sürümleriyle, sınıflandırma ve regresyon sorunlarınız için özgün giriş veri kümesini artırmak üzere Özellik Deposu'ndaki mevcut özellik tablolarını kullanabilirsiniz.
Databricks Runtime 12.2 LTS ML ve üzeri sürümleriyle Özellik Deposu'ndaki mevcut özellik tablolarını kullanarak tüm AutoML sorunlarınız için özgün giriş veri kümesini artırabilirsiniz: sınıflandırma, regresyon ve tahmin.
Özellik tablosu oluşturmak için bkz . Özellik deposu nedir?.
Mevcut özellik tablolarını kullanmak için AutoML kullanıcı arabirimiyle özellik tablolarını seçebilir veya AutoML çalıştırma belirtiminizde parametresini ayarlayabilirsinizfeature_store_lookups
.
feature_store_lookups = [
{
"table_name": "example.trip_pickup_features",
"lookup_key": ["pickup_zip", "rounded_pickup_datetime"],
},
{
"table_name": "example.trip_dropoff_features",
"lookup_key": ["dropoff_zip", "rounded_dropoff_datetime"],
}
]
Not defteri örneği: Özellik Deposu ile AutoML denemesi
Aşağıdaki not defteri, AutoML ve Özellik Deposu özellik tablolarıyla ML modelini eğitmeyi gösterir.