645 lines
153 KiB
Plaintext
645 lines
153 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Выбранные темы: цены на кофе, магазины, оценки студентов\n",
|
||
"Далее идут выбранные таблицы"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 55,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.preprocessing import LabelEncoder\n",
|
||
"from imblearn.over_sampling import RandomOverSampler\n",
|
||
"from imblearn.under_sampling import RandomUnderSampler\n",
|
||
"\n",
|
||
"label_encoder = LabelEncoder()\n",
|
||
"\n",
|
||
"# Функция для применения oversampling\n",
|
||
"def apply_oversampling(X, y):\n",
|
||
" oversampler = RandomOverSampler(random_state=42)\n",
|
||
" X_resampled, y_resampled = oversampler.fit_resample(X, y)\n",
|
||
" return X_resampled, y_resampled\n",
|
||
"\n",
|
||
"# Функция для применения undersampling\n",
|
||
"def apply_undersampling(X, y):\n",
|
||
" undersampler = RandomUnderSampler(random_state=42)\n",
|
||
" X_resampled, y_resampled = undersampler.fit_resample(X, y)\n",
|
||
" return X_resampled, y_resampled\n",
|
||
"\n",
|
||
"def split_stratified_into_train_val_test(\n",
|
||
" df_input,\n",
|
||
" stratify_colname=\"y\",\n",
|
||
" frac_train=0.6,\n",
|
||
" frac_val=0.15,\n",
|
||
" frac_test=0.25,\n",
|
||
" random_state=None,\n",
|
||
"):\n",
|
||
" \"\"\"\n",
|
||
" Splits a Pandas dataframe into three subsets (train, val, and test)\n",
|
||
" following fractional ratios provided by the user, where each subset is\n",
|
||
" stratified by the values in a specific column (that is, each subset has\n",
|
||
" the same relative frequency of the values in the column). It performs this\n",
|
||
" splitting by running train_test_split() twice.\n",
|
||
"\n",
|
||
" Parameters\n",
|
||
" ----------\n",
|
||
" df_input : Pandas dataframe\n",
|
||
" Input dataframe to be split.\n",
|
||
" stratify_colname : str\n",
|
||
" The name of the column that will be used for stratification. Usually\n",
|
||
" this column would be for the label.\n",
|
||
" frac_train : float\n",
|
||
" frac_val : float\n",
|
||
" frac_test : float\n",
|
||
" The ratios with which the dataframe will be split into train, val, and\n",
|
||
" test data. The values should be expressed as float fractions and should\n",
|
||
" sum to 1.0.\n",
|
||
" random_state : int, None, or RandomStateInstance\n",
|
||
" Value to be passed to train_test_split().\n",
|
||
"\n",
|
||
" Returns\n",
|
||
" -------\n",
|
||
" df_train, df_val, df_test :\n",
|
||
" Dataframes containing the three splits.\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" if frac_train + frac_val + frac_test != 1.0:\n",
|
||
" raise ValueError(\n",
|
||
" \"fractions %f, %f, %f do not add up to 1.0\"\n",
|
||
" % (frac_train, frac_val, frac_test)\n",
|
||
" )\n",
|
||
"\n",
|
||
" if stratify_colname not in df_input.columns:\n",
|
||
" raise ValueError(\"%s is not a column in the dataframe\" % (stratify_colname))\n",
|
||
"\n",
|
||
" X = df_input # Contains all columns.\n",
|
||
" y = df_input[\n",
|
||
" [stratify_colname]\n",
|
||
" ] # Dataframe of just the column on which to stratify.\n",
|
||
"\n",
|
||
" # Split original dataframe into train and temp dataframes.\n",
|
||
" df_train, df_temp, y_train, y_temp = train_test_split(\n",
|
||
" X, y, stratify=y, test_size=(1.0 - frac_train), random_state=random_state\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Split the temp dataframe into val and test dataframes.\n",
|
||
" relative_frac_test = frac_test / (frac_val + frac_test)\n",
|
||
" df_val, df_test, y_val, y_test = train_test_split(\n",
|
||
" df_temp,\n",
|
||
" y_temp,\n",
|
||
" stratify=y_temp,\n",
|
||
" test_size=relative_frac_test,\n",
|
||
" random_state=random_state,\n",
|
||
" )\n",
|
||
"\n",
|
||
" assert len(df_input) == len(df_train) + len(df_val) + len(df_test)\n",
|
||
"\n",
|
||
" return df_train, df_val, df_test"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Отслеживание цен на акции Старбакс. Объекты связаны между собой датой, т.е. каждая следующая строка это новый день. Можно узнать как, относительно изменения цен на акции, идут продажи акций. Поможет для трейдинговых компаний. Целевым признаком является количество покупающих."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"<class 'pandas.core.frame.DataFrame'>\n",
|
||
"RangeIndex: 8036 entries, 0 to 8035\n",
|
||
"Data columns (total 7 columns):\n",
|
||
" # Column Non-Null Count Dtype \n",
|
||
"--- ------ -------------- ----- \n",
|
||
" 0 Date 8036 non-null object \n",
|
||
" 1 Open 8036 non-null float64\n",
|
||
" 2 High 8036 non-null float64\n",
|
||
" 3 Low 8036 non-null float64\n",
|
||
" 4 Close 8036 non-null float64\n",
|
||
" 5 Adj Close 8036 non-null float64\n",
|
||
" 6 Volume 8036 non-null int64 \n",
|
||
"dtypes: float64(5), int64(1), object(1)\n",
|
||
"memory usage: 439.6+ KB\n",
|
||
"Date 0\n",
|
||
"Open 0\n",
|
||
"High 0\n",
|
||
"Low 0\n",
|
||
"Close 0\n",
|
||
"Adj Close 0\n",
|
||
"Volume 0\n",
|
||
"dtype: int64\n",
|
||
" Open High Low Close Adj Close \\\n",
|
||
"count 8036.000000 8036.000000 8036.000000 8036.000000 8036.000000 \n",
|
||
"mean 30.054280 30.351487 29.751322 30.058857 26.674025 \n",
|
||
"std 33.615577 33.906613 33.314569 33.615911 31.728090 \n",
|
||
"min 0.328125 0.347656 0.320313 0.335938 0.260703 \n",
|
||
"25% 4.392031 4.531250 4.304922 4.399610 3.414300 \n",
|
||
"50% 13.325000 13.493750 13.150000 13.330000 10.352452 \n",
|
||
"75% 55.250000 55.722501 54.852499 55.267499 47.464829 \n",
|
||
"max 126.080002 126.320000 124.809998 126.059998 118.010414 \n",
|
||
"\n",
|
||
" Volume \n",
|
||
"count 8.036000e+03 \n",
|
||
"mean 1.470459e+07 \n",
|
||
"std 1.340021e+07 \n",
|
||
"min 1.504000e+06 \n",
|
||
"25% 7.817750e+06 \n",
|
||
"50% 1.169815e+07 \n",
|
||
"75% 1.778795e+07 \n",
|
||
"max 5.855088e+08 \n",
|
||
"\n",
|
||
"[1]\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"df1 = pd.read_csv(\"../data/coffee.csv\")\n",
|
||
"df1.info()\n",
|
||
"print(df1.isnull().sum())\n",
|
||
"print(df1.describe())\n",
|
||
"print()\n",
|
||
"print(df1[\"Date\"].value_counts().unique())\n",
|
||
"print()\n",
|
||
"plt.plot(df1[\"Date\"], df1[\"High\"])\n",
|
||
"plt.show()\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Данные по всем параметрам являются правильными, без шумов, без выбросов, актуальными."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Магазины. Каждая строка представляет собой магазин, его площадь, количество продуктов, количество покупателей и объем продаж. Позволяет увидеть изменения количества продаж относительно размеров магазина и количества покупателей. Ключевой признак - количество продаж"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"<class 'pandas.core.frame.DataFrame'>\n",
|
||
"RangeIndex: 896 entries, 0 to 895\n",
|
||
"Data columns (total 5 columns):\n",
|
||
" # Column Non-Null Count Dtype\n",
|
||
"--- ------ -------------- -----\n",
|
||
" 0 Store ID 896 non-null int64\n",
|
||
" 1 Store_Area 896 non-null int64\n",
|
||
" 2 Items_Available 896 non-null int64\n",
|
||
" 3 Daily_Customer_Count 896 non-null int64\n",
|
||
" 4 Store_Sales 896 non-null int64\n",
|
||
"dtypes: int64(5)\n",
|
||
"memory usage: 35.1 KB\n",
|
||
"Store ID 0\n",
|
||
"Store_Area 0\n",
|
||
"Items_Available 0\n",
|
||
"Daily_Customer_Count 0\n",
|
||
"Store_Sales 0\n",
|
||
"dtype: int64\n",
|
||
" Store ID Store_Area Items_Available Daily_Customer_Count \\\n",
|
||
"count 896.000000 896.000000 896.000000 896.000000 \n",
|
||
"mean 448.500000 1485.409598 1782.035714 786.350446 \n",
|
||
"std 258.797218 250.237011 299.872053 265.389281 \n",
|
||
"min 1.000000 775.000000 932.000000 10.000000 \n",
|
||
"25% 224.750000 1316.750000 1575.500000 600.000000 \n",
|
||
"50% 448.500000 1477.000000 1773.500000 780.000000 \n",
|
||
"75% 672.250000 1653.500000 1982.750000 970.000000 \n",
|
||
"max 896.000000 2229.000000 2667.000000 1560.000000 \n",
|
||
"\n",
|
||
" Store_Sales \n",
|
||
"count 896.000000 \n",
|
||
"mean 59351.305804 \n",
|
||
"std 17190.741895 \n",
|
||
"min 14920.000000 \n",
|
||
"25% 46530.000000 \n",
|
||
"50% 58605.000000 \n",
|
||
"75% 71872.500000 \n",
|
||
"max 116320.000000 \n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"df2 = pd.read_csv(\"../data/store.csv\")\n",
|
||
"df2.info()\n",
|
||
"print(df2.isnull().sum())\n",
|
||
"print(df2.describe())\n",
|
||
"print()\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"plt.scatter(df2[\"Store_Sales\"], df2[\"Daily_Customer_Count\"])\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Данные имеют некоторое количество выбросов, что видно на графике."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Оценки студентов. Показывает оценки конкретного студента. Аналитика относительно гендера, расы, уровня образования родителей. Поможет для онлайн-школ для опредения контенгента покупателей курсов. Ключевыми значениями являются оценки по предметам."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"<class 'pandas.core.frame.DataFrame'>\n",
|
||
"RangeIndex: 1000 entries, 0 to 999\n",
|
||
"Data columns (total 8 columns):\n",
|
||
" # Column Non-Null Count Dtype \n",
|
||
"--- ------ -------------- ----- \n",
|
||
" 0 gender 1000 non-null object\n",
|
||
" 1 race/ethnicity 1000 non-null object\n",
|
||
" 2 parental level of education 1000 non-null object\n",
|
||
" 3 lunch 1000 non-null object\n",
|
||
" 4 test preparation course 1000 non-null object\n",
|
||
" 5 math score 1000 non-null int64 \n",
|
||
" 6 reading score 1000 non-null int64 \n",
|
||
" 7 writing score 1000 non-null int64 \n",
|
||
"dtypes: int64(3), object(5)\n",
|
||
"memory usage: 62.6+ KB\n",
|
||
" gender race/ethnicity parental level of education lunch \\\n",
|
||
"0 female group B bachelor's degree standard \n",
|
||
"1 female group C some college standard \n",
|
||
"2 female group B master's degree standard \n",
|
||
"3 male group A associate's degree free/reduced \n",
|
||
"4 male group C some college standard \n",
|
||
"\n",
|
||
" test preparation course math score reading score writing score score \n",
|
||
"0 none 72 72 74 72.666667 \n",
|
||
"1 completed 69 90 88 82.333333 \n",
|
||
"2 none 90 95 93 92.666667 \n",
|
||
"3 none 47 57 44 49.333333 \n",
|
||
"4 none 76 78 75 76.333333 \n",
|
||
"gender 0\n",
|
||
"race/ethnicity 0\n",
|
||
"parental level of education 0\n",
|
||
"lunch 0\n",
|
||
"test preparation course 0\n",
|
||
"math score 0\n",
|
||
"reading score 0\n",
|
||
"writing score 0\n",
|
||
"score 0\n",
|
||
"dtype: int64\n",
|
||
" math score reading score writing score score\n",
|
||
"count 1000.00000 1000.000000 1000.000000 1000.000000\n",
|
||
"mean 66.08900 69.169000 68.054000 67.770667\n",
|
||
"std 15.16308 14.600192 15.195657 14.257326\n",
|
||
"min 0.00000 17.000000 10.000000 9.000000\n",
|
||
"25% 57.00000 59.000000 57.750000 58.333333\n",
|
||
"50% 66.00000 70.000000 69.000000 68.333333\n",
|
||
"75% 77.00000 79.000000 79.000000 77.666667\n",
|
||
"max 100.00000 100.000000 100.000000 100.000000\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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XbHMd8GYnc7YV61T2xnI8P+uO+mGmAaVOzWGQKuH4z6MRp26zcMaoY26BFk9cHfhB86pVbWk5NfH082l287VfDzd6i90nunR3t/wNwdQ85xV2/xmMlXeW/Nkrpyr6nIm81hL/txz6Q9m/P392bBhAy+//DK5ublERkYye/Zsrr/+egDGjh1LTk4Ojz32GJmZmcTExLBs2TI6d+58Ru2OGjUKq9XKSy+9xOOPP46Pjw/du3dn/PjxLuhVJX9/fz7//HP+8pe/0LNnT7p3787kyZO58847a/whjFF+fn68+OKLHDhwADc3N3r37s3y5csxmyvz+k8++YQJEyZwxx13UFBQwIUXXsgLL7xguP76trnVauXLL79k3Lhx9O7dG6vVyq233urSxPtMDekWzuCYsBZ7p/2zzaQbYnjsui5n/ISZ+sbFFWN2OmN/8jp1PWHGqVwdT5ipLQZw3RNmDLWhJ8zoCTN6wgxQ9xNmapvf6nrCTGN/vpzpPNYSP/fO25uEu8KSJUu49957ycnJMXR94vmgMZ4wIyIiIo2rIZ/f5+2zrU/H4sWL6dSpE+3atWP37t08+eST3H777UocRURE5Lyh5LEBMjIymDx5MhkZGYSHh3PbbbcxY8aM5g5LREREpMnoa2txKX1tLSIicvZp1mdbi4iIiMi5S8mjiIiIiBim5FFEREREDFPyKCIiIiKGKXkUEREREcOUPIqIiIiIYUoeRURERMQwJY8iIiIiYpiSRxERERExTMmjiIiIiBim5FFEREREDFPyKCIiIiKGKXkUEREREcOUPIqIiIiIYUoeRURERMQwJY8iIiIiYpiSRxERERExTMmjiIiIiBim5FFEREREDFPyKCIiIiKGKXkUEREREcOUPIqIiIiIYUoeRURERMQwJY8iIiIiYpiSRxERERExTMmjiIiIiBim5FFEREREDFPyKCIiIiKGKXkUEREREcOUPIqIiIiIYUoeRURERMQwJY8iIiIiYpiSRxERERExTMmjiIiIiBim5FFEREREDFPyKCIiIiKGKXkUEREREcOUPIqIiIiIYUoeRURERMQwJY8iIiIiYpiSRxERERExTMmjiIiIiBim5FFEREREDFPyKCIiIiKGKXkUEREREcOUPIqIiIiIYUoeRURERMQwJY8iIiIiYpiSRxERERExTMmjiIiIiBim5FFEREREDFPy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x8OjciNfdNFFrFq1iqeeeoo+ffrg7e3N5Zdfzh133FEt1tatW7Nw4UKeeuop5s6dS2xsLLNmzeLGG290lGnXrh3x8fFMnDiRe++9l3vuuYeFCxcybdo0WrduTUJCAocOHSIwMJDY2FieeuqpGrdLRUUFDz/8MD/99BP+/v4MGTKEv//977VuxwULFjBq1CgGDBhAaGgo06dP59lnn3UsN5lMLF++nKeffpp7772XY8eOERYWRv/+/QkNDQUqk8BDhw4xYcIEiouLuf322xk5ciRbt26tcwytVisbNmzgySefZNiwYeTl5dGuXTsGDhzouCHoqFGjsFqtvPTSSzz++OP4+PjQvXv3c+IG5tI8hnQLZ3BMWIt4KkJN6orviSFdDcd9cj16woyeMKMnzJx7T5gZHBPWoCfM1Da3VO3XDX3CTEuaS8+ZJ8yc7wYPHkxYWBhvv/12s8ahJ8yIiIicfRry+X3OPNv6fFJYWMj8+fOJi4vDzc2N9957z/FDJBEREZHGpOTxLFT11faMGTMoLi4mOjqaTz75hEGDBjV3aCIiInKOU/J4FvL29mbNmjXNHYaIiIichxp0k3AREREROb8peRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDD35g7gfLdw4ULGjx9PdnZ2c4ciIo2owmZna2oWmXnFtPGz0CcqGDezqUnazMgtJiu/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1Ppb0hNmdJPw88ymTZu46qqr+PHHHx2/OG8uSh5FRETOPg35/Nazrc9Cn332Gb6+vnTu3Jkff/yRcePG0a9fv2ZPHEVEROTcp+TxLJSXl8eTTz5JWloarVq1YtCgQcyePbu5wxIREZHzgL62FpfS19YiIiJnnxb7bGsRERERObspeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDAljyIiIiJimJJHERERETFMyaOIiIiIGKbkUUREREQMU/IoIiIiIoYpeRQRERERw5Q8ioiIiIhhSh5FRERExDD35g5AjBs5ciTZ2dksXboUgGuuuYaePXvy8ssvN2tc0rwqbHa2pmaRmVdMGz8LfaKCcTObmrTtjNxisvJLCPbxJCzA2ymGM43PFf0zUsepZXpGBPLuliMcySokMtjK3X074ule8/+3T133ssggdhw50aCYS8ttvL35sFN7bmaT4b6fGkNMuD+PfrCTPT/n4uEG3p7umE0m/C0e/Kl3BO2CrGCHjJwidv2UDZjoGFK9nyeP8bGcYr5Pz6GwtIJQfwuxHYII9beACX7NKWbH4Sx++DUXk8nM4JhQ7unbke2Hs/h0508UlFbQu2MQI66MorTcxt8++I4jxwsA6BERwI8ZeRzJKsIGXNYhiJm3XsLf16Sw+dBx3EzgZ/HAy93Mb3kl5BaXYTabCQvw4qIwP0yY+P6nHHKKywjx8cTibia/1EZYgBfXdmnDV8mZHPqtAA83M7dc2o67r+jI25tSWbLtKEWlZXh5uNEh2IeyChudw3zp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nTvJzc0lMjKSRx55xPErZZvNxrRp00hMTCQzM5OYmBheeOEFhgwZAlTeqicqKorvvvuOnj17ArB+/XquvfZaTpw44biNzcKFCxk/fjzZ2dmOtt99911eeuklkpKS8PHxoXv37owfP77adYVVbDYbCQkJJCYm8ssvvxAeHs5DDz3EpEmTgMrrFseNG8fmzZuxWq3ceuutzJkzx/G1c333eSwrK2P69OksXryYn3/+mVatWnHFFVcQHx/vuH4zMTGR+Ph4srKyiIuLo1evXrz22mukp6c74vzyyy957rnn+O677/Dw8KBLly6MGjXK6frO2ug+j01PT5hxTR16woyeMKMnzOgJM+fzE2Z0k3AxbPTo0fzwww9s3LjRJfUpeRQRETn7NOTz+6z/wYw0zKxZsxg8eDA+Pj6sWLGCRYsW1XtzcxEREZEqSh7PM1u3buXFF18kLy+PTp06MXfuXEaNGtXcYYmIiMhZQsnjeebDDz9s7hBERETkLHbW/9paRERERJqOkkcRERERMUzJo4iIiIgYpuRRRERERAxT8igiIiIihil5FBERERHDlDyKiIiIiGFKHkVERETEMCWPIiIiImKYkkcRERERMUzJo4iIiIgYpuRRRERERAxT8igiIiIihil5FBERERHDlDyKiIiIiGFKHkVERETEMCWPIiIiImKYkkcRERERMUzJo4iIiIgYpuRRRERERAxT8igiIiIihil5FBERERHDlDyKiIiIiGFKHkVERETEMCWPIiIiImKYkkcRERERMUzJo4iIiIgYpuRRRERERAxT8igiIiIihil5FBERERHDlDyKiIiIiGFKHkVERETEMCWPIiIiImKYkkcRERERMUzJo4iIiIgYpuRRRERERAxT8igiIiIihil5FBERERHDlDyKiIiIiGFKHkVERETEMCWPIiIiImKYkkcRERERMUzJo4iIiIgYpuRRRERERAxT8igiIiIihil5FBERERHDlDyKiIiIiGFKHkVERETEMCWPIiIiImKYkkcRERERMUzJo4iIiIgYpuRRRERERAxzP9MKrrnmGnr27MnLL7/sgnBqNnLkSLKzs1m6dOlp17Fw4ULGjx9Pdna2y+JylY4dOzJ+/HjGjx/f3KGInDcqbHa2pmaRmVdMKx8vbHY7W1KzADt9O7XiigtCcDObmjyu0nIbb28+zJGsQiKDrdzd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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"df3 = pd.read_csv(\"../data/student.csv\")\n",
|
||
"df3.info()\n",
|
||
"df3[\"score\"] = (df3[\"math score\"] + df3[\"reading score\"] + df3[\"writing score\"]) / 3\n",
|
||
"print(df3.head())\n",
|
||
"print(df3.isnull().sum())\n",
|
||
"print(df3.describe())\n",
|
||
"print()\n",
|
||
"plt.scatter(df3[\"score\"], df3[\"parental level of education\"])\n",
|
||
"plt.show()\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Для всех выбранных тем отсутствуют пустые ячейки. Заполнение пустых ячеек не требуется. Данные вполне реальные."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Разбиение наборов на выборки."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Акции старбакс."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 63,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Обучающая выборка: (4821, 4)\n",
|
||
"Volume_Grouped\n",
|
||
" 0 2802\n",
|
||
" 1 1460\n",
|
||
" 2 369\n",
|
||
" 3 111\n",
|
||
" 4 40\n",
|
||
" 5 18\n",
|
||
"-1 10\n",
|
||
" 6 7\n",
|
||
" 7 4\n",
|
||
"Name: count, dtype: int64\n"
|
||
]
|
||
},
|
||
{
|
||
"ename": "RuntimeError",
|
||
"evalue": "Not any neigbours belong to the majority class. This case will induce a NaN case with a division by zero. ADASYN is not suited for this specific dataset. Use SMOTE instead.",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
|
||
"Cell \u001b[1;32mIn[63], line 18\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mОбучающая выборка: \u001b[39m\u001b[38;5;124m\"\u001b[39m, df_coffee_train\u001b[38;5;241m.\u001b[39mshape)\n\u001b[0;32m 16\u001b[0m \u001b[38;5;28mprint\u001b[39m(df_coffee_train[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mVolume_Grouped\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mvalue_counts())\n\u001b[1;32m---> 18\u001b[0m X_resampled, y_resampled \u001b[38;5;241m=\u001b[39m \u001b[43mada\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit_resample\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf_coffee_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdf_coffee_train\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mVolume_Grouped\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 19\u001b[0m df_coffee_train_adasyn \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mDataFrame(X_resampled)\n\u001b[0;32m 21\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mОбучающая выборка после oversampling: \u001b[39m\u001b[38;5;124m\"\u001b[39m, df_coffee_train_adasyn\u001b[38;5;241m.\u001b[39mshape)\n",
|
||
"File \u001b[1;32mc:\\Users\\89176\\sourse\\MII\\Labas\\AIM-PIbd-31-Kozyrev-S-S\\aimvenv\\Lib\\site-packages\\imblearn\\base.py:208\u001b[0m, in \u001b[0;36mBaseSampler.fit_resample\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 187\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Resample the dataset.\u001b[39;00m\n\u001b[0;32m 188\u001b[0m \n\u001b[0;32m 189\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 205\u001b[0m \u001b[38;5;124;03m The corresponding label of `X_resampled`.\u001b[39;00m\n\u001b[0;32m 206\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 207\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_params()\n\u001b[1;32m--> 208\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit_resample\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\n",
|
||
"File \u001b[1;32mc:\\Users\\89176\\sourse\\MII\\Labas\\AIM-PIbd-31-Kozyrev-S-S\\aimvenv\\Lib\\site-packages\\imblearn\\base.py:112\u001b[0m, in \u001b[0;36mSamplerMixin.fit_resample\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 106\u001b[0m X, y, binarize_y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_X_y(X, y)\n\u001b[0;32m 108\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msampling_strategy_ \u001b[38;5;241m=\u001b[39m check_sampling_strategy(\n\u001b[0;32m 109\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msampling_strategy, y, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sampling_type\n\u001b[0;32m 110\u001b[0m )\n\u001b[1;32m--> 112\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_fit_resample\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 114\u001b[0m y_ \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 115\u001b[0m label_binarize(output[\u001b[38;5;241m1\u001b[39m], classes\u001b[38;5;241m=\u001b[39mnp\u001b[38;5;241m.\u001b[39munique(y)) \u001b[38;5;28;01mif\u001b[39;00m binarize_y \u001b[38;5;28;01melse\u001b[39;00m output[\u001b[38;5;241m1\u001b[39m]\n\u001b[0;32m 116\u001b[0m )\n\u001b[0;32m 118\u001b[0m X_, y_ \u001b[38;5;241m=\u001b[39m arrays_transformer\u001b[38;5;241m.\u001b[39mtransform(output[\u001b[38;5;241m0\u001b[39m], y_)\n",
|
||
"File \u001b[1;32mc:\\Users\\89176\\sourse\\MII\\Labas\\AIM-PIbd-31-Kozyrev-S-S\\aimvenv\\Lib\\site-packages\\imblearn\\over_sampling\\_adasyn.py:183\u001b[0m, in \u001b[0;36mADASYN._fit_resample\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 181\u001b[0m ratio_nn \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39msum(y[nns] \u001b[38;5;241m!=\u001b[39m class_sample, axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m/\u001b[39m n_neighbors\n\u001b[0;32m 182\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m np\u001b[38;5;241m.\u001b[39msum(ratio_nn):\n\u001b[1;32m--> 183\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[0;32m 184\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNot any neigbours belong to the majority\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 185\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m class. This case will induce a NaN case\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m with a division by zero. ADASYN is not\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 187\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m suited for this specific dataset.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 188\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m Use SMOTE instead.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 189\u001b[0m )\n\u001b[0;32m 190\u001b[0m ratio_nn \u001b[38;5;241m/\u001b[39m\u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39msum(ratio_nn)\n\u001b[0;32m 191\u001b[0m n_samples_generate \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mrint(ratio_nn \u001b[38;5;241m*\u001b[39m n_samples)\u001b[38;5;241m.\u001b[39mastype(\u001b[38;5;28mint\u001b[39m)\n",
|
||
"\u001b[1;31mRuntimeError\u001b[0m: Not any neigbours belong to the majority class. This case will induce a NaN case with a division by zero. ADASYN is not suited for this specific dataset. Use SMOTE instead."
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"data = df1[[\"Volume\", \"High\", \"Low\"]].copy()\n",
|
||
"data[\"Volume_Grouped\"] = pd.cut(data[\"Volume\"], bins=50, labels=False)\n",
|
||
"\n",
|
||
"interval_counts = data[\"Volume_Grouped\"].value_counts().sort_index()\n",
|
||
"\n",
|
||
"min_samples_per_interval = 5\n",
|
||
"for interval, count in interval_counts.items():\n",
|
||
" if count < min_samples_per_interval:\n",
|
||
" data.loc[data[\"Volume_Grouped\"] == interval, \"Volume_Grouped\"] = -1\n",
|
||
"\n",
|
||
"\n",
|
||
"df_coffee_train, df_coffee_val, df_coffee_test = split_stratified_into_train_val_test(\n",
|
||
" data, stratify_colname=\"Volume_Grouped\", frac_train=0.60, frac_val=0.20, frac_test=0.20)\n",
|
||
"\n",
|
||
"print(\"Обучающая выборка: \", df_coffee_train.shape)\n",
|
||
"print(df_coffee_train[\"Volume_Grouped\"].value_counts())\n",
|
||
"\n",
|
||
"X_resampled, y_resampled = ada.fit_resample(df_coffee_train, df_coffee_train[\"Volume_Grouped\"])\n",
|
||
"df_coffee_train_adasyn = pd.DataFrame(X_resampled)\n",
|
||
"\n",
|
||
"print(\"Обучающая выборка после oversampling: \", df_coffee_train_adasyn.shape)\n",
|
||
"print(df_coffee_train_adasyn.Pclass.value_counts())\n",
|
||
"\n",
|
||
"print(\"Контрольная выборка: \", df_coffee_val.shape)\n",
|
||
"print(df_coffee_val[\"Volume_Grouped\"].value_counts())\n",
|
||
"\n",
|
||
"print(\"Тестовая выборка: \", df_coffee_test.shape)\n",
|
||
"print(df_coffee_test[\"Volume_Grouped\"].value_counts())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Магазины"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 46,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Обучающая выборка: (537, 4)\n",
|
||
"Sales_Grouped\n",
|
||
" 2 184\n",
|
||
" 3 148\n",
|
||
" 1 135\n",
|
||
" 4 45\n",
|
||
" 0 20\n",
|
||
"-1 5\n",
|
||
"Name: count, dtype: int64\n",
|
||
"Контрольная выборка: (179, 4)\n",
|
||
"Sales_Grouped\n",
|
||
" 2 61\n",
|
||
" 3 49\n",
|
||
" 1 45\n",
|
||
" 4 15\n",
|
||
" 0 7\n",
|
||
"-1 2\n",
|
||
"Name: count, dtype: int64\n",
|
||
"Тестовая выборка: (180, 4)\n",
|
||
"Sales_Grouped\n",
|
||
" 2 61\n",
|
||
" 3 50\n",
|
||
" 1 45\n",
|
||
" 4 15\n",
|
||
" 0 7\n",
|
||
"-1 2\n",
|
||
"Name: count, dtype: int64\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"data = df2[[\"Store_Sales\", \"Store_Area\", \"Daily_Customer_Count\"]].copy()\n",
|
||
"data[\"Sales_Grouped\"] = pd.cut(data[\"Store_Sales\"], bins=6, labels=False)\n",
|
||
"\n",
|
||
"interval_counts = data[\"Sales_Grouped\"].value_counts().sort_index()\n",
|
||
"\n",
|
||
"min_samples_per_interval = 10\n",
|
||
"for interval, count in interval_counts.items():\n",
|
||
" if count < min_samples_per_interval:\n",
|
||
" data.loc[data[\"Sales_Grouped\"] == interval, \"Sales_Grouped\"] = -1\n",
|
||
"\n",
|
||
"df_shop_train, df_shop_val, df_shop_test = split_stratified_into_train_val_test(\n",
|
||
" data, stratify_colname=\"Sales_Grouped\", frac_train=0.60, frac_val=0.20, frac_test=0.20)\n",
|
||
"\n",
|
||
"\n",
|
||
"print(\"Обучающая выборка: \", df_shop_train.shape)\n",
|
||
"print(df_shop_train[\"Sales_Grouped\"].value_counts())\n",
|
||
"\n",
|
||
"X_resampled, y_resampled = ada.fit_resample(df_mark_train, df_mark_train[\"score_grouped\"])\n",
|
||
"df_mark_train_adasyn = pd.DataFrame(X_resampled)\n",
|
||
"\n",
|
||
"print(\"Обучающая выборка после oversampling: \", df_mark_train_adasyn.shape)\n",
|
||
"print(df_mark_train_adasyn.Pclass.value_counts())\n",
|
||
"\n",
|
||
"print(\"Контрольная выборка: \", df_shop_val.shape)\n",
|
||
"print(df_shop_val[\"Sales_Grouped\"].value_counts())\n",
|
||
"\n",
|
||
"print(\"Тестовая выборка: \", df_shop_test.shape)\n",
|
||
"print(df_shop_test[\"Sales_Grouped\"].value_counts())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Оценки студентов"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 58,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Обучающая выборка: (600, 4)\n",
|
||
"score_grouped\n",
|
||
" 3 283\n",
|
||
" 2 181\n",
|
||
" 4 101\n",
|
||
" 1 31\n",
|
||
"-1 4\n",
|
||
"Name: count, dtype: int64\n"
|
||
]
|
||
},
|
||
{
|
||
"ename": "ValueError",
|
||
"evalue": "Expected n_neighbors <= n_samples_fit, but n_neighbors = 6, n_samples_fit = 4, n_samples = 4",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
|
||
"Cell \u001b[1;32mIn[58], line 23\u001b[0m\n\u001b[0;32m 20\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mОбучающая выборка: \u001b[39m\u001b[38;5;124m\"\u001b[39m, df_mark_train\u001b[38;5;241m.\u001b[39mshape)\n\u001b[0;32m 21\u001b[0m \u001b[38;5;28mprint\u001b[39m(df_mark_train[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscore_grouped\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mvalue_counts())\n\u001b[1;32m---> 23\u001b[0m X_resampled, y_resampled \u001b[38;5;241m=\u001b[39m \u001b[43mada\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit_resample\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf_mark_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdf_mark_train\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mscore_grouped\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 24\u001b[0m df_mark_train_adasyn \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mDataFrame(X_resampled)\n\u001b[0;32m 26\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mОбучающая выборка после oversampling: \u001b[39m\u001b[38;5;124m\"\u001b[39m, df_mark_train_adasyn\u001b[38;5;241m.\u001b[39mshape)\n",
|
||
"File \u001b[1;32mc:\\Users\\89176\\sourse\\MII\\Labas\\AIM-PIbd-31-Kozyrev-S-S\\aimvenv\\Lib\\site-packages\\imblearn\\base.py:208\u001b[0m, in \u001b[0;36mBaseSampler.fit_resample\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 187\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Resample the dataset.\u001b[39;00m\n\u001b[0;32m 188\u001b[0m \n\u001b[0;32m 189\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 205\u001b[0m \u001b[38;5;124;03m The corresponding label of `X_resampled`.\u001b[39;00m\n\u001b[0;32m 206\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 207\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_params()\n\u001b[1;32m--> 208\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit_resample\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\n",
|
||
"File \u001b[1;32mc:\\Users\\89176\\sourse\\MII\\Labas\\AIM-PIbd-31-Kozyrev-S-S\\aimvenv\\Lib\\site-packages\\imblearn\\base.py:112\u001b[0m, in \u001b[0;36mSamplerMixin.fit_resample\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 106\u001b[0m X, y, binarize_y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_X_y(X, y)\n\u001b[0;32m 108\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msampling_strategy_ \u001b[38;5;241m=\u001b[39m check_sampling_strategy(\n\u001b[0;32m 109\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msampling_strategy, y, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sampling_type\n\u001b[0;32m 110\u001b[0m )\n\u001b[1;32m--> 112\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_fit_resample\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 114\u001b[0m y_ \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 115\u001b[0m label_binarize(output[\u001b[38;5;241m1\u001b[39m], classes\u001b[38;5;241m=\u001b[39mnp\u001b[38;5;241m.\u001b[39munique(y)) \u001b[38;5;28;01mif\u001b[39;00m binarize_y \u001b[38;5;28;01melse\u001b[39;00m output[\u001b[38;5;241m1\u001b[39m]\n\u001b[0;32m 116\u001b[0m )\n\u001b[0;32m 118\u001b[0m X_, y_ \u001b[38;5;241m=\u001b[39m arrays_transformer\u001b[38;5;241m.\u001b[39mtransform(output[\u001b[38;5;241m0\u001b[39m], y_)\n",
|
||
"File \u001b[1;32mc:\\Users\\89176\\sourse\\MII\\Labas\\AIM-PIbd-31-Kozyrev-S-S\\aimvenv\\Lib\\site-packages\\imblearn\\over_sampling\\_adasyn.py:202\u001b[0m, in \u001b[0;36mADASYN._fit_resample\u001b[1;34m(self, X, y)\u001b[0m\n\u001b[0;32m 199\u001b[0m \u001b[38;5;66;03m# the nearest neighbors need to be fitted only on the current class\u001b[39;00m\n\u001b[0;32m 200\u001b[0m \u001b[38;5;66;03m# to find the class NN to generate new samples\u001b[39;00m\n\u001b[0;32m 201\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnn_\u001b[38;5;241m.\u001b[39mfit(X_class)\n\u001b[1;32m--> 202\u001b[0m nns \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnn_\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkneighbors\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_class\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreturn_distance\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m[:, \u001b[38;5;241m1\u001b[39m:]\n\u001b[0;32m 204\u001b[0m enumerated_class_indices \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marange(\u001b[38;5;28mlen\u001b[39m(target_class_indices))\n\u001b[0;32m 205\u001b[0m rows \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mrepeat(enumerated_class_indices, n_samples_generate)\n",
|
||
"File \u001b[1;32mc:\\Users\\89176\\sourse\\MII\\Labas\\AIM-PIbd-31-Kozyrev-S-S\\aimvenv\\Lib\\site-packages\\sklearn\\neighbors\\_base.py:834\u001b[0m, in \u001b[0;36mKNeighborsMixin.kneighbors\u001b[1;34m(self, X, n_neighbors, return_distance)\u001b[0m\n\u001b[0;32m 832\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 833\u001b[0m inequality_str \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn_neighbors <= n_samples_fit\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m--> 834\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[0;32m 835\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpected \u001b[39m\u001b[38;5;132;01m{\u001b[39;00minequality_str\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, but \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 836\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn_neighbors = \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mn_neighbors\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, n_samples_fit = \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mn_samples_fit\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 837\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn_samples = \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mX\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;66;03m# include n_samples for common tests\u001b[39;00m\n\u001b[0;32m 838\u001b[0m )\n\u001b[0;32m 840\u001b[0m n_jobs \u001b[38;5;241m=\u001b[39m effective_n_jobs(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mn_jobs)\n\u001b[0;32m 841\u001b[0m chunked_results \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
|
||
"\u001b[1;31mValueError\u001b[0m: Expected n_neighbors <= n_samples_fit, but n_neighbors = 6, n_samples_fit = 4, n_samples = 4"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"data = df3[[\"score\", \"gender\", \"race/ethnicity\"]].copy()\n",
|
||
"data[\"score_grouped\"] = pd.cut(data[\"score\"], bins=5, labels=False)\n",
|
||
"\n",
|
||
"data[\"gender\"] = label_encoder.fit_transform(data['gender'])\n",
|
||
"data[\"race/ethnicity\"] = label_encoder.fit_transform(data['race/ethnicity'])\n",
|
||
"\n",
|
||
"interval_counts = data[\"score_grouped\"].value_counts().sort_index()\n",
|
||
"\n",
|
||
"min_samples_per_interval = 10\n",
|
||
"for interval, count in interval_counts.items():\n",
|
||
" if count < min_samples_per_interval:\n",
|
||
" data.loc[data[\"score_grouped\"] == interval, \"score_grouped\"] = -1\n",
|
||
"\n",
|
||
"df_mark_train, df_mark_val, df_mark_test = split_stratified_into_train_val_test(\n",
|
||
" data, stratify_colname=\"score_grouped\", frac_train=0.60, frac_val=0.20, frac_test=0.20)\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"print(\"Обучающая выборка: \", df_mark_train.shape)\n",
|
||
"print(df_mark_train[\"score_grouped\"].value_counts())\n",
|
||
"\n",
|
||
"X_resampled, y_resampled = ada.fit_resample(df_mark_train, df_mark_train[\"score_grouped\"])\n",
|
||
"df_mark_train_adasyn = pd.DataFrame(X_resampled)\n",
|
||
"\n",
|
||
"print(\"Обучающая выборка после oversampling: \", df_mark_train_adasyn.shape)\n",
|
||
"print(df_mark_train_adasyn.Pclass.value_counts())\n",
|
||
"\n",
|
||
"print(\"Контрольная выборка: \", df_mark_val.shape)\n",
|
||
"print(df_mark_val[\"score_grouped\"].value_counts())\n",
|
||
"\n",
|
||
"print(\"Тестовая выборка: \", df_mark_test.shape)\n",
|
||
"print(df_mark_test[\"score_grouped\"].value_counts())"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "aimvenv",
|
||
"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.12.5"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|