This commit is contained in:
KKurylo 2023-10-17 18:40:40 +02:00
commit d6706a3a78
6 changed files with 4250 additions and 1465 deletions

418
in.tsv Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,23 @@
from tkinter import * from tkinter import *
from tkinter import messagebox from tkinter import messagebox
import pickle
import numpy as np
from sklearn.preprocessing import StandardScaler
window = Tk() window = Tk()
window.minsize(width=600, height=600) window.minsize(width=600, height=600)
window.config(padx=50, pady=50) window.config(padx=50, pady=50)
window.config(background="#ffffff")
window.title("Regresja") window.title("Regresja")
tytul = Label() tytul = Label()
tytul.config(text="Wycena wartości mieszkania na podstawie danych z serwisu otodom.pl", padx=70, pady=50) tytul.config(text="Wycena wartości mieszkania na podstawie danych z serwisu otodom.pl", padx=70, pady=50, background="#ffffff")
tytul.grid(column=0, row=0, columnspan=2) tytul.grid(column=0, row=0, columnspan=2)
metraz = Label() metraz = Label()
metraz.config(text="Metraż", pady=20) metraz.config(text="Metraż", pady=20, background="#ffffff")
metraz.grid(column=0, row=1) metraz.grid(column=0, row=1)
metraz_entry = Entry() metraz_entry = Entry()
@ -24,18 +28,19 @@ pietro_entry.grid(column=1, row=2)
pietro = Label() pietro = Label()
pietro.config(text="Piętro", pady=20) pietro.config(text="Piętro", pady=20, background="#ffffff")
pietro.grid(column=1, row=1) pietro.grid(column=1, row=1)
przewidywania = Label() przewidywania = Label()
przewidywania.config(text="Przewidywanie:", pady=20, padx=5) przewidywania.config(text="Przewidywanie:", pady=20, padx=5, background="#ffffff")
przewidywania.grid(column=0, row=4, sticky='e') przewidywania.grid(column=0, row=4, sticky='e')
wartosc_regresji = Label() wartosc_regresji = Label()
wartosc_regresji.config(text="Wartosć przewidywana") wartosc_regresji.config(text="Wartosć przewidywana", background="#ffffff")
wartosc_regresji.grid(column=1, row=4, sticky='w') wartosc_regresji.grid(column=1, row=4, sticky='w')
model = pickle.load(open("model.pkl", 'rb'))
def val_numbers(): def val_numbers():
@ -49,11 +54,16 @@ def val_numbers():
messagebox.showinfo(title="Error", message=f"Please provide numbers between 0 to 100 for floors and 0 to 100.000 for metric area.") messagebox.showinfo(title="Error", message=f"Please provide numbers between 0 to 100 for floors and 0 to 100.000 for metric area.")
else: else:
confirm = messagebox.askyesno(title="Confirm", message="Do you want to start prediction?") confirm = messagebox.askyesno(title="Confirm", message="Do you want to start prediction?")
if confirm == True:
array = np.array([[int(pietro_entry.get()),float(metraz_entry.get())]])
scaler = StandardScaler()
transformed_data = scaler.fit_transform(array)
prediction = model.predict(transformed_data)
wartosc_regresji.config(text=f'{round(prediction[0][0], 2)} PLN')
start_button = Button(command=val_numbers) start_button = Button(command=val_numbers)
start_button.config(text="Start") start_button.config(text="Start", background="#000000", foreground="#ffffff")
start_button.grid(column=0, row=3, columnspan=2, sticky="s", pady=20) start_button.grid(column=0, row=3, columnspan=2, sticky="s", pady=20)
window.mainloop() window.mainloop()

BIN
model.pkl Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,68 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"source": [
"## Raport z zadań laboratorium nr 1 \n",
"### grupa B\n",
"### 10.10.2023\n",
"Skład: <br>\n",
"Piotr Szkudlarek - typ B2 <br>\n",
"Katarzyna Kuryło - typ A1 <br>\n",
"Julia Krzemień - typ A3 <br>\n",
"Olga Kwoczak - typ B3 <br>"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"### Zadanie 2\n",
"\n",
"Program uruchamia się za pomocą notatnika Jupyter."
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"### Zadanie 3\n",
"\n"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"Podręcznik użytkowania kalkulatora cen mieszkań\n",
"\n",
"Interfejs programu zawiera dwa pola do wprowadzania parametrów. Użytkownik wpisuje metraż mieszkania oraz piętro, na którym znajduje się mieszkanie. Oba pola nie mogą być puste, a wpisywane wartości muszą być typu numerycznego. Jeśli wprowadzone dane są niepoprawne, wyskoczy okienko z prośbą o uzupełnienie danych - \"Please provide valid data\". Po prawidłowym uzupełnieniu pól można uruchomić kalkulator za pomocą przycisku \"start\".Program poprosi o potwierdzenie startu. Wynikiem działania programu jest prognozowana cena mieszkania, wyliczona na podstawie działania modelu regresji liniowej."
],
"metadata": {}
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.5"
},
"nteract": {
"version": "nteract-front-end@1.0.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

2547
train.tsv Normal file

File diff suppressed because one or more lines are too long