diff --git a/.idea/misc.xml b/.idea/misc.xml index e5c1b90a2..ff140041e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ + + \ No newline at end of file diff --git a/dane.csv b/dane.csv index 200477d03..b44b48b9a 100644 --- a/dane.csv +++ b/dane.csv @@ -1,21 +1,85 @@ -rodzaj_gleby,wilgotnosc_gleby,temperatura_powietrza,wilgotnosc_powietrza,rodzaj_rosliny,nazwa_rosliny,pora_roku,pora_dnia,podlac -piasek,sucha,25,niska,drzewa,modrzew,jesien,południe,tak -glina,umiarkowana,20,średnia,kwiaty,róża,wiosna,ranek,tak -piasek,duża,30,wysoka,warzywa,pomidor,lato,południe,tak -piasek,umiarkowana,22,średnia,krzewy,jeżyna,lato,południe,tak -glina,mała,18,niska,drzewa,dąb,jesien,ranek,nie -glina,sucha,24,średnia,kwiaty,tulipan,wiosna,południe,tak -piasek,duża,28,wysoka,warzywa,ogórek,lato,południe,tak -glina,umiarkowana,19,średnia,krzewy,porzeczka,lato,południe,tak -piasek,umiarkowana,26,średnia,drzewa,jabłoń,lato,południe,tak -piasek,sucha,23,średnia,warzywa,papryka,lato,południe,tak -glina,mała,17,niska,kwiaty,storczyk,wiosna,ranek,nie -piasek,sucha,27,wysoka,drzewa,grab,jesien,południe,tak -glina,umiarkowana,21,średnia,krzewy,jagoda,lato,południe,tak -piasek,duża,29,średnia,warzywa,cukinia,lato,południe,tak -glina,mała,16,niska,kwiaty,fiołek,wiosna,południe,nie -piasek,sucha,26,średnia,drzewa,sosna,jesien,południe,tak -glina,umiarkowana,20,średnia,krzewy,agrest,lato,ranek,tak -piasek,duża,31,wysoka,warzywa,kapusta,lato,południe,tak -piasek,umiarkowana,24,średnia,krzewy,czarny bez,lato,południe,tak -glina,sucha,22,niska,drzewa,jesion,jesien,południe,tak +wilgotnosc_gleby,temperatura_gleby,opady_deszczu,wiek_rosliny,proc_ekspo_na_swiatlo,pora_dnia,pora_roku,roslina,podlac +40, 20, 5, 3, 70, 10, 2, Marchew, nie +60, 25, 0, 2, 50, 15, 3, Ziemniaki, tak +30, 18, 10, 1, 80, 12, 4, Pomidor, nie +50, 22, 3, 4, 60, 18, 1, Salata, tak +45, 23, 2, 5, 75, 8, 2, Cebula, tak +55, 26, 8, 3, 70, 14, 3, Papryka, nie +35, 21, 1, 2, 55, 16, 4, Buraki, tak +65, 24, 6, 4, 80, 11, 1, Brukselka, nie +42, 20, 4, 3, 65, 13, 2, Rzepak, tak +48, 22, 7, 5, 75, 9, 3, Szpinak, tak +30, 25, 0, 1, 70, 14, 2, Marchew, tak +60, 18, 10, 2, 60, 8, 3, Ziemniaki, nie +35, 20, 2, 3, 50, 12, 4, Pomidor, tak +50, 23, 1, 4, 65, 17, 1, Salata, tak +45, 24, 5, 5, 80, 10, 2, Cebula, tak +55, 22, 3, 3, 75, 13, 3, Papryka, nie +40, 26, 8, 6, 70, 16, 1, Buraki, nie +62, 21, 1, 4, 85, 9, 2, Brukselka, tak +47, 25, 6, 5, 60, 11, 3, Rzepak, nie +58, 20, 4, 3, 75, 14, 4, Szpinak, tak +38, 24, 7, 3, 65, 11, 1, Marchew, tak +59, 20, 3, 2, 55, 16, 2, Ziemniaki, nie +33, 22, 5, 1, 70, 9, 3, Pomidor, nie +52, 25, 2, 4, 80, 14, 4, Salata, tak +46, 21, 1, 5, 75, 10, 1, Cebula, tak +56, 26, 8, 3, 70, 15, 2, Papryka, nie +34, 23, 0, 2, 60, 8, 3, Buraki, nie +63, 18, 4, 4, 85, 12, 4, Brukselka, nie +41, 20, 1, 3, 65, 13, 1, Rzepak, tak +49, 22, 9, 5, 75, 17, 2, Szpinak, tak +29, 25, 0, 2, 70, 14, 3, Marchew, tak +61, 18, 11, 3, 60, 8, 1, Ziemniaki, nie +37, 20, 2, 4, 50, 12, 2, Pomidor, tak +51, 23, 0, 5, 65, 16, 4, Salata, tak +44, 24, 4, 6, 80, 10, 3, Cebula, tak +54, 22, 3, 3, 75, 13, 1, Papryka, nie +39, 26, 7, 1, 70, 15, 2, Buraki, nie +64, 21, 0, 4, 85, 9, 3, Brukselka, tak +48, 25, 5, 5, 60, 11, 4, Rzepak, nie +57, 20, 2, 3, 75, 14, 1, Szpinak, tak +32, 24, 8, 3, 65, 10, 2, Marchew, tak +62, 19, 2, 2, 55, 15, 3, Ziemniaki, nie +36, 21, 1, 1, 70, 12, 4, Pomidor, nie +53, 22, 4, 4, 80, 16, 1, Salata, tak +42, 23, 2, 5, 75, 8, 2, Cebula, tak +58, 26, 6, 3, 70, 14, 3, Papryka, nie +35, 21, 0, 2, 60, 17, 4, Buraki, nie +65, 18, 3, 4, 85, 11, 1, Brukselka, nie +45, 20, 1, 3, 65, 13, 2, Rzepak, tak +50, 22, 7, 5, 75, 9, 3, Szpinak, tak +31, 25, 0, 2, 70, 14, 1, Marchew, tak +60, 18, 9, 3, 60, 8, 2, Ziemniaki, nie +34, 20, 3, 4, 50, 12, 3, Pomidor, tak +52, 23, 1, 5, 65, 16, 4, Salata, tak +47, 24, 6, 6, 80, 10, 1, Cebula, tak +55, 22, 2, 3, 75, 13, 2, Papryka, nie +38, 26, 8, 1, 70, 15, 3, Buraki, nie +64, 21, 0, 4, 85, 9, 4, Brukselka, tak +41, 20, 2, 3, 65, 13, 1, Rzepak, tak +49, 22, 8, 5, 75, 17, 2, Szpinak, tak +30, 24, 1, 2, 70, 14, 3, Marchew, tak +61, 18, 10, 3, 60, 8, 1, Ziemniaki, nie +37, 20, 4, 4, 50, 12, 2, Pomidor, tak +51, 23, 2, 5, 65, 16, 4, Salata, tak +44, 24, 5, 6, 80, 10, 3, Cebula, tak +53, 22, 3, 3, 75, 13, 1, Papryka, nie +39, 26, 7, 1, 70, 15, 2, Buraki, nie +65, 21, 0, 4, 85, 9, 3, Brukselka, tak +48, 25, 6, 5, 60, 11, 4, Rzepak, nie +57, 20, 3, 3, 75, 14, 1, Szpinak, tak +32, 24, 9, 2, 65, 10, 2, Marchew, tak +62, 19, 1, 2, 55, 15, 3, Ziemniaki, nie +36, 21, 2, 1, 70, 12, 4, Pomidor, nie +55, 23, 3, 4, 80, 16, 1, Salata, tak +42, 23, 1, 5, 75, 8, 2, Cebula, tak +58, 26, 5, 3, 70, 14, 3, Papryka, nie +35, 21, 0, 2, 60, 17, 4, Buraki, nie +46, 20, 2, 3, 65, 13, 2, Rzepak, tak +50, 22, 6, 5, 75, 9, 3, Szpinak, tak +31, 25, 1, 2, 70, 14, 1, Marchew, tak +60, 18, 8, 3, 60, 8, 2, Ziemniaki, nie +33, 20, 4, 4, 50, 12, 3, Pomidor, tak +52, 23, 1, 5, 65, 16, 4, Salata, tak +47, 24, 7, 6, 80, 10, 1, Cebula, tak diff --git a/decisiontree.py b/decisiontree.py index 6ea9bb42b..045264f22 100644 --- a/decisiontree.py +++ b/decisiontree.py @@ -2,27 +2,33 @@ from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier, plot_tree import matplotlib.pyplot as plt import pandas as pd - +from sklearn import tree data = pd.read_csv("dane.csv") - +print(data) # Wczytanie danych X = data.drop(columns=["podlac"]) X = pd.get_dummies(X) y = data["podlac"] + # Podział danych na zbiór treningowy i testowy X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Inicjalizacja i dopasowanie modelu drzewa decyzyjnego -clf = DecisionTreeClassifier() -clf.fit(X_train, y_train) +model = DecisionTreeClassifier() +model.fit(X_train, y_train) - -accuracy = clf.score(X_test, y_test) +# Wyliczenie poprawności algorytmu +accuracy = model.score(X_test, y_test) print("Accuracy:", accuracy) + + + + # Wyświetlenie drzewa decyzyjnego plt.figure(figsize=(8, 5)) -plot_tree(clf, feature_names=X.columns, class_names=["Nie podlać", "Podlać"], filled=True) +plot_tree(model, feature_names=X.columns, class_names=["Nie podlać", "Podlać"], filled=True) plt.show() +