{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "code", "source": [ "!pip install shap catboost -qqq" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "S-bKew6sru-E", "outputId": "d3e42f68-d081-4c79-d4e4-b232aadb5992" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m575.9/575.9 KB\u001b[0m \u001b[31m13.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m76.6/76.6 MB\u001b[0m \u001b[31m9.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h" ] } ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Rql8Sw4On-L8" }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "source": [ "df1 = pd.read_csv('/content/drive/MyDrive/krasnodar_hack/cian_parsing_result_sale_1_100_krasnodar_18_Feb_2023_03_00_53_912228.csv', sep=';')\n", "df2 = pd.read_csv('/content/drive/MyDrive/krasnodar_hack/cian_parsing_result_sale_50_200_krasnodar_17_Feb_2023_16_32_25_653503.csv', sep=';')" ], "metadata": { "id": "kgtmpsa2oYkQ" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df = pd.concat([df1, df2])" ], "metadata": { "id": "Fd0PVyVxo6H3" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df = df.drop_duplicates()\n", "df = df[df['living_meters'] > 10]" ], "metadata": { "id": "yx0EDpVxpCeL" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df.info()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6Swi2L94pfp7", "outputId": "9cf81e64-d09d-4fd3-eb56-1bc119924d1c" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "Int64Index: 1004 entries, 0 to 131\n", "Data columns (total 20 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 author 1004 non-null object \n", " 1 author_type 1004 non-null object \n", " 2 link 1004 non-null object \n", " 3 city 1004 non-null object \n", " 4 deal_type 1004 non-null object \n", " 5 accommodation_type 1004 non-null object \n", " 6 floor 1004 non-null int64 \n", " 7 floors_count 1004 non-null int64 \n", " 8 rooms_count 1004 non-null int64 \n", " 9 total_meters 1004 non-null float64\n", " 10 price_per_m2 1004 non-null int64 \n", " 11 price 1004 non-null int64 \n", " 12 year_of_construction 1004 non-null int64 \n", " 13 living_meters 1004 non-null float64\n", " 14 kitchen_meters 1004 non-null float64\n", " 15 phone 1004 non-null int64 \n", " 16 district 96 non-null object \n", " 17 street 94 non-null object \n", " 18 underground 0 non-null float64\n", " 19 residential_complex 14 non-null object \n", "dtypes: float64(4), int64(7), object(9)\n", "memory usage: 164.7+ KB\n" ] } ] }, { "cell_type": "code", "source": [ "df = df.drop(columns=['author', 'author_type', 'city', 'deal_type', 'accommodation_type', 'floors_count', 'price_per_m2', 'phone', 'district', 'street',\n", " 'underground', 'residential_complex'])" ], "metadata": { "id": "FfwwIZnAptDZ" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "import seaborn as sns\n", "sns.distplot(df[(df['price'] > 1000000) & (df['price'] < 10000000)]['price'].values)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 361 }, "id": "eHaAjo3oqSOu", "outputId": "687d1aee-6962-4955-8e95-5b4db0a8156c" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.8/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", " warnings.warn(msg, FutureWarning)\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 48 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "sns.distplot(np.log(df['price'].values))\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 341 }, "id": "QWk979EYqSX8", "outputId": "19b9153e-7e3d-4d42-bd93-9e6f91130c7d" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.8/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", " warnings.warn(msg, FutureWarning)\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 26 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "df = df[(df['price'] > 1000000) & (df['price'] < 10000000)]" ], "metadata": { "id": "yTsj5H6er_E4" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "1.050000e+06" ], "metadata": { "id": "9HUIrkcm2Fjb", "outputId": "c12b60c2-8596-4670-bb4a-b6e905d50d46", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "1050000.0" ] }, "metadata": {}, "execution_count": 129 } ] }, { "cell_type": "code", "source": [ "df['price'].describe()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "XExt2svC1_02", "outputId": "cf147a42-b740-455b-c75f-51fc365f9a94" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "count 9.210000e+02\n", "mean 4.081383e+06\n", "std 1.286029e+06\n", "min 1.050000e+06\n", "25% 3.400000e+06\n", "50% 3.980000e+06\n", "75% 4.500000e+06\n", "max 9.750000e+06\n", "Name: price, dtype: float64" ] }, "metadata": {}, "execution_count": 128 } ] }, { "cell_type": "code", "source": [ "from sklearn.model_selection import StratifiedKFold\n", "from catboost import CatBoostRegressor, Pool" ], "metadata": { "id": "HgnofJwbrFA0" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "regression_params = dict(\n", " iterations=5000, \n", " learning_rate=0.01,\n", " verbose=100,\n", " early_stopping_rounds=500,\n", " loss_function='RMSE',\n", " eval_metric='MAE',\n", " task_type='CPU',\n", ")" ], "metadata": { "id": "GhbyXwJAsHdi" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=0xBACED)\n", "\n", "models = []\n", "preds = []\n", "data = []\n", "for fold, (train_index, val_index) in enumerate(kfold.split(df, df['price'])):\n", " df_train = df.iloc[train_index]\n", " df_val = df.iloc[val_index]\n", "\n", " X = df_train.drop(columns=['price', 'link'])\n", " y = np.log(df_train['price'].values)\n", "\n", " X_val = df_val.drop(columns=['price', 'link'])\n", " y_val = np.log(df_val['price'].values)\n", "\n", " model = CatBoostRegressor(**regression_params).fit(X, y, eval_set=(X_val, y_val))\n", " preds.append(np.exp(model.predict(X_val)))\n", " data.append(df_val)\n", "\n", " models.append(model)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "EMHyD_A0rx9v", "outputId": "bffcf7c6-b68b-4c06-bd6c-5adaa0ce9136" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.8/dist-packages/sklearn/model_selection/_split.py:676: UserWarning: The least populated class in y has only 1 members, which is less than n_splits=5.\n", " warnings.warn(\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "0:\tlearn: 0.2087847\ttest: 0.2202941\tbest: 0.2202941 (0)\ttotal: 4.76ms\tremaining: 23.8s\n", "100:\tlearn: 0.1821797\ttest: 0.2034064\tbest: 0.2034064 (100)\ttotal: 101ms\tremaining: 4.89s\n", "200:\tlearn: 0.1729615\ttest: 0.2031829\tbest: 0.2026452 (132)\ttotal: 233ms\tremaining: 5.57s\n", "300:\tlearn: 0.1675100\ttest: 0.2046471\tbest: 0.2026452 (132)\ttotal: 344ms\tremaining: 5.37s\n", "400:\tlearn: 0.1635192\ttest: 0.2059701\tbest: 0.2026452 (132)\ttotal: 441ms\tremaining: 5.05s\n", "500:\tlearn: 0.1599954\ttest: 0.2067372\tbest: 0.2026452 (132)\ttotal: 558ms\tremaining: 5.01s\n", "600:\tlearn: 0.1564030\ttest: 0.2074788\tbest: 0.2026452 (132)\ttotal: 663ms\tremaining: 4.85s\n", "Stopped by overfitting detector (500 iterations wait)\n", "\n", "bestTest = 0.2026452004\n", "bestIteration = 132\n", "\n", "Shrink model to first 133 iterations.\n", "0:\tlearn: 0.2081645\ttest: 0.2234853\tbest: 0.2234853 (0)\ttotal: 1.06ms\tremaining: 5.32s\n", "100:\tlearn: 0.1830416\ttest: 0.1983601\tbest: 0.1983601 (100)\ttotal: 89.7ms\tremaining: 4.35s\n", "200:\tlearn: 0.1764459\ttest: 0.1906699\tbest: 0.1906699 (200)\ttotal: 202ms\tremaining: 4.83s\n", "300:\tlearn: 0.1725523\ttest: 0.1887852\tbest: 0.1886834 (284)\ttotal: 307ms\tremaining: 4.79s\n", "400:\tlearn: 0.1695154\ttest: 0.1877802\tbest: 0.1877044 (384)\ttotal: 441ms\tremaining: 5.06s\n", "500:\tlearn: 0.1667373\ttest: 0.1876195\tbest: 0.1876195 (500)\ttotal: 536ms\tremaining: 4.81s\n", "600:\tlearn: 0.1635846\ttest: 0.1881362\tbest: 0.1876075 (503)\ttotal: 679ms\tremaining: 4.97s\n", "700:\tlearn: 0.1607667\ttest: 0.1877806\tbest: 0.1876075 (503)\ttotal: 771ms\tremaining: 4.73s\n", "800:\tlearn: 0.1580077\ttest: 0.1876148\tbest: 0.1875523 (794)\ttotal: 882ms\tremaining: 4.62s\n", "900:\tlearn: 0.1557013\ttest: 0.1875733\tbest: 0.1875069 (822)\ttotal: 971ms\tremaining: 4.42s\n", "1000:\tlearn: 0.1533426\ttest: 0.1880110\tbest: 0.1875069 (822)\ttotal: 1.1s\tremaining: 4.38s\n", "1100:\tlearn: 0.1513860\ttest: 0.1886087\tbest: 0.1875069 (822)\ttotal: 1.19s\tremaining: 4.21s\n", "1200:\tlearn: 0.1488173\ttest: 0.1896967\tbest: 0.1875069 (822)\ttotal: 1.3s\tremaining: 4.1s\n", "1300:\tlearn: 0.1461068\ttest: 0.1905671\tbest: 0.1875069 (822)\ttotal: 1.4s\tremaining: 3.98s\n", "Stopped by overfitting detector (500 iterations wait)\n", "\n", "bestTest = 0.1875069368\n", "bestIteration = 822\n", "\n", "Shrink model to first 823 iterations.\n", "0:\tlearn: 0.2127787\ttest: 0.2065350\tbest: 0.2065350 (0)\ttotal: 1.04ms\tremaining: 5.21s\n", "100:\tlearn: 0.1867680\ttest: 0.1874736\tbest: 0.1874736 (100)\ttotal: 112ms\tremaining: 5.41s\n", "200:\tlearn: 0.1777852\ttest: 0.1877269\tbest: 0.1866778 (123)\ttotal: 226ms\tremaining: 5.41s\n", "300:\tlearn: 0.1732305\ttest: 0.1892600\tbest: 0.1866778 (123)\ttotal: 321ms\tremaining: 5.01s\n", "400:\tlearn: 0.1700595\ttest: 0.1905574\tbest: 0.1866778 (123)\ttotal: 410ms\tremaining: 4.7s\n", "500:\tlearn: 0.1671602\ttest: 0.1912499\tbest: 0.1866778 (123)\ttotal: 501ms\tremaining: 4.5s\n", "600:\tlearn: 0.1643526\ttest: 0.1915617\tbest: 0.1866778 (123)\ttotal: 601ms\tremaining: 4.4s\n", "Stopped by overfitting detector (500 iterations wait)\n", "\n", "bestTest = 0.1866777773\n", "bestIteration = 123\n", "\n", "Shrink model to first 124 iterations.\n", "0:\tlearn: 0.2134981\ttest: 0.2029683\tbest: 0.2029683 (0)\ttotal: 1.34ms\tremaining: 6.7s\n", "100:\tlearn: 0.1884117\ttest: 0.1792734\tbest: 0.1792734 (100)\ttotal: 105ms\tremaining: 5.08s\n", "200:\tlearn: 0.1802974\ttest: 0.1747837\tbest: 0.1747608 (188)\ttotal: 219ms\tremaining: 5.24s\n", "300:\tlearn: 0.1755450\ttest: 0.1743983\tbest: 0.1743297 (292)\ttotal: 320ms\tremaining: 5s\n", "400:\tlearn: 0.1714775\ttest: 0.1744935\tbest: 0.1742771 (326)\ttotal: 422ms\tremaining: 4.84s\n", "500:\tlearn: 0.1679037\ttest: 0.1749257\tbest: 0.1742771 (326)\ttotal: 516ms\tremaining: 4.63s\n", "600:\tlearn: 0.1644564\ttest: 0.1756507\tbest: 0.1742771 (326)\ttotal: 627ms\tremaining: 4.59s\n", "700:\tlearn: 0.1610518\ttest: 0.1765478\tbest: 0.1742771 (326)\ttotal: 738ms\tremaining: 4.52s\n", "800:\tlearn: 0.1582828\ttest: 0.1772818\tbest: 0.1742771 (326)\ttotal: 839ms\tremaining: 4.4s\n", "Stopped by overfitting detector (500 iterations wait)\n", "\n", "bestTest = 0.1742771224\n", "bestIteration = 326\n", "\n", "Shrink model to first 327 iterations.\n", "0:\tlearn: 0.2131309\ttest: 0.2034499\tbest: 0.2034499 (0)\ttotal: 1.07ms\tremaining: 5.35s\n", "100:\tlearn: 0.1831531\ttest: 0.1942513\tbest: 0.1940467 (92)\ttotal: 89.5ms\tremaining: 4.34s\n", "200:\tlearn: 0.1743874\ttest: 0.1960204\tbest: 0.1939128 (119)\ttotal: 221ms\tremaining: 5.27s\n", "300:\tlearn: 0.1696565\ttest: 0.1983809\tbest: 0.1939128 (119)\ttotal: 319ms\tremaining: 4.98s\n", "400:\tlearn: 0.1659821\ttest: 0.1998092\tbest: 0.1939128 (119)\ttotal: 418ms\tremaining: 4.79s\n", "500:\tlearn: 0.1626480\ttest: 0.2014341\tbest: 0.1939128 (119)\ttotal: 514ms\tremaining: 4.62s\n", "600:\tlearn: 0.1593397\ttest: 0.2024361\tbest: 0.1939128 (119)\ttotal: 601ms\tremaining: 4.4s\n", "Stopped by overfitting detector (500 iterations wait)\n", "\n", "bestTest = 0.1939127814\n", "bestIteration = 119\n", "\n", "Shrink model to first 120 iterations.\n" ] } ] }, { "cell_type": "code", "source": [ "import pickle \n", "\n", "with open('models_vtorichka.pkl', 'wb') as f:\n", " pickle.dump(models, f)" ], "metadata": { "id": "LuUXVv6wsto7" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "import uuid" ], "metadata": { "id": "88sjMEUnvS16" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "df['id'] = [str(uuid.uuid4()) for i in range(df.shape[0])]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "V8PatXqMv12q", "outputId": "23782a79-969e-4607-9f18-46b86e8d0d01" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ ":1: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['id'] = [str(uuid.uuid4()) for i in range(df.shape[0])]\n" ] } ] }, { "cell_type": "code", "source": [ "full_data = pd.concat(data)" ], "metadata": { "id": "G81m40Zev9Jj" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "full_data['pred_price'] = np.concatenate(np.array(preds))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "-xH6NW7rwDRg", "outputId": "42bdd58d-730d-49e8-c958-ed86a0a714f1" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ ":1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", " full_data['pred_price'] = np.concatenate(np.array(preds))\n" ] } ] }, { "cell_type": "code", "source": [ "full_data['diff'] = (full_data['pred_price']-full_data['price'])/(full_data['price']*100)*10000" ], "metadata": { "id": "8Q15MWTjxbVA" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "sns.distplot(full_data['diff'])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 351 }, "id": "AhY2fdDaxklU", "outputId": "c4343704-b7b6-4e19-ac7f-0c044be76a6e" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.8/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", " warnings.warn(msg, FutureWarning)\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 106 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "full_data = full_data[(full_data['diff'] > -40) & (full_data['diff'] < 40)]" ], "metadata": { "id": "LVqw0yno1otY" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "sns.distplot(full_data['diff'])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 351 }, "id": "YeVaBMq913Xg", "outputId": "c6c89ee9-0b4f-4bf4-86f7-52f2940411dc" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.8/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", " warnings.warn(msg, FutureWarning)\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 108 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "from sklearn.metrics import mean_absolute_percentage_error\n", "1-mean_absolute_percentage_error(full_data['price'], full_data['pred_price'])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Eo2R38Mo14Rk", "outputId": "3bfa5396-5357-4d10-96c4-31df7e9cd2cc" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.8755430954272614" ] }, "metadata": {}, "execution_count": 110 } ] }, { "cell_type": "code", "source": [ "marker = []\n", "for diff in full_data['diff']:\n", " if diff >= 3:\n", " marker.append('overpriced')\n", " elif diff <= -3:\n", " marker.append('underpriced')\n", " else:\n", " marker.append('riskey')" ], "metadata": { "id": "iuDeTnh72Bpi" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "full_data['marker'] = marker" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "nuCT6GnB22If", "outputId": "6097b72e-dcaa-4eac-c497-d8f6c3d8645c" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ ":1: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " full_data['marker'] = marker\n" ] } ] }, { "cell_type": "code", "source": [ "full_data = full_data[~full_data['marker'].isin(['riskey'])]" ], "metadata": { "id": "i97F-t_Q28x7" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "full_data.to_csv('vtorichka_final.csv', index=False)" ], "metadata": { "id": "ad4O7c_929iE" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "full_data" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 487 }, "id": "qNGLilGP3Eoq", "outputId": "c8887e92-129b-4374-dfd5-c694eb0179b7" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " link floor rooms_count \\\n", "1 https://krasnodar.cian.ru/sale/flat/279661943/ 20 1 \n", "20 https://krasnodar.cian.ru/sale/flat/283765339/ 5 1 \n", "58 https://krasnodar.cian.ru/sale/flat/280008092/ 10 2 \n", "72 https://krasnodar.cian.ru/sale/flat/283282828/ 6 2 \n", "73 https://krasnodar.cian.ru/sale/flat/283383338/ 6 1 \n", ".. ... ... ... \n", "104 https://krasnodar.cian.ru/sale/flat/277400873/ 5 2 \n", "106 https://krasnodar.cian.ru/sale/flat/279004402/ 3 1 \n", "112 https://krasnodar.cian.ru/sale/flat/280209896/ 15 1 \n", "118 https://krasnodar.cian.ru/sale/flat/273790417/ 2 1 \n", "130 https://krasnodar.cian.ru/sale/flat/257283764/ 4 2 \n", "\n", " total_meters price year_of_construction living_meters \\\n", "1 43.0 4950000 2021 18.2 \n", "20 40.0 4100000 2006 22.9 \n", "58 61.2 7150000 2017 11.5 \n", "72 63.4 4530000 2010 31.5 \n", "73 41.5 3500000 2017 19.7 \n", ".. ... ... ... ... \n", "104 50.0 4900000 1965 28.0 \n", "106 39.1 4900000 2017 18.0 \n", "112 40.5 4900000 2018 16.0 \n", "118 41.7 4900000 2012 22.0 \n", "130 60.0 5800000 2014 34.0 \n", "\n", " kitchen_meters pred_price diff marker \n", "1 14.8 4.283516e+06 -13.464333 underpriced \n", "20 9.7 3.961314e+06 -3.382591 underpriced \n", "58 11.2 4.384590e+06 -38.677063 underpriced \n", "72 16.8 4.974593e+06 9.814404 overpriced \n", "73 10.8 4.035056e+06 15.287324 overpriced \n", ".. ... ... ... ... \n", "104 -1.0 4.098767e+06 -16.351694 underpriced \n", "106 10.0 3.849727e+06 -21.434151 underpriced \n", "112 13.0 4.065052e+06 -17.039765 underpriced \n", "118 10.0 3.836344e+06 -21.707273 underpriced \n", "130 10.0 4.615458e+06 -20.423139 underpriced \n", "\n", "[682 rows x 11 columns]" ], "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
linkfloorrooms_counttotal_meterspriceyear_of_constructionliving_meterskitchen_meterspred_pricediffmarker
1https://krasnodar.cian.ru/sale/flat/279661943/20143.04950000202118.214.84.283516e+06-13.464333underpriced
20https://krasnodar.cian.ru/sale/flat/283765339/5140.04100000200622.99.73.961314e+06-3.382591underpriced
58https://krasnodar.cian.ru/sale/flat/280008092/10261.27150000201711.511.24.384590e+06-38.677063underpriced
72https://krasnodar.cian.ru/sale/flat/283282828/6263.44530000201031.516.84.974593e+069.814404overpriced
73https://krasnodar.cian.ru/sale/flat/283383338/6141.53500000201719.710.84.035056e+0615.287324overpriced
....................................
104https://krasnodar.cian.ru/sale/flat/277400873/5250.04900000196528.0-1.04.098767e+06-16.351694underpriced
106https://krasnodar.cian.ru/sale/flat/279004402/3139.14900000201718.010.03.849727e+06-21.434151underpriced
112https://krasnodar.cian.ru/sale/flat/280209896/15140.54900000201816.013.04.065052e+06-17.039765underpriced
118https://krasnodar.cian.ru/sale/flat/273790417/2141.74900000201222.010.03.836344e+06-21.707273underpriced
130https://krasnodar.cian.ru/sale/flat/257283764/4260.05800000201434.010.04.615458e+06-20.423139underpriced
\n", "

682 rows × 11 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 119 } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "b3tUDuIN3iFr" }, "execution_count": null, "outputs": [] } ] }