Makine öğrenmesi modeli eğitme
Makine öğrenmesi modelini eğitmek, özelliklerine uygulanabilecek kabul edilebilir doğru bir işlevi belirlemek ve ilgili etiketleri hesaplamak için eğitim verilerinize bir makine öğrenmesi algoritması uydurmayı içerir. Bu kavramsal olarak basit bir fikir gibi görünebilir; ancak yalnızca eğitildiği veriler değil, yeni veriler üzerinde doğru tahminler üreten bir modeli eğitme süreci zor olabilir ve birden çok algoritma ve parametre kullanarak modelleri sürekli eğitme ve değerlendirmeye yönelik yinelemeli bir yaklaşım içerir.
Eğitim ve doğrulama verileri
Makine öğrenmesi modelini eğitirken yaygın bir yaklaşım, verileri eğitim ve doğrulama için rastgele alt kümelere bölmektir. Daha sonra eğitim veri kümesini kullanarak bir algoritmaya uydurabilir ve bir modeli eğitebilir ve ardından modelin ayırdığınız doğrulama verileriyle ne kadar iyi performans gösterdiğini test edebilirsiniz. Bu, modelin iyi genelleşmesine yardımcı olur; başka bir deyişle eğitilmediği veriler için doğru tahminler üretir.
Uyarı
Eğitildiği ancak yeni verilerle iyi çalışmayan veriler için iyi tahminde bulunan modeller, eğitim verilerine fazla uygun olarak tanımlanır.
Genellikle modeli yaklaşık 70% veriyle eğitmeli ve doğrulama için yaklaşık 30% tutmanız gerekir.
Makine öğrenmesi algoritmaları
Çözmeniz gereken makine öğrenmesi sorununun türüne göre farklı algoritma türlerine göre gruplandırılmış birçok makine öğrenmesi algoritması vardır. Çoğu makine öğrenmesi çerçevesi regresyon ve sınıflandırma için birden çok algoritma ve kümeleme gibi denetimsiz makine öğrenmesi sorunlarına yönelik algoritmalar içerir.
Çözmek üzere bir model oluşturmak istediğiniz sorun türünü belirledikten sonra, bu türdeki birden çok algoritma arasından seçim yapabilirsiniz. Her tür içinde, genellikle farklı matematiksel işlem türlerine dayalı olarak aralarından seçim yapabileceğiniz birden çok algoritma olabilir. Örneğin, sınıflandırma algoritmaları kümesinde aşağıdaki tür algoritmalar vardır:
- Her olası sınıfın olasılığını temsil eden 0 ile 1 arasında bir değeri hesaplamak için lojistik işlevleri yinelemeli olarak uygulayan lojistik regresyon algoritmaları ve tahmin edilen sınıf ile bilinen gerçek etiket değeri arasındaki farklara göre işlevin katsayılarını iyileştirin.
- Tek bir özelliğin dikkate alındığı bir karar ağacını tanımlayan ağaç tabanlı işlevler; ve değerine bağlı olarak, uygun bir sınıf etiketi belirlenene kadar başka bir özellik dikkate alınır ve bu şekilde devam eder.
- Ensemble algoritmalar, en uygun genel tahmine dayalı işlevi bulmak için birden çok tekniği birleştirir.
"En iyi" algoritma verilerinize bağlıdır ve genellikle belirlemek için yinelemeli deneme ve hata gerektirir.
Hiperparametreler
Makine öğrenmesi algoritmasının parametreleri , eğitildiği veri özellikleridir (ve etiketler). Ayrıca çoğu makine öğrenmesi algoritması, algoritmanın çalışma şeklini etkilemek için kullanabileceğiniz hiper parametreler sağlar. Hiper parametreler, modelde izin vermek istediğiniz rastgelelik düzeyi (genelleştirir ancak yine de kabul edilebilir doğru tahminler üretir), en uygun modeli bulmak için gerçekleştirilen yineleme sayısı (fazla uygunluktan kaçınmanıza ve eğitim süresini iyileştirmenize olanak tanır), ağaç modelinde dikkate alınacak dal sayısı gibi öğeleri denetlemenize olanak tanır. ve algoritmaya özgü diğer faktörler.
Modeli sığdırma
Bir modeli gerçekten eğitmek için algoritmayı verilere uydurmanız gerekir. Bunu yapmak için kullanılan söz dizimi ve veri biçimleri makine öğrenmesi çerçeveleri arasında farklılık gösterebilir, ancak ilke her zaman aynıdır. Denetimli makine öğrenmesi için algoritmayı bilinen etiketlere göre özelliklere sığdırabilirsiniz. Denetimsiz makine öğrenmesi için özellikleri sağlarsınız ve algoritma bunları ayrık kümelere ayırmaya çalışır.
Aşağıdaki örnekte Spark MLlib çerçevesini kullanarak lojistik regresyon modelinin eğitimini başlatmak için kullanılan kod gösterilmektedir. Eğitim verileri, etiketlerin tamsayı değerlerinden oluşan bir sütunda yer aldığı bir veri çerçevesi olarak sağlanır ve karşılık gelen özellikler tek bir değer vektör (dizisi) olarak temsil edilir. Bu örnekte, iki hiper parametre (maxIter ve regParam) da belirtilmiştir.
from pyspark.ml.classification import LogisticRegression
lr = LogisticRegression(labelCol="label", featuresCol="features", maxIter=10, regParam=0.3)
model = lr.fit(training_df)