Makine Öğrenmesi Apache Spark İle Ev Fiyat tahmini

Oda sayısı, balkon var mı yok mu? Cephe kuzey mi güney mi? İl/İlçe. Banyo sayısı. Merkezi Isıtma/Soba/Kombi mi? Bu featurelara göre ev fiyat bilgisi veren örnek bir veri seti verir misin?


Elbette, size örnek bir ev ilanları veri seti oluşturabilirim. Bu veri seti, evlerin oda sayısı, balkon varlığı, cephesi (kuzey veya güney), il/ilçe konumu, banyo sayısı ve ısıtma tipi (merkezi ısıtma, soba veya kombi) gibi özelliklerini içerecek ve her bir ev için tahmini bir fiyat sağlayacak. İşte bu özelliklere göre düzenlenmiş örnek bir veri seti:


Ev ID Oda Sayısı Balkon Varlığı Cephe İl/İlçe Banyo Sayısı Isıtma Tipi Tahmini Fiyat (TL)

1 3 Var Güney İstanbul/Kadıköy 2 Kombi 750.000

2 2 Yok Kuzey Ankara/Çankaya 1 Merkezi Isıtma 450.000

3 4 Var Güney İzmir/Konak 2 Soba 600.000

4 1 Var Kuzey Bursa/Osmangazi 1 Kombi 300.000

5 3 Yok Kuzey Antalya/Muratpaşa 1 Merkezi Isıtma 500.000

Bu tablo, gerçek verilere dayanmayan, sadece bir örnek olarak oluşturulmuş kurgusal bir veri setidir. Gerçek veri setleri genellikle çok daha fazla sayıda örnek ve daha detaylı özellikler içerir.


Şimdi bu verilerin 20 bin adet olduğunu varsayılım. Apache Spark ile verdiğim özelliklere göre ev fiyatı tahmin eden Java ile yazılmış bir tahmin modeli oluşturmak istiyorum. Adım adım ne yaptığını yazıp kodlamanı istiyorum.


Modelle tahminleme yapmak için öncelikle eğitilmiş bir modelinizin olması gerekiyor. Yukarıda bahsedilen adımlarla bir model eğittikten sonra, bu modeli kullanarak yeni veri üzerinde tahminleme yapabilirsiniz. Java'da Apache Spark kullanarak bu işlemi gerçekleştirecek bir uygulama yazalım:


java

Copy code

import org.apache.spark.sql.SparkSession;

import org.apache.spark.sql.Dataset;

import org.apache.spark.sql.Row;

import org.apache.spark.ml.feature.VectorAssembler;

import org.apache.spark.ml.regression.LinearRegressionModel;


public class HousePricePrediction {

    public static void main(String[] args) {

        // SparkSession başlatma

        SparkSession spark = SparkSession.builder().appName("House Price Prediction").getOrCreate();


        // Eğitilmiş modeli yükleme

        LinearRegressionModel model = LinearRegressionModel.load("path/to/your/saved/model");


        // Yeni veri setini yükleme

        Dataset<Row> newDF = spark.read().option("header", "true").csv("path/to/your/new/data.csv");


        // Yeni veriler için özellik mühendisliği (eğitim veri setiyle aynı ön işlemler)

        // ...


        // Özellikleri vektör olarak birleştirme

        VectorAssembler assembler = new VectorAssembler().setInputCols(new String[]{"oda", "balkon", ...}).setOutputCol("features");

        Dataset<Row> transformedNewData = assembler.transform(newDF);


        // Tahminleme yapma

        Dataset<Row> predictions = model.transform(transformedNewData);


        // Tahminleri gösterme veya kaydetme

        predictions.select("fiyat").show();


        spark.stop();

    }

}

Bu kod parçacığı, eğitilmiş bir modeli yükler ve yeni veri seti üzerinde tahminler yapar. Burada dikkat edilmesi gereken noktalar:


newDF: Tahmin yapmak istediğiniz yeni veri setidir. Bu veri seti, model eğitimi sırasında kullanılan veri setiyle aynı formatta olmalıdır.


Özellik Mühendisliği: Yeni veri seti üzerinde, model eğitimi sırasında uyguladığınız aynı ön işleme adımlarını uygulamanız gerekmektedir.


assembler: Modelin eğitimi sırasında kullanılan özellikleri vektör formuna dönüştürmek için kullanılır.


model.transform(transformedNewData): Bu, yeni veri seti üzerinde tahmin yapmak için kullanılır.


predictions.select("predictedLabel").show(): Bu satır, tahmin edilen değerleri gösterir. İsterseniz bu tahminleri bir dosyaya kaydedebilir veya başka bir işlem için kullanabilirsiniz.


Bu uygulama, modelinizi gerçek dünya verileri üzerinde test etmek ve tahminler yapmak için kullanılabilir. Gerçek bir uygulamada, veri ön işleme ve özellik mühendisliği adımları daha karmaşık olabilir ve modelinizin doğruluğunu artırmak için ek ayarlamalar gerekebilir.







Please Select Embedded Mode To Show The Comment System.*

Daha yeni Daha eski

نموذج الاتصال