buraktrk commited on
Commit
3b33a74
·
verified ·
1 Parent(s): e989c36

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -23
app.py CHANGED
@@ -1,4 +1,4 @@
1
- # app.py – HuggingFace Spaces için sıfırdan eğitim ve tahmin
2
 
3
  import pandas as pd, numpy as np, gradio as gr
4
  from sklearn.model_selection import train_test_split, GridSearchCV
@@ -49,7 +49,6 @@ def safe_div(a: pd.Series, b: pd.Series) -> pd.Series:
49
  return (a / b.replace(0, np.nan)).fillna(0)
50
 
51
  def compute_ratios(df: pd.DataFrame) -> pd.DataFrame:
52
- # Tüm sayısal sütunları güvenli şekilde float'a çevir, boşlukları temizle
53
  for col in [c for c in df.columns if c != "Periyot"]:
54
  df[col] = pd.to_numeric(df[col], errors="coerce").fillna(0)
55
 
@@ -57,52 +56,65 @@ def compute_ratios(df: pd.DataFrame) -> pd.DataFrame:
57
  tl = df["Kısa Vadeli Yükümlülükler"] + df["Uzun Vadeli Yükümlülükler"]
58
 
59
  df["Cari Oran"] = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
60
- df["Asit Test Oranı"] = safe_div(df["Dönen Varlıklar"] - df["Stoklar"] - df["Diğer Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
 
 
 
61
  df["Nakit Oranı"] = safe_div(df["Nakit ve Nakit Benzerleri"], df["Kısa Vadeli Yükümlülükler"])
 
62
  df["Faaliyet Kar Marjı"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, df["Satış Gelirleri"])
 
63
  df["Brüt Kar Marjı (%)"] = safe_div(df["Ticari Faaliyetlerden Brüt Kar (Zarar)"] * 100, df["Satış Gelirleri"])
 
64
  df["Net Kar Marjı"] = safe_div(df["Dönem Net Kar/Zararı"] * 100, df["Satış Gelirleri"])
65
- df["Aktif Karlılık (%)"] = safe_div(df["Dönem Net Kar/Zararı"] * 100, ta)
66
- df["Aktif Devir Hızı"] = safe_div(df["Satış Gelirleri"], ta)
67
- df["Dönen Varlıklar Devir Hızı"] = safe_div(df["Dönen Varlıklar"], df["Satış Gelirleri"])
68
- df["Stok Devir Hızı"] = -safe_div(df["Satışların Maliyeti (-)"], df["Stoklar"])
69
- df["Finansal Kaldıraç"] = safe_div(tl, ta) * 100
 
 
 
 
 
70
  df["Kısa Vade Borç / Aktif"] = safe_div(df["Kısa Vadeli Yükümlülükler"], ta)
 
71
  df["Kısa Vade Borç / Özsermaye"] = safe_div(df["Kısa Vadeli Yükümlülükler"], df["Özkaynaklar"])
72
  df["Kısa Vade Borç / Toplam Borç"] = safe_div(df["Kısa Vadeli Yükümlülükler"], tl)
 
73
  df["Özsermaye / Aktif"] = safe_div(df["Özkaynaklar"], ta)
74
- df["Duran Varlıklar / Aktif "] = safe_div(df["Duran Varlıklar"] * 100, ta)
75
- df["Dönen Varlıklar / Aktif (%)"] = safe_div(df["Dönen Varlıklar"] * 100, ta)
76
  df["Özsermaye / Maddi Duran Varlıklar"] = safe_div(df["Özkaynaklar"], df["Maddi Duran Varlıklar"])
77
- df["Finansman Gider / Net Satış"] = safe_div(df["Finansman Giderleri"], df["Satış Gelirleri"])
78
- df["Esas Faaliyet Karı / Kısa Vadeli Borç"] = safe_div(df["Net Faaliyet Kar/Zararı"], df["Kısa Vadeli Yükümlülükler"])
79
- df["ROCE Oranı"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, ta)
 
 
 
 
80
 
81
- # Ek hesaplamalar için ara değişkenler
82
  X1 = safe_div(df["Dönen Varlıklar"] - df["Kısa Vadeli Yükümlülükler"], ta)
83
  X2 = safe_div(df["Geçmiş Yıllar Kar/Zararları"] + df["Dönem Net Kar/Zararı"], ta)
84
  X3 = safe_div(df["SÜRDÜRÜLEN FAALİYETLER VERGİ ÖNCESİ KARI (ZARARI)"], ta)
85
  X4 = safe_div(df["Özkaynaklar"], tl)
86
  X5 = safe_div(df["Satış Gelirleri"], ta)
 
87
 
88
- df["Altman Z-Skoru"] = 1.2*X1 + 1.4*X2 + 3.3*X3 + 0.6*X4 + X5
 
 
89
 
 
90
  Z1 = safe_div(df["Dönem Net Kar/Zararı"], ta)
91
  Z2 = safe_div(tl, ta)
92
  Z3 = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
93
- df["Zmijewski Skoru"] = -4.3 - 4.5*Z1 + 5.7*Z2 - 0.004*Z3
94
 
95
- S1, S2, S3, S4 = X1, X3, safe_div(df["SÜRDÜRÜLEN FAALİYETLER VERGİ ÖNCESİ KARI (ZARARI)"], df["Kısa Vadeli Yükümlülükler"]), X5
96
- df["Springate Skoru"] = 1.03 * S1 + 3.07 * S2 + 0.66 * S3 + 0.4 * S4
97
-
98
- L6 = safe_div(safe_div(df["Nakit ve Nakit Benzerleri"], df["Kısa Vadeli Yükümlülükler"]), tl)
99
- L7 = safe_div(tl, ta)
100
- df["L Model Skoru"] = (-0.113*X1 + 0.238*X2 - 0.052*X3 - 0.051*X4 +
101
- 0.011*X5 + 0.729*L6 - 0.639*L7)
102
 
103
  return df
104
 
105
 
 
106
  # ------------------------ MODEL EĞİTİMİ ------------------------
107
  df = pd.read_csv("refined_data.csv")
108
  df["Görüs Tipi"] = df["Görüs Tipi"].apply(
 
1
+
2
 
3
  import pandas as pd, numpy as np, gradio as gr
4
  from sklearn.model_selection import train_test_split, GridSearchCV
 
49
  return (a / b.replace(0, np.nan)).fillna(0)
50
 
51
  def compute_ratios(df: pd.DataFrame) -> pd.DataFrame:
 
52
  for col in [c for c in df.columns if c != "Periyot"]:
53
  df[col] = pd.to_numeric(df[col], errors="coerce").fillna(0)
54
 
 
56
  tl = df["Kısa Vadeli Yükümlülükler"] + df["Uzun Vadeli Yükümlülükler"]
57
 
58
  df["Cari Oran"] = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
59
+ df["Asit Test Oranı"] = safe_div(
60
+ df["Dönen Varlıklar"] - df["Stoklar"] - df["Diğer Dönen Varlıklar"],
61
+ df["Kısa Vadeli Yükümlülükler"]
62
+ )
63
  df["Nakit Oranı"] = safe_div(df["Nakit ve Nakit Benzerleri"], df["Kısa Vadeli Yükümlülükler"])
64
+ df["Aktif Karlılık (%)"] = safe_div(df["Dönem Net Kar/Zararı"] * 100, ta)
65
  df["Faaliyet Kar Marjı"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, df["Satış Gelirleri"])
66
+ df["Esas Faaliyet Kar Marjı"] = safe_div(df["Net Faaliyet Kar/Zararı"] * 100, df["Satış Gelirleri"])
67
  df["Brüt Kar Marjı (%)"] = safe_div(df["Ticari Faaliyetlerden Brüt Kar (Zarar)"] * 100, df["Satış Gelirleri"])
68
+ df["FAVÖK Marjı (%)"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, df["Satış Gelirleri"])
69
  df["Net Kar Marjı"] = safe_div(df["Dönem Net Kar/Zararı"] * 100, df["Satış Gelirleri"])
70
+ df["Özsermaye Karlılığı (%)"] = safe_div(df["Dönem Net Kar/Zararı"] * 100, df["Özkaynaklar"])
71
+ df["VAFÖK Marjı"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, df["Satış Gelirleri"])
72
+ df["ROCE Oranı"] = safe_div(df["FAALİYET KARI (ZARARI)"] * 100, ta)
73
+ df["Finansman Gider / Net Satış"] = safe_div(df["Finansman Giderleri"], df["Satış Gelirleri"])
74
+ df["Borç Kaynak Oranı"] = safe_div(tl * 100, df["Özkaynaklar"])
75
+ df["Duran Varlıklar / Aktif "] = safe_div(df["Duran Varlıklar"] * 100, ta)
76
+ df["Duran Varlıklar / Maddi Özkaynak"] = safe_div(df["Duran Varlıklar"], df["Özkaynaklar"] - df["Maddi Olmayan Duran Varlıklar"])
77
+ df["Esas Faaliyet Karı / Kısa Vadeli Borç"] = safe_div(df["Net Faaliyet Kar/Zararı"], df["Kısa Vadeli Yükümlülükler"])
78
+ df["FAVÖK / Kısa Vade Borç"] = safe_div(df["FAALİYET KARI (ZARARI)"], df["Kısa Vadeli Yükümlülükler"])
79
+ df["Net Borç / FAVÖK"] = safe_div(tl, df["FAALİYET KARI (ZARARI)"])
80
  df["Kısa Vade Borç / Aktif"] = safe_div(df["Kısa Vadeli Yükümlülükler"], ta)
81
+ df["Kısa Vade Borç / Dönen Varlık"] = safe_div(df["Kısa Vadeli Yükümlülükler"], df["Dönen Varlıklar"])
82
  df["Kısa Vade Borç / Özsermaye"] = safe_div(df["Kısa Vadeli Yükümlülükler"], df["Özkaynaklar"])
83
  df["Kısa Vade Borç / Toplam Borç"] = safe_div(df["Kısa Vadeli Yükümlülükler"], tl)
84
+ df["Net Satışlar / Kısa Vade Borç"] = safe_div(df["Satış Gelirleri"], df["Kısa Vadeli Yükümlülükler"])
85
  df["Özsermaye / Aktif"] = safe_div(df["Özkaynaklar"], ta)
 
 
86
  df["Özsermaye / Maddi Duran Varlıklar"] = safe_div(df["Özkaynaklar"], df["Maddi Duran Varlıklar"])
87
+ df["Toplam Borç / Özsermaye"] = safe_div(tl, df["Özkaynaklar"])
88
+ df["Aktif Devir Hızı"] = safe_div(df["Satış Gelirleri"], ta)
89
+ df["Alacak Devir Hızı"] = safe_div(df["Satış Gelirleri"], df["Ticari Alacaklar"])
90
+ df["Dönen Varlıklar Devir Hızı"] = safe_div(df["Dönen Varlıklar"], df["Satış Gelirleri"])
91
+ df["Ticari Borçlar Devir Hızı"] = -safe_div(df["Satışların Maliyeti (-)"], df["Ticari Borçlar"])
92
+ df["Finansal Kaldıraç"] = safe_div(tl * 100, ta)
93
+ df["Stok Devir Hızı"] = -safe_div(df["Satışların Maliyeti (-)"], df["Stoklar"])
94
 
95
+ # Altman Z-Skoru
96
  X1 = safe_div(df["Dönen Varlıklar"] - df["Kısa Vadeli Yükümlülükler"], ta)
97
  X2 = safe_div(df["Geçmiş Yıllar Kar/Zararları"] + df["Dönem Net Kar/Zararı"], ta)
98
  X3 = safe_div(df["SÜRDÜRÜLEN FAALİYETLER VERGİ ÖNCESİ KARI (ZARARI)"], ta)
99
  X4 = safe_div(df["Özkaynaklar"], tl)
100
  X5 = safe_div(df["Satış Gelirleri"], ta)
101
+ df["Altman Z-Skoru"] = 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5
102
 
103
+ # Springate
104
+ S3 = safe_div(df["SÜRDÜRÜLEN FAALİYETLER VERGİ ÖNCESİ KARI (ZARARI)"], df["Kısa Vadeli Yükümlülükler"])
105
+ df["Springate Skoru"] = 1.03 * X1 + 3.07 * X3 + 0.66 * S3 + 0.4 * X5
106
 
107
+ # Zmijewski
108
  Z1 = safe_div(df["Dönem Net Kar/Zararı"], ta)
109
  Z2 = safe_div(tl, ta)
110
  Z3 = safe_div(df["Dönen Varlıklar"], df["Kısa Vadeli Yükümlülükler"])
111
+ df["Zmijewski Skoru"] = -4.3 - 4.5 * Z1 + 5.7 * Z2 - 0.004 * Z3
112
 
 
 
 
 
 
 
 
113
 
114
  return df
115
 
116
 
117
+
118
  # ------------------------ MODEL EĞİTİMİ ------------------------
119
  df = pd.read_csv("refined_data.csv")
120
  df["Görüs Tipi"] = df["Görüs Tipi"].apply(