Makine Öğrenimi Modelinin Performansını İyileştirme (Devam…)
Algoritma Ayarlama ile Performans İyileştirme
Makine öğrenimi modellerinin, davranışları belirli bir soruna göre ayarlanabilecek şekilde parametrelendirildiğini biliyoruz. Algoritma ayarı, ML modelinin performansının iyileştirilebilmesi için bu parametrelerin en iyi kombinasyonunu bulmak anlamına gelir. Bu işlem bazen hiperparametre optimizasyonu olarak adlandırılır ve algoritmanın kendi parametrelerine hiperparametreler, ML algoritması tarafından bulunan katsayılara ise parametreler denir.
Burada, Python Scikit-learn tarafından sağlanan algoritma parametresi ayarlaması için bazı yöntemler hakkında tartışacağız.
Grid Search Parametre Ayarı
Bu bir parametre ayarlama yaklaşımıdır. Bu yöntemin çalışmasının kilit noktası, modeli, bir ızgarada belirtilen her olası algoritma parametresi kombinasyonu için metodik olarak oluşturması ve değerlendirmesidir. Dolayısıyla bu algoritmanın arama özelliğine sahip olduğunu söyleyebiliriz.
Example
Aşağıdaki Python tarifinde, Pima Indians diyabet veri setinde Ridge Regresyon algoritması için çeşitli alfa değerlerini değerlendirmek için GridSearchCV sklearn sınıfını kullanarak ızgara araması yapacağız.
İlk olarak, gerekli paketleri aşağıdaki şekilde içe aktarın -
import numpy
from pandas import read_csv
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
Şimdi, önceki örneklerde olduğu gibi Pima diyabet veri setini yüklememiz gerekiyor -
path = r"C:\pima-indians-diabetes.csv"
headernames = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=headernames)
array = data.values
X = array[:,0:8]
Y = array[:,8]
Ardından, çeşitli alfa değerlerini aşağıdaki gibi değerlendirin -
alphas = numpy.array([1,0.1,0.01,0.001,0.0001,0])
param_grid = dict(alpha=alphas)
Şimdi, modelimize grid arama uygulamamız gerekiyor -
model = Ridge()
grid = GridSearchCV(estimator=model, param_grid=param_grid)
grid.fit(X, Y)
Sonucu aşağıdaki komut dosyası satırıyla yazdırın -
print(grid.best_score_)
print(grid.best_estimator_.alpha)
Output
0.2796175593129722
1.0
Yukarıdaki çıktı bize en uygun puanı ve bu puanı elde eden ızgaradaki parametreler kümesini verir. Bu durumda alfa değeri 1.0'dır.
Rastgele Arama Parametre Ayarı
Bu bir parametre ayarlama yaklaşımıdır. Bu yöntemin çalışmanın kilit noktası, algoritma parametrelerini sabit sayıda yineleme için rastgele bir dağılımdan örneklemesidir.
Example
Aşağıdaki Python tarifinde, Pima Indians diyabet veri setinde Ridge Regresyon algoritması için 0 ile 1 arasındaki farklı alfa değerlerini değerlendirmek için RandomizedSearchCV sklearn sınıfını kullanarak rastgele arama yapacağız.
İlk olarak, gerekli paketleri aşağıdaki şekilde içe aktarın -
import numpy
from pandas import read_csv
from scipy.stats import uniform
from sklearn.linear_model import Ridge
from sklearn.model_selection import RandomizedSearchCV
Şimdi, önceki örneklerde olduğu gibi Pima diyabet veri setini yüklememiz gerekiyor -
path = r"C:\pima-indians-diabetes.csv"
headernames = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=headernames)
array = data.values
X = array[:,0:8]
Y = array[:,8]
Ardından, Ridge regresyon algoritmasındaki çeşitli alfa değerlerini aşağıdaki gibi değerlendirin -
param_grid = {'alpha': uniform()}
model = Ridge()
random_search = RandomizedSearchCV(estimator=model, param_distributions=param_grid, n_iter=50,
random_state=7)
random_search.fit(X, Y)
Sonucu aşağıdaki komut dosyası satırıyla yazdırın -
print(random_search.best_score_)
print(random_search.best_estimator_.alpha)
Output
0.27961712703051084
0.9779895119966027
Yukarıdaki çıktı bize tıpkı ızgara aramasına benzer şekilde en uygun puanı verir.