File size: 3,351 Bytes
520d797
 
 
 
f05ff7f
25f0c7c
 
f05ff7f
25f0c7c
 
f05ff7f
 
 
 
 
 
25f0c7c
f05ff7f
520d797
2700457
520d797
 
 
 
 
 
 
25f0c7c
 
 
520d797
 
 
 
 
 
 
 
 
 
 
 
 
 
2700457
543ca25
 
 
 
 
 
 
25f0c7c
 
 
 
 
 
543ca25
 
 
 
 
 
 
 
 
 
 
 
f05ff7f
543ca25
f05ff7f
25f0c7c
 
 
f05ff7f
25f0c7c
 
f05ff7f
543ca25
25f0c7c
543ca25
 
 
 
fd1c827
f05ff7f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import gradio as gr
import pandas as pd
from pycaret.classification import setup, compare_models, pull

# Sütunları ve veri setini alma fonksiyonu
def get_columns(dosya):
    if dosya is None:
        return gr.update(choices=[]), gr.update(choices=[]), gr.update(choices=[]), pd.DataFrame()
    data = pd.read_csv(dosya.name)
    kolonlar = data.columns.tolist()
    return (
        gr.update(choices=kolonlar),  # Hedef sütun seçenekleri
        gr.update(choices=kolonlar),  # Sayısal sütunlar
        gr.update(choices=kolonlar),  # Kategorik sütunlar
        data.head()  # Veri seti ön izlemesi
    )

# Otomatik modelleme fonksiyonu
def otoml_islemi(dosya, hedef_sutun, sayisal_sutunlar, kategorik_sutunlar,
                 sayisal_imputasyon, kategorik_imputasyon, normalize, remove_outliers, ignore_sutunlar):
    # Veri setini yükleyin
    data = pd.read_csv(dosya.name)
    
    # PyCaret kurulumunu başlatın
    s = setup(
        data,
        target=hedef_sutun,
        numeric_features=sayisal_sutunlar if sayisal_sutunlar else None,
        categorical_features=kategorik_sutunlar if kategorik_sutunlar else None,
        ignore_features=ignore_sutunlar if ignore_sutunlar else None,
        numeric_imputation=sayisal_imputasyon,
        categorical_imputation=kategorik_imputasyon,
        normalize=normalize,
        remove_outliers=remove_outliers,
    )
    
    # Modelleri karşılaştırın ve en iyisini seçin
    en_iyi_model = compare_models()
    
    # Model değerlendirme sonuçlarını alın
    degerlendirme = pull()
    
    return degerlendirme

# Gradio arayüzü
with gr.Blocks() as demo:
    gr.Markdown("# PyCaret ile AutoML Arayüzü")
    
    with gr.Row():
        dosya = gr.File(label="Veri Seti (CSV)")
    
    with gr.Row():
        hedef_sutun = gr.Dropdown(label="Hedef Sütun Adı", choices=[])
    
    with gr.Row():
        sayisal_sutunlar = gr.CheckboxGroup(label="Sayısal Sütunlar", choices=[])
        kategorik_sutunlar = gr.CheckboxGroup(label="Kategorik Sütunlar", choices=[])
        ignore_sutunlar = gr.CheckboxGroup(label="Görmezden Gelinecek Sütunlar", choices=[])
    
    with gr.Row():
        sayisal_imputasyon = gr.Dropdown(choices=['mean', 'median', 'zero'], label="Sayısal İmputasyon Yöntemi", value='mean')
        kategorik_imputasyon = gr.Dropdown(choices=['mode', 'constant'], label="Kategorik İmputasyon Yöntemi", value='mode')
    
    with gr.Row():
        normalize = gr.Checkbox(label="Normalize Et", value=False)
        remove_outliers = gr.Checkbox(label="Aykırı Değerleri Kaldır", value=False)
    
    buton = gr.Button("Otomatik Modelleme Başlat")
    
    output = gr.Dataframe(label="Model Değerlendirme Sonuçları")
    preview = gr.Dataframe(label="Veri Seti Ön İzlemesi")
    
    # Dosya yüklendiğinde sütunları ve veri setini al
    dosya.change(
        fn=get_columns,
        inputs=dosya,
        outputs=[hedef_sutun, sayisal_sutunlar, kategorik_sutunlar, preview]
    )
    
    # Modelleme butonuna tıklandığında işlemi başlat
    buton.click(
        fn=otoml_islemi,
        inputs=[dosya, hedef_sutun, sayisal_sutunlar, kategorik_sutunlar,
                sayisal_imputasyon, kategorik_imputasyon, normalize, remove_outliers, ignore_sutunlar],
        outputs=output
    )

demo.launch(share=True)