Untitled
unknown
plain_text
2 months ago
2.5 kB
4
Indexable
# Gerekli Kütüphaneler import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler from sklearn.metrics import mean_absolute_error, r2_score import matplotlib.pyplot as plt import seaborn as sns # Veri Yükleme df = pd.read_csv('WEC_Perth_49.csv') # Veri Ön İşleme # Sayısal sütunları seç df = df.select_dtypes(include=['float64', 'int64']) # Eksik Değer Kontrolü print("Eksik Değer Sayıları:\n", df.isnull().sum()) df = df.dropna() # Eksik değerleri kaldır # Aykırı Değer Kontrolü (IQR Yöntemi) Q1 = df.quantile(0.25) Q3 = df.quantile(0.75) IQR = Q3 - Q1 df = df[~((df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))).any(axis=1)] print("Aykırı Değerler Temizlendi") # Hedef ve Bağımsız Değişkenleri Belirle if 'Total_Power' in df.columns: y = df['Total_Power'] X = df.drop(columns=['Total_Power']) else: raise ValueError("Hedef değişken 'Total_Power' veri setinde bulunamadı.") # Özellik Ölçeklendirme scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # Veri Setini Ayırma (%80 Eğitim, %20 Test) X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42) # Model Oluşturma ve Eğitim model = LinearRegression() model.fit(X_train, y_train) # Tahmin Yapma y_pred = model.predict(X_test) # Performans Metrikleri mae = mean_absolute_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print("Mean Absolute Error (MAE):", mae) print("R-squared (R²):", r2) # Gerçek ve Tahmin Değerlerini Görselleştirme plt.figure(figsize=(10, 6)) sns.scatterplot(x=y_test, y=y_pred) plt.xlabel('Gerçek Değerler (Total_Power)') plt.ylabel('Tahmin Edilen Değerler (Total_Power)') plt.title('Gerçek vs Tahmin Edilen Değerler') plt.show() # Artıkların Dağılımı residuals = y_test - y_pred plt.figure(figsize=(10, 6)) sns.histplot(residuals, kde=True, bins=30) plt.title('Artıkların Dağılımı') plt.show() # Artıkların Saçılım Grafiği plt.figure(figsize=(10, 6)) sns.scatterplot(x=y_pred, y=residuals) plt.axhline(y=0, color='r', linestyle='--') plt.title('Tahmin Edilen Değerler vs Artıklar') plt.show() # Katsayılar ve Değişken Önem Düzeyi coefficients = pd.DataFrame({'Feature': X.columns, 'Coefficient': model.coef_}) print("Değişkenlerin Regresyon Katsayıları:") print(coefficients.sort_values(by='Coefficient', ascending=False))
Editor is loading...
Leave a Comment