Untitled

 avatar
unknown
plain_text
a month ago
2.7 kB
4
Indexable
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