Ev tahmini projesi ilk yükleme,
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
|||||||
|
FROM python:3.11-slim
|
||||||
|
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
||||||
|
COPY requirements.txt .
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
|
||||||
|
CMD ["uvicorn", "ev_tahmini:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
from fastapi import FastAPI
|
||||||
|
import pandas as pd
|
||||||
|
from sklearn.linear_model import LinearRegression
|
||||||
|
import uvicorn
|
||||||
|
|
||||||
|
# 1. API Uygulamasını Başlat
|
||||||
|
app = FastAPI(title="Yapay Zeka Ev Tahmin Servisi")
|
||||||
|
|
||||||
|
# 2. Modeli Eğit (Sunucu açılırken bir kere yapılır)
|
||||||
|
veri = {
|
||||||
|
'Metrekare': [50, 80, 100, 120, 150],
|
||||||
|
'Fiyat_TL': [1500000, 2200000, 2800000, 3100000, 3900000]
|
||||||
|
}
|
||||||
|
df = pd.DataFrame(veri)
|
||||||
|
X = df[['Metrekare']]
|
||||||
|
y = df['Fiyat_TL']
|
||||||
|
|
||||||
|
model = LinearRegression()
|
||||||
|
model.fit(X, y)
|
||||||
|
|
||||||
|
# 3. İnternetten Gelen İstekleri Karşılayacak Kapıyı (Endpoint) Aç
|
||||||
|
@app.get("/tahmin")
|
||||||
|
def fiyat_tahmin_et(metrekare: float):
|
||||||
|
# İnternetten gelen metrekareyi DataFrame'e çevirip modele sor
|
||||||
|
istek_df = pd.DataFrame({'Metrekare': [metrekare]})
|
||||||
|
tahmin_sonucu = model.predict(istek_df)[0]
|
||||||
|
|
||||||
|
# Sonucu JSON formatında geri döndür
|
||||||
|
return {
|
||||||
|
"girilen_metrekare": metrekare,
|
||||||
|
"tahmini_fiyat_tl": round(tahmin_sonucu, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
# 4. Sunucuyu Çalıştır
|
||||||
|
if __name__ == "__main__":
|
||||||
|
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
fastapi
|
||||||
|
uvicorn
|
||||||
|
pandas
|
||||||
|
scikit-learn
|
||||||
Reference in New Issue
Block a user