Untitled
import time from pyspark.sql import SparkSession from pyspark.ml.feature import VectorAssembler from pyspark.ml.regression import LinearRegression from pyspark.ml.evaluation import RegressionEvaluator # Süre ölçümüne başla start_time = time.time() # 1. SparkSession başlat spark = SparkSession.builder \ .appName("HeartAttackAnalysis") \ .master("spark://192.168.56.101:7077") \ .getOrCreate() print("SparkSession başlatıldı.") step1_time = time.time() # 2. Veri setini yükle data = spark.read.csv("heart_attack_dataset.csv", header=True, inferSchema=True) print(f"Veri seti yüklendi: {data.count()} satır, {len(data.columns)} sütun") step2_time = time.time() # 3. Eksik verileri temizle data = data.na.drop() print(f"Veri seti temizlendi: {data.count()} satır kaldı.") step3_time = time.time() # 4. Öznitelik seçimi feature_cols = [col for col in data.columns if col not in ['Target']] # 'Target' bağımlı değişken assembler = VectorAssembler(inputCols=feature_cols, outputCol="features") data = assembler.transform(data).select("features", "Target") print("Öznitelik seçimi ve vektör dönüşümü tamamlandı.") step4_time = time.time() # 5. Veri setini eğitim ve test olarak ayır train_data, test_data = data.randomSplit([0.8, 0.2]) print(f"Eğitim ve test veri setleri oluşturuldu: Eğitim {train_data.count()} satır, Test {test_data.count()} satır.") step5_time = time.time() # 6. Model oluştur ve eğit lr = LinearRegression(featuresCol="features", labelCol="Target") lr_model = lr.fit(train_data) print("Model eğitimi tamamlandı.") step6_time = time.time() # 7. Tahmin yap ve sonuçları değerlendirme predictions = lr_model.transform(test_data) evaluator = RegressionEvaluator(labelCol="Target", predictionCol="prediction", metricName="rmse") rmse = evaluator.evaluate(predictions) print(f"Model doğrulama tamamlandı. Root Mean Squared Error (RMSE): {rmse}") step7_time = time.time() # 8. Süreleri hesapla ve raporla total_time = time.time() - start_time print("\n--- Süre Raporu ---") print(f"SparkSession başlatma: {step1_time - start_time:.2f} saniye") print(f"Veri seti yükleme: {step2_time - step1_time:.2f} saniye") print(f"Veri temizleme: {step3_time - step2_time:.2f} saniye") print(f"Öznitelik seçimi: {step4_time - step3_time:.2f} saniye") print(f"Veri setini ayırma: {step5_time - step4_time:.2f} saniye") print(f"Model eğitimi: {step6_time - step5_time:.2f} saniye") print(f"Tahmin ve değerlendirme: {step7_time - step6_time:.2f} saniye") print(f"Toplam süre: {total_time:.2f} saniye") # SparkSession sonlandır spark.stop()
Leave a Comment