From 9c398488e5a3193c18ad416a6a2a818bad4e2d5e Mon Sep 17 00:00:00 2001 From: Pmik13 Date: Sun, 12 May 2024 21:10:52 +0200 Subject: [PATCH] decisiontree --- dane.csv | 21 +++++++++++++++++++++ decisiontree.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/dane.csv b/dane.csv index e69de29bb..200477d03 100644 --- a/dane.csv +++ b/dane.csv @@ -0,0 +1,21 @@ +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 diff --git a/decisiontree.py b/decisiontree.py index e69de29bb..6ea9bb42b 100644 --- a/decisiontree.py +++ b/decisiontree.py @@ -0,0 +1,28 @@ +from sklearn.model_selection import train_test_split +from sklearn.tree import DecisionTreeClassifier, plot_tree +import matplotlib.pyplot as plt +import pandas as pd + + +data = pd.read_csv("dane.csv") + + +# 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) + + +accuracy = clf.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) +plt.show()