Merhaba arkadaşlar,
Bir regresyon probleminde, destek vektör makinesi (SVR) modelini kullanarak veri üzerinde tahmin yapmam lazım. Verim yaklaşık 2700 satır ve birkaç kategorik ile sayısal özelliğe sahip. Bu modelin eğitim ve test süresiyle ilgili tahminlerde bulunmak istiyorum.
Grid Search işlemi ile toplamda 72 farklı parametre kombinasyonu üzerinde eğitim yapmayı planlıyorum. Bu kombinasyonlar için 5 kat çapraz doğrulama yapılacak. Modelin eğitimi SVR kullanılarak yapılacak ve her eğitim süresi, özellikle 2700 satırlık veri ile ne kadar sürebilir?
İşlemcim i7 11800H.
Eğitim ve optimizasyon süresi hakkında tahminlerde bulunabilir misiniz? Eğitimin yaklaşık olarak kaç dakikada tamamlanır? Dün sistemi başlattığımda 2 saat geçmesine rağmen sonuç alamadım ve fanları ayarlamak istediğimde NitroSense açılmadığı için işlemi yarıda kestim ve şimdi yeniden başlattım.
Bir regresyon probleminde, destek vektör makinesi (SVR) modelini kullanarak veri üzerinde tahmin yapmam lazım. Verim yaklaşık 2700 satır ve birkaç kategorik ile sayısal özelliğe sahip. Bu modelin eğitim ve test süresiyle ilgili tahminlerde bulunmak istiyorum.
Python:
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
file_path = r"C:\Users\Emre\Downloads\cleaned_dataset_no_outliers.xlsx"
data = pd.read_excel(file_path)
y = data['Fiyat (TL)']
num_cols = ['Brüt m²', 'Net m²', 'Oda Sayısı Numeric', 'Kat Sayısı Numeric', 'Banyo Sayısı', 'Aidat (TL)', 'Bina Yaşı Ortalama', 'Bulunduğu Kat (Dönüştürülmüş)']
cat_cols = ['Mahalle', 'Isıtma', 'Krediye Uygun', 'Tapu Durumu', 'Kimden', 'Takas', 'Site Adı']
for col in num_cols:
data[col] = pd.to_numeric(data[col], errors='coerce')
data[col] = data[col].fillna(data[col].mean())
for col in cat_cols:
data[col] = data[col].fillna('Belirtilmemiş')
X = data[num_cols + cat_cols]
# 3. Eğitim-test bölme
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
preprocessor = ColumnTransformer(
transformers=[
('num', 'passthrough', num_cols),
('cat', OneHotEncoder(handle_unknown='ignore'), cat_cols)
])
pipeline = Pipeline([
('preprocessor', preprocessor),
('svr', SVR())
])
param_grid = {
'svr__kernel': ['linear', 'rbf', 'poly'],
'svr__C': [0.1, 1, 10, 100],
'svr__gamma': ['scale', 'auto'],
'svr__degree': [3, 4, 5] # Sadece poly kernel için anlamlı
}
# 7. Grid Search (5 kat çapraz doğrulama)
grid_search = GridSearchCV(pipeline, param_grid, cv=5, scoring='r2', n_jobs=-1, verbose=2)
grid_search.fit(X_train, y_train)
print("En iyi parametreler:", grid_search.best_params_)
best_model = grid_search.best_estimator_
y_pred = best_model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'Test Seti MSE: {mse:.2f}')
print(f'Test Seti MAE: {mae:.2f}')
print(f'Test Seti R2: {r2:.2f}')
svr_model = best_model.named_steps['svr']
print(f'Destek Vektörleri Sayısı: {len(svr_model.support_)}')
Grid Search işlemi ile toplamda 72 farklı parametre kombinasyonu üzerinde eğitim yapmayı planlıyorum. Bu kombinasyonlar için 5 kat çapraz doğrulama yapılacak. Modelin eğitimi SVR kullanılarak yapılacak ve her eğitim süresi, özellikle 2700 satırlık veri ile ne kadar sürebilir?
İşlemcim i7 11800H.
Eğitim ve optimizasyon süresi hakkında tahminlerde bulunabilir misiniz? Eğitimin yaklaşık olarak kaç dakikada tamamlanır? Dün sistemi başlattığımda 2 saat geçmesine rağmen sonuç alamadım ve fanları ayarlamak istediğimde NitroSense açılmadığı için işlemi yarıda kestim ve şimdi yeniden başlattım.