Rozbudowanie przykładu 04

This commit is contained in:
Paweł Skórzewski 2022-03-24 11:23:46 +01:00
parent 5f0e9bc9a9
commit a847c25479

View File

@ -31,24 +31,57 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 12,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"[[289411.43360715]\n", "0 Polecam mieszkanie 2 pokojowe o metrażu 46,68...\n",
" [285930.72623304]\n", "1 Ekskluzywna oferta - tylko u nas! Projekt arc...\n",
" [229893.92602325]\n", "2 Polecam do kupna przestronne mieszkanie trzyp...\n",
" [823267.1750005 ]\n", "3 Dla rodziny albo pod wynajem. Świetna lokaliz...\n",
" [821038.18583152]\n", "4 NaN\n",
" [356875.19267371]\n", " ... \n",
" [409340.86981766]\n", "4933 Trzypokojowe mieszkanie do generalnego remont...\n",
" [278401.700237 ]\n", "4934 OKAZJA!! LUKSUSOWY APARTAMENT W SĄSIEDZTWIE P...\n",
" [301680.27997255]\n", "4935 Jest to oferta nieruchomości z rynku pierwotn...\n",
" [281051.71865054]]\n", "4936 Mam do sprzedania dom mieszkalny, jednorodzin...\n",
"Błąd średniokwadratowy wynosi 39595039990.2324\n" "4937 Sprzedaż nowego mieszkania w FAŁKOWIE - Osied...\n",
"Name: opis, Length: 4938, dtype: object\n"
]
}
],
"source": [
"dataset_filename = 'flats.tsv'\n",
"data = pd.read_csv(dataset_filename, header=0, sep='\\t')\n",
"\n",
"print(data['opis'])\n",
"\n",
"data['ładne w opisie'] = data['opis'].apply(lambda x: True if 'ładne' in str(x) else False)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[302322.47270869]\n",
" [283694.74995925]\n",
" [276290.72977935]\n",
" [477362.89530745]\n",
" [420862.62245119]\n",
" [312510.3868097 ]\n",
" [362445.20969959]\n",
" [335753.83506582]\n",
" [759239.88142398]\n",
" [684376.72797254]]\n",
"Błąd średniokwadratowy wynosi 29811493540.217434\n"
] ]
} }
], ],
@ -67,11 +100,12 @@
" 'Liczba pięter w budynku',\n", " 'Liczba pięter w budynku',\n",
" 'Piętro',\n", " 'Piętro',\n",
" 'Rok budowy',\n", " 'Rok budowy',\n",
" 'ładne w opisie'\n",
"]\n", "]\n",
"\n", "\n",
"\n", "\n",
"def preprocess(data):\n", "def preprocess(data):\n",
" \"\"\"Wstępne przetworzenie danych\"\"\"\n", " \"\"\"Wstępne przetworzenie danych, np. zamiana wartości tekstowych na liczby\"\"\"\n",
" data = data.replace({'parter': 0, 'poddasze': 0}, regex=True)\n", " data = data.replace({'parter': 0, 'poddasze': 0}, regex=True)\n",
" data = data.applymap(np.nan_to_num) # Zamienia \"NaN\" na liczby\n", " data = data.applymap(np.nan_to_num) # Zamienia \"NaN\" na liczby\n",
" return data\n", " return data\n",
@ -81,7 +115,14 @@
"\n", "\n",
"# Wczytanie danych\n", "# Wczytanie danych\n",
"data = pd.read_csv(dataset_filename, header=0, sep='\\t')\n", "data = pd.read_csv(dataset_filename, header=0, sep='\\t')\n",
"\n",
"# Jeżeli chcemy, możemy stworzyć nową cechę (kolumnę) na podstawie istniejącej\n",
"# Poniższa cecha mówi, czy kolumna \"opis\" zawiera słowo \"ładne\"\n",
"data['ładne w opisie'] = data['opis'].apply(\n",
" lambda x: True if 'ładne' in str(x) else False)\n",
"\n",
"data = data[FEATURES + ['cena']] # wybór cech\n", "data = data[FEATURES + ['cena']] # wybór cech\n",
"data = data[(data[\"Powierzchnia w m2\"] < 10000) & (data[\"cena\"] > 10000)]\n",
"data = preprocess(data) # wstępne przetworzenie danych\n", "data = preprocess(data) # wstępne przetworzenie danych\n",
"\n", "\n",
"# Podział danych na zbiory uczący i testowy\n", "# Podział danych na zbiory uczący i testowy\n",