760 lines
924 KiB
Plaintext
760 lines
924 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Определение бизнес-целей для анализа на основе набора данных **Diamonds Prices2022**\n",
|
|||
|
"\n",
|
|||
|
"- **Оптимизация ценовой стратегии**: Использование данных о характеристиках бриллиантов для создания точной стратегии ценообразования и максимизации прибыли.\n",
|
|||
|
"- **Увеличение продаж**: Анализ факторов, влияющих на цену и спрос на бриллианты, для предложения конкурентоспособных цен и улучшения продаж.\n",
|
|||
|
"\n",
|
|||
|
"### Подготовка данных"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:16:19.246584Z",
|
|||
|
"start_time": "2025-01-19T15:16:19.173846Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"\n",
|
|||
|
"# Загружаем данные\n",
|
|||
|
"data = pd.read_csv('data/Diamonds Prices2022.csv')\n",
|
|||
|
"\n",
|
|||
|
"# Преобразуем столбец 'price' в числовой формат\n",
|
|||
|
"data['price'] = pd.to_numeric(data['price'], errors='coerce')\n",
|
|||
|
"\n",
|
|||
|
"# Преобразуем 'carat' в числовой формат\n",
|
|||
|
"data['carat'] = pd.to_numeric(data['carat'], errors='coerce')\n",
|
|||
|
"\n",
|
|||
|
"# Преобразуем 'depth' в числовой формат\n",
|
|||
|
"data['depth'] = pd.to_numeric(data['depth'], errors='coerce')\n",
|
|||
|
"\n",
|
|||
|
"# Преобразуем 'table' в числовой формат\n",
|
|||
|
"data['table'] = pd.to_numeric(data['table'], errors='coerce')\n",
|
|||
|
"\n",
|
|||
|
"# Преобразуем 'x', 'y', 'z' в числовой формат\n",
|
|||
|
"data['x'] = pd.to_numeric(data['x'], errors='coerce')\n",
|
|||
|
"data['y'] = pd.to_numeric(data['y'], errors='coerce')\n",
|
|||
|
"data['z'] = pd.to_numeric(data['z'], errors='coerce')\n",
|
|||
|
"\n",
|
|||
|
"# Преобразуем 'cut', 'color', 'clarity' в категориальные данные\n",
|
|||
|
"data['cut'] = data['cut'].astype('category')\n",
|
|||
|
"data['color'] = data['color'].astype('category')\n",
|
|||
|
"data['clarity'] = data['clarity'].astype('category')\n",
|
|||
|
"\n",
|
|||
|
"# Проверяем изменённые данные\n",
|
|||
|
"print(data.head())\n",
|
|||
|
"\n",
|
|||
|
"\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x y \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 \n",
|
|||
|
"\n",
|
|||
|
" z \n",
|
|||
|
"0 2.43 \n",
|
|||
|
"1 2.31 \n",
|
|||
|
"2 2.31 \n",
|
|||
|
"3 2.63 \n",
|
|||
|
"4 2.75 \n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 1
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Выполним разбиение каждого набора данных на обучающую, контрольную и тестовую выборки для устранения проблемы просачивания данных"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:18:42.203179Z",
|
|||
|
"start_time": "2025-01-19T15:18:42.144417Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"from sklearn.model_selection import train_test_split\n",
|
|||
|
"\n",
|
|||
|
"# Загружаем данные\n",
|
|||
|
"data = pd.read_csv('data/Diamonds Prices2022.csv')\n",
|
|||
|
"\n",
|
|||
|
"# Целевая переменная для регрессии - 'price'\n",
|
|||
|
"X_regression = data.drop(columns=['price', 'carat', 'cut', 'color', 'clarity'])\n",
|
|||
|
"y_regression = data['price']\n",
|
|||
|
"\n",
|
|||
|
"# Разделяем на обучающую, валидационную и тестовую выборки\n",
|
|||
|
"X_reg_train, X_reg_temp, y_reg_train, y_reg_temp = train_test_split(\n",
|
|||
|
" X_regression, y_regression, test_size=0.3, random_state=42\n",
|
|||
|
")\n",
|
|||
|
"X_reg_val, X_reg_test, y_reg_val, y_reg_test = train_test_split(\n",
|
|||
|
" X_reg_temp, y_reg_temp, test_size=0.5, random_state=42\n",
|
|||
|
")\n",
|
|||
|
"\n",
|
|||
|
"# Проверка размеров выборок\n",
|
|||
|
"print(\"Regression datasets sizes:\")\n",
|
|||
|
"print(\"Train:\", X_reg_train.shape, \"Validation:\", X_reg_val.shape, \"Test:\", X_reg_test.shape)\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Regression datasets sizes:\n",
|
|||
|
"Train: (37760, 6) Validation: (8091, 6) Test: (8092, 6)\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 3
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Оценим"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:19:56.386547Z",
|
|||
|
"start_time": "2025-01-19T15:19:25.071603Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"\n",
|
|||
|
"# Визуализация распределения целевой переменной для регрессии\n",
|
|||
|
"plt.figure(figsize=(12, 6))\n",
|
|||
|
"plt.hist(y_reg_train, bins=50, alpha=0.6, label='Train', color='blue', edgecolor='black')\n",
|
|||
|
"plt.hist(y_reg_val, bins=50, alpha=0.6, label='Validation', color='green', edgecolor='black')\n",
|
|||
|
"plt.hist(y_reg_test, bins=50, alpha=0.6, label='Test', color='red', edgecolor='black')\n",
|
|||
|
"plt.xlabel('Цена бриллиантов')\n",
|
|||
|
"plt.ylabel('Количество')\n",
|
|||
|
"plt.legend()\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# График с нормированными частотами (барплот)\n",
|
|||
|
"plt.figure(figsize=(12, 6))\n",
|
|||
|
"bar_width = 0.25\n",
|
|||
|
"\n",
|
|||
|
"# Нормированные частоты для каждой выборки\n",
|
|||
|
"train_counts = y_reg_train.value_counts(normalize=True).sort_index()\n",
|
|||
|
"val_counts = y_reg_val.value_counts(normalize=True).sort_index()\n",
|
|||
|
"test_counts = y_reg_test.value_counts(normalize=True).sort_index()\n",
|
|||
|
"\n",
|
|||
|
"# Все уникальные значения цены, чтобы синхронизировать данные\n",
|
|||
|
"all_values = sorted(set(train_counts.index).union(val_counts.index).union(test_counts.index))\n",
|
|||
|
"\n",
|
|||
|
"# Заполнение недостающих значений нулями\n",
|
|||
|
"train_counts = train_counts.reindex(all_values).fillna(0)\n",
|
|||
|
"val_counts = val_counts.reindex(all_values).fillna(0)\n",
|
|||
|
"test_counts = test_counts.reindex(all_values).fillna(0)\n",
|
|||
|
"\n",
|
|||
|
"# Позиции для баров\n",
|
|||
|
"positions = range(len(all_values))\n",
|
|||
|
"\n",
|
|||
|
"# Строим барплот\n",
|
|||
|
"plt.bar(positions, train_counts, width=bar_width, label='Train', color='blue', edgecolor='black', align='center')\n",
|
|||
|
"plt.bar([p + bar_width for p in positions], val_counts, width=bar_width, label='Validation', color='green', edgecolor='black', align='center')\n",
|
|||
|
"plt.bar([p + 2 * bar_width for p in positions], test_counts, width=bar_width, label='Test', color='red', edgecolor='black', align='center')\n",
|
|||
|
"\n",
|
|||
|
"plt.xlabel('Цена бриллиантов')\n",
|
|||
|
"plt.ylabel('Нормированное количество')\n",
|
|||
|
"plt.legend()\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABAQAAAISCAYAAABbOB1TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACM0UlEQVR4nOzdeVyVZf7/8fdBZHENQcm1rCZzHEWUbGMms03bxiibaRkta1pc2sZsUEstcUHbHE2zwtwqo7RGM6fUfllWpqjwJcVwzQWOrLKDwP37g84dR0A5cuAcOK/n48GDc1/XdV/3577PB+R8vBeLYRiGAAAAAACAR/FydQAAAAAAAKDhURAAAAAAAMADURAAAAAAAMADURAAAAAAAMADURAAAAAAAMADURAAAAAAAMADURAAAAAAAMADURAAAAAAAMADURAAAAAAAMADubQgUFxcrAkTJigsLEzh4eGKiYmpcezu3bs1bNgwhYSE6K677lJiYqJd/9q1a3XDDTcoJCREo0ePVmZmptmXkZGhJ598Uv3799c111yj2bNnq7S01Ox/77331KNHD7uvWbNmOX+HAQAAAABwEy4tCERHRysxMVFLlizR5MmTNW/ePK1fv77KuIKCAj366KMKCwvTqlWrFBoaqscee0wFBQWSpISEBE2cOFFjxozRypUrlZOTo8jISHP9cePGKS8vTytXrtQbb7yhzz//XO+8847Zv2/fPt1333367rvvzK/Ro0fX/wEAAAAAAMBFvF214YKCAsXGxurtt99Wr1691KtXLyUnJ2vFihUaPHiw3dh169bJ19dX48ePl8Vi0cSJE7V582atX79eERERWr58uYYMGaKhQ4dKqig0XHfddTpy5IiCg4MVGBiosWPH6oILLpAk3XzzzYqLizPn379/v4YOHar27ds32P4DAAAAAOBKLjtDICkpSaWlpQoNDTXb+vfvr/j4eJWXl9uNjY+PV//+/WWxWCRJFotF/fr1065du8z+sLAwc3zHjh3VqVMnxcfHy8fHR3PmzDGLAcnJydq0aZMGDBhgjj9w4IAuvPDCetpTAAAAAADcj8sKAmlpaQoICJCPj4/ZFhQUpOLiYmVnZ1cZ26FDB7u2wMBApaamSpJOnDhxxn6bBx54QLfddptat26t+++/X5KUnp6u7OxsrV69WoMGDdKQIUP07rvvyjAMZ+0q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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 4
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Создадим дополнительные признаки для решения целей"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:21:38.529322Z",
|
|||
|
"start_time": "2025-01-19T15:21:38.180441Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"\n",
|
|||
|
"# Загрузка данных\n",
|
|||
|
"file_path = 'data/Diamonds Prices2022.csv'\n",
|
|||
|
"data = pd.read_csv(file_path)\n",
|
|||
|
"\n",
|
|||
|
"# Проверим, есть ли столбец с годом продажи, и если его нет, выберем другой столбец\n",
|
|||
|
"if 'year' in data.columns:\n",
|
|||
|
" year_column = 'year'\n",
|
|||
|
"else:\n",
|
|||
|
" print(\"Столбец с годом продажи отсутствует в данных, возможно его нужно заменить или добавить.\")\n",
|
|||
|
"\n",
|
|||
|
"# Убедимся, что столбцы 'price' и 'carat' содержат только числовые значения\n",
|
|||
|
"data['price'] = pd.to_numeric(data['price'], errors='coerce')\n",
|
|||
|
"data['carat'] = pd.to_numeric(data['carat'], errors='coerce')\n",
|
|||
|
"\n",
|
|||
|
"# 1. Конструирование признаков для цели \"Оптимизация ценовой политики\"\n",
|
|||
|
"# Создаем признак \"Вес бриллианта\" (Carat)\n",
|
|||
|
"data['Diamond_Weight'] = data['carat']\n",
|
|||
|
"\n",
|
|||
|
"# Нормализуем цену бриллианта\n",
|
|||
|
"data['Normalized_Price'] = (data['price'] - data['price'].mean()) / data['price'].std()\n",
|
|||
|
"\n",
|
|||
|
"# 2. Конструирование признаков для цели \"Увеличение конкурентоспособности\"\n",
|
|||
|
"# Генерация бинарного признака: \"Дорогостоящие бриллианты\" (цена > 5000)\n",
|
|||
|
"data['Expensive_Diamond'] = (data['price'] > 5000).astype(int)\n",
|
|||
|
"\n",
|
|||
|
"# Генерация категориального признака на основе веса\n",
|
|||
|
"data['Carat_Category'] = pd.cut(data['carat'], bins=[0, 0.5, 1.0, 1.5, 2.0, 5.0],\n",
|
|||
|
" labels=['<0.5', '0.5-1.0', '1.0-1.5', '1.5-2.0', '2.0+'])\n",
|
|||
|
"\n",
|
|||
|
"# Сохраняем результат в новый файл\n",
|
|||
|
"data.to_csv('Diamonds_Prices2022_with_features.csv', index=False)\n",
|
|||
|
"\n",
|
|||
|
"# Выводим первые строки нового датасета для проверки\n",
|
|||
|
"print(data.head())\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Столбец с годом продажи отсутствует в данных, возможно его нужно заменить или добавить.\n",
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x y \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 \n",
|
|||
|
"\n",
|
|||
|
" z Diamond_Weight Normalized_Price Expensive_Diamond Carat_Category \n",
|
|||
|
"0 2.43 0.23 -0.904093 0 <0.5 \n",
|
|||
|
"1 2.31 0.21 -0.904093 0 <0.5 \n",
|
|||
|
"2 2.31 0.23 -0.903843 0 <0.5 \n",
|
|||
|
"3 2.63 0.29 -0.902088 0 <0.5 \n",
|
|||
|
"4 2.75 0.31 -0.901837 0 <0.5 \n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 6
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"\n",
|
|||
|
"**Оценим качество каждого набора признаков по следующим критериям: предсказательная способность, скорость вычисления, надежность, корреляция и цельность.**\n",
|
|||
|
"\n",
|
|||
|
"**Предсказательная способность признака** — это его способность объяснять или предсказывать целевую переменную. В нашем случае целевой переменной является `price`. Чем больше признак \"связан\" с целевой переменной, тем выше его предсказательная способность.\n",
|
|||
|
"\n",
|
|||
|
"**Корреляция** измеряет степень линейной зависимости между двумя переменными.\n",
|
|||
|
"\n",
|
|||
|
"Если корреляция между признаком и целевой переменной высока (близка к +1 или -1), это означает, что признак хорошо объясняет вариации `price`. Например, такие признаки, как `carat` или `Diamond_Weight`, могут иметь сильную корреляцию с ценой, поскольку вес бриллианта напрямую влияет на его стоимость. В то время как признаки, такие как `cut` или `color`, могут показывать менее выраженную связь, но все равно вносят вклад в определение цены. Если корреляция близка к 0, признак почти не влияет на `price`.\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:24:30.268463Z",
|
|||
|
"start_time": "2025-01-19T15:24:29.714563Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import seaborn as sns\n",
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"import time\n",
|
|||
|
"import pandas as pd\n",
|
|||
|
"\n",
|
|||
|
"# Загрузка данных\n",
|
|||
|
"file_path = 'data/Diamonds Prices2022.csv'\n",
|
|||
|
"data = pd.read_csv(file_path)\n",
|
|||
|
"\n",
|
|||
|
"# Предсказательная способность (корреляция с целевыми переменными)\n",
|
|||
|
"target_columns = ['price', 'carat']\n",
|
|||
|
"feature_columns = ['carat', 'cut', 'color', 'clarity', 'depth', 'table', 'x', 'y', 'z']\n",
|
|||
|
"\n",
|
|||
|
"# Преобразуем категориальные столбцы в числовые (one-hot encoding)\n",
|
|||
|
"data_encoded = pd.get_dummies(data[feature_columns], drop_first=True)\n",
|
|||
|
"\n",
|
|||
|
"# Объединяем с целевыми переменными\n",
|
|||
|
"data_combined = pd.concat([data[target_columns], data_encoded], axis=1)\n",
|
|||
|
"\n",
|
|||
|
"# Выбираем только числовые столбцы для вычисления корреляции\n",
|
|||
|
"numerical_data = data_combined.select_dtypes(include=['float64', 'int64'])\n",
|
|||
|
"\n",
|
|||
|
"# Корреляционная матрица\n",
|
|||
|
"correlation_matrix = numerical_data.corr()\n",
|
|||
|
"\n",
|
|||
|
"plt.figure(figsize=(10, 8))\n",
|
|||
|
"sns.heatmap(correlation_matrix, annot=True, fmt=\".2f\", cmap='coolwarm')\n",
|
|||
|
"plt.title('Корреляция признаков и целевых переменных')\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# Скорость вычисления\n",
|
|||
|
"calc_times = {}\n",
|
|||
|
"\n",
|
|||
|
"# Так как столбца 'year' нет, можно исключить его из расчета или заменить на другую логику\n",
|
|||
|
"# Пример вычислений без года:\n",
|
|||
|
"start = time.time()\n",
|
|||
|
"data['Price_per_Carat'] = data['price'] / data['carat']\n",
|
|||
|
"calc_times['Price_per_Carat'] = time.time() - start\n",
|
|||
|
"\n",
|
|||
|
"start = time.time()\n",
|
|||
|
"data['Normalized_Price'] = (data['price'] - data['price'].mean()) / data['price'].std()\n",
|
|||
|
"calc_times['Normalized_Price'] = time.time() - start\n",
|
|||
|
"\n",
|
|||
|
"# График времени вычисления\n",
|
|||
|
"plt.barh(list(calc_times.keys()), list(calc_times.values()))\n",
|
|||
|
"plt.xlabel('Время вычисления (в секундах)')\n",
|
|||
|
"plt.ylabel('Признаки')\n",
|
|||
|
"plt.title('Время вычисления признаков')\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"# Надежность\n",
|
|||
|
"missing_values = data[feature_columns].isnull().sum()\n",
|
|||
|
"\n",
|
|||
|
"plt.barh(feature_columns, missing_values)\n",
|
|||
|
"plt.xlabel('Количество пропусков')\n",
|
|||
|
"plt.ylabel('Признаки')\n",
|
|||
|
"plt.title('Пропущенные значения по признакам (надежность)')\n",
|
|||
|
"plt.show()\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x800 with 2 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAo8AAAHFCAYAAACTuxPsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHxklEQVR4nO3dd3xO9///8eeVhFCbhFpNY6VmhpAYNUJRW+tjtFKtKiXoUpvaWmrUpi2a0pYQWqt80E+tmjVKxV4xg0RrRpLz+8M35+eS4EjDdZXH/Xa7bk3O+33OeZ1XonnmjCs2wzAMAQAAABa4OLoAAAAA/HsQHgEAAGAZ4REAAACWER4BAABgGeERAAAAlhEeAQAAYBnhEQAAAJYRHgEAAGAZ4REAAACWuTm6AABPvtDQUG3ZssVuWbZs2VSqVCl16dJFFStWdFBlAICHRXgE8FiUKlVKn3zyiSQpMTFRsbGx+v777/X2228rMjJSxYsXd3CFAAArCI8AHousWbPKz8/PblnlypVVqVIlRUZGqmfPno4pDADwULjnEYDDZM6cWe7u7rLZbOay0NBQ9erVS1OnTlXlypVVvnx5de7cWadOnbJb98CBA+rYsaMCAgIUEBCgsLAwnTx50hzfvHmzfHx85OPjo+3bt9utO3v2bPn4+CgkJMRctn37drVu3Vr+/v7menfPudud+/Dx8VGZMmUUEhKiGTNmmHMiIyPl4+Oj6Ojo+25j8+bNkiQfHx9NmDDBbs6ECRPk4+Nj16PQ0FC7OaNHj5aPj48iIyPNZUeOHDFvC6hQoYI6duyow4cPp9huaq/keh6m13euk1qddx+bYRhq1aqVXX/Onj2rbt26KTg4OEVN9+ph8rZTe9359QsJCdHYsWM1fPhwVahQQUFBQerRo4fi4uLMOb169UrxNf/hhx9S1L5s2TLVr19ffn5+euWVV7Rt27YUfU2txju3ERUVpS5duig4OFilS5fWiy++qKFDh+rGjRuprnP16lWFhoaqVKlSunnzpiTp2LFj6tatm6pUqSI/Pz+Fhobafb9HR0fb9aNUqVKqWrWqRo4cqaSkpHv2E7gfzjwCeCwMw1BCQoL5cVxcnL755hvFx8fr1VdftZu7evVq5cqVS/369VNSUpJGjx6t0NBQLV26VJkzZ9bRo0fVqlUrFSlSRJ999pkSEhI0ZcoUtW7dWj/++KPy5MljbitLlixas2aNypcvby5btmyZXFz+/+/OV65c0bvvvqtixYpp9OjRypUrl2w2myZPnqxDhw498NgGDBig0qVL6+rVq1q6dKk+++wzvfDCC6pcufI/bZslJ06c0KxZs+yWnTt3Ti1btlS+fPk0cOBAPfPMM5owYYLatm2rJUuWKGfOnObcuXPnmh/v3btXgwcPNj9/mF4/rB9//FE7duywW9azZ08dOXJEvXv3VqFCheTq6qr//e9/mjJlygO317x5c/3nP/8xP0/t6/fdd9/Jy8tLI0aM0KVLlzR69GgdP35cP/zwg90vMckuX76scePG2S3bvXu3unfvrqZNm6p///6aPXu23n33Xf3888/y8PCwdOznz5/X66+/Lj8/P3366afKmDGj1q5dq5kzZypv3rzq0KFDinW+++47XbhwQd98840yZsyoQ4cOqUWLFnr++efVr18/ZciQQeHh4Wrbtq1mzJhhdy9xp06dVKNGDV2/fl0bNmzQl19+KW9vb7t+AVYRHgE8Flu3blXp0qVTLP/www9VtGhRu2XXr19XZGSkChcuLEkqUqSImjVrpkWLFql169aaOHGiMmfOrFmzZilr1qySpEqVKql27dr66quv7C6BV6tWTatXr9bHH38s6faZrR07digwMNA8m3n06FH99ddf6tChg2rWrGmumzt3bkvHVqxYMfOSvJ+fnxYsWKA9e/akKTy6uLiYIduq4cOHq3jx4tq7d6+5bNasWYqPj9fMmTPl6ekpSXrhhRfUunVr7dq1S9WrVzfn3nk7QfIZrWQP0+uHcfXqVX3++ecqXbq0Xd27d+9Wq1at1KRJE3PZkSNHLG3z2WeftTuW1L5+Li4umjlzprJly2bOCQsL07p161StWrUU88ePH68CBQooNjbWXHb27FnVrVtXQ4cOlYuLizw8PNSwYUPt3LlTtWvXtlTrgQMHVLJkSX3xxRdmXytXrqwNGzZo8+bNKcJjYmKieY9whQoVJN3+2mTMmFHh4eHmNmrUqKGGDRtq5MiRmj9/vrn+c889Z/amUqVKioiI0J49ewiPSBMuWwN4LEqXLq358+dr/vz5ioiI0Ndff622bdtq7NixGjt2rN3cgIAAMzhKtx+2KVy4sLZu3SpJ2rRpkypWrKhMmTIpISFBCQkJypo1qwIDA7Vx40a7bYWEhOjYsWNmAPn555/l6+urggULmnO8vb2VPXt2RURE6NixY7px44YSEhJkGIalY0tKSlJCQoKuXr2q7777TpJUtmzZFHMSExMfuK08efLo3LlzlvYrSWvXrtXGjRtThLjt27fLz8/PDI7S7XD1yy+/2AXHB3mYXif3Ifl1v/5NnjxZuXLlUuvWre2Wly1bVqtXr9bu3bt15coVJSQkpOvl1ZCQEDM4Jn/u5uZmfm/d6cCBA5o7d6769+9vt7xOnToaO3asbDabrl27puXLl8vFxUXe3t528+7sxd2/EFStWlWzZ8+Wu7u7Dh06pNWrV2vKlCm6dOmS4uPjU2zn22+/1dWrV9W4cWNz+ZYtW1SzZk0zOEqSm5ubGjRooD179ujq1avm8uSvzY0bN7R48WJdvnxZZcqUeYjOAf8fZx4BPBZZsmRJEaiqVq2qa9eu6auvvtIbb7xhXgLNly9fivXz5Mmjy5cvS5Li4uK0bNkyLVu2LMW8u8825cuXT2XKlNHq1atVpEgRLVu2TA0bNtSff/5pzsmaNasmTpyooUOHqm7dunbr3xky7+XNN9+0+zw4OFjBwcF2y1566SVJt+/zLFy4sF599dUU60m3zxwtWbJEL7/8ssqXL69jx45p165dqe731q1bGj58uNq3b5+izri4OBUqVOiBtT/Iw/Q6teNJ7W2Yjh07pm+++UZfffWVTp8+bTf26aefqn///mrduvVDn4G14u7vLRcXF+XKlcv83rrT0KFD1aBBA/n7+6e6rdWrVyssLEySVL16dRUpUsRuPLUz7cmSkpI0ZswYzZkzR9euXVP+/PlVrlw5ubu7p5g7depU2Ww2jRs3zi74Xr58OdXL5B4eHjIMQ1euXDGX9e3bV3379jU/L1q0qF0QBR4G4RGAQ5UpU0YRERGKjo42w+OdlwiTXbhwQc8995yk2+8RWblyZb311lsp5rm5pfzfWq1atbR69Wq9/PLL2rNnjyZOnGgXHiUpKChIderU0dGjR/XRRx8pICBAU6ZM0YEDBx54DIMGDVLp0qWVkJCgPXv2aMSIEZo5c6batWtnzpkyZYo8PT118+ZNbd++XZ999pkkqWTJknbb+vjjjxUdHW1etnRzc7M7s3Sn5HtGO3TooAsXLtiNZcuWTZcuXUqxzm+//aZChQrZndm9n4fpdXIfkiW/NdPdhg8frlq1aik4ONjuAR9JKlCggNq0aaNdu3bppZdeUvPmzbVx40ZNnDjRUr0Pcvf3VvLbRt0dhJcvX649e/Zo9OjR99xWxYoVNW/ePO3Zs0fDhg3TV199pXfeecccv/OysXT7nsxk06dP16xZszRo0CDVqVPHDIV3zkn2yiuvSJL69esnb29v82GcHDlypPi6S1JMTIwkKVeuXDp//rwkqUuXLqpRo4aSkpJ05MgRDR48WCNHjkxxVhWwgvAIwKF2794tV1dXuzCzfft2xcbGKleuXJKkPXv2KDo62jzLU7FiRR06dEglS5Y0A4xhGOrevbu8vLxSBLLatWtr/Pjxmj17tsqXL6+8efOmqOPXX3/VxIkT9fbbb5tB6c6HSu7H29vbPKvq7++vhQsXatOmTXbhsUSJEuaZwMDAQC1fvlybN29OUWuOHDk0a9YsnTp1Sjdu3FCBAgX01VdfpQhPFy9e1OTJkzV8+HBlypQpRU2BgYGaN2+
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 10
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"**Цельность признака** — это его способность предоставлять полную, корректную и осмысленную информацию без пропусков или противоречий. Для вашего датасета, содержащего информацию о зарплатах и опыте сотрудников, цельный признак — это признак, который:\n",
|
|||
|
"\n",
|
|||
|
"- Не содержит пропущенных значений (NaN или пустых значений).\n",
|
|||
|
"- Не имеет ошибок или некорректных значений (например, отрицательная зарплата, некорректные значения для типа занятости или уровня опыта).\n",
|
|||
|
"- Содержит логически правильное распределение значений (например, для признаков, таких как `experience_level`, `employment_type`, `job_title` или `company_size`, присутствуют только допустимые категории, а значения не противоречат ожидаемым).\n",
|
|||
|
"\n",
|
|||
|
"Цельность признаков гарантирует, что данные в вашем датасете являются достоверными и могут быть использованы для дальнейшего анализа и построения моделей."
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:28:26.120614Z",
|
|||
|
"start_time": "2025-01-19T15:28:22.823092Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import seaborn as sns\n",
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"import pandas as pd\n",
|
|||
|
"\n",
|
|||
|
"# Загрузка данных\n",
|
|||
|
"file_path = 'data/Diamonds Prices2022.csv'\n",
|
|||
|
"data = pd.read_csv(file_path)\n",
|
|||
|
"\n",
|
|||
|
"# Проверка названий столбцов\n",
|
|||
|
"print(data.columns)\n",
|
|||
|
"\n",
|
|||
|
"# Признаки для анализа (используем только те, которые есть в датасете)\n",
|
|||
|
"feature_columns = ['carat', 'cut', 'color', 'clarity', 'depth', 'table', 'price', 'x', 'y', 'z']\n",
|
|||
|
"\n",
|
|||
|
"# Заполним пропущенные значения для категориальных признаков\n",
|
|||
|
"data[['cut', 'color', 'clarity']] = data[['cut', 'color', 'clarity']].fillna('Unknown')\n",
|
|||
|
"\n",
|
|||
|
"# Цельность\n",
|
|||
|
"for feature in feature_columns:\n",
|
|||
|
" plt.figure(figsize=(6, 4))\n",
|
|||
|
" if data[feature].dtype == 'object': # Если категориальный признак\n",
|
|||
|
" sns.histplot(data[feature], kde=False, bins=30)\n",
|
|||
|
" else: # Если числовой признак\n",
|
|||
|
" sns.histplot(data[feature], kde=True, bins=30)\n",
|
|||
|
"\n",
|
|||
|
" plt.title(f'Цельность: {feature}')\n",
|
|||
|
" plt.xlabel(feature)\n",
|
|||
|
" plt.ylabel('Частота')\n",
|
|||
|
" plt.show()\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Index(['Unnamed: 0', 'carat', 'cut', 'color', 'clarity', 'depth', 'table',\n",
|
|||
|
" 'price', 'x', 'y', 'z'],\n",
|
|||
|
" dtype='object')\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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HA8++CAOHTqErKwsRERE4MEHHxQDFNdw1ZXDXFfKyspCv379cPfdd4sBSklJCX7++We3azuaTSKSImZSiIJYcXExXn/99RbP5+Xl4csvv8TYsWPxl7/8BYsXL4ZCocCECRNQXV2Nl156CSUlJRg8eLBY5CmTydzqRFry008/oaysDLW1tfjuu+/w888/4//+7/88bvu8efPw+eefY8aMGZgzZw5UKhV27NiB/Px8vPrqqwAchbTp6el44okn8Oc//xmpqal47733cObMGaxYscLj12qtrbW1tcjLy0OvXr3EAONKs2bNwr59+/Dggw9i7ty5UKlUePnll5GUlIRf//rXOHjwIP71r3/hmWeewYQJE1BaWorXXnsNZWVlTbJUVxo2bBheeuklbN68GcOHD8eFCxfwyiuvwGw2w2AwiM+LiIjAyZMnceTIEQwbNgxardbj908kVQxSiILYxYsXsWrVqhbPHz9+HPv378fYsWPxm9/8BqGhoXj11Vexa9cuhISE4LrrrsO6deuQmpqK22+/HUqlEnPmzPEoSHHNrFGr1UhOTsYjjzzSrjqP/v37480338Szzz6LzMxMyGQyDBs2DNu3b0dGRgYAR0bnn//8J9atW4d//OMfMBgMGDBgALZs2YJhw4Z5/FqttfXHH3/EjBkzsGrVKkyZMqXZ63v06IE333wTa9euxRNPPAG1Wo3Ro0fjueeeQ2RkJO666y5cunQJe/fuxZtvvonExETcdNNNuO+++/D3v/8dZ86cQd++fZu999y5c1FRUYHt27dj48aN6NGjB+68807IZDK88sorqK6uRkREBGbPno2nn34aDzzwALZu3Sr2EVFXJhO4IxVRtzV9+nT07NkTzzzzTKCbQkTUBAcxiYiISJIYpBAREZEkcbiHiIiIJImZFCIiIpIkBilEREQkSQxSiIiISJIYpBAREZEkMUghIiIiSeKKsx1QXl4DQQBkMiA2Nlx8TL7DvvUv9q9/sX/9i/3rX/7qX9d9PcEgpQMEAW4/uCsfk++wb/2L/etf7F//Yv/6VyD7l8M9REREJEkMUoiIiEiSGKQQERGRJDFIISIiIklikEJERESSxCCFiIiIJIlBChEREUkSgxQiIiKSJAYpREREJEkMUoiIiEiSGKR0URX1Zmz66jw+PFkS6KYQERH5Bffu6WIEQcCbWQX45zcXUGe2QaeS4/ZBCZDJZIFuGhERkU8xk9LFHC+qwfOHzqLObAMAGCx21JpsAW4VERGR7zFI6WLKak0AgEGJYQjXOBJh+jpTIJtERETkFwxSupgqoxUAEBeqRlyoGgBQVmsOZJOIiIj8gkFKF1PjDFIidCrEhjmDlDoGKUREFHwkEaSYzWZMmjQJhw8fbnKupqYG48aNwzvvvON2fP/+/bj55puRlpaGhx9+GJcvXxbPCYKAdevWYcyYMRg1ahTWrFkDu90unq+oqMAjjzyC9PR0TJw4Ee+9957/3pyPuTIpERqlmEkpZ5BCRERBKOBBislkwqOPPorc3Nxmz69duxalpaVux44dO4aFCxdi3rx52LVrF6qrq5GZmSme37p1K/bv348NGzbghRdewPvvv4+tW7eK5zMzM1FTU4Ndu3bhj3/8IxYtWoRjx4755w36WLXRAgCI0DYEKcykEBFRMAroFOS8vDz89a9
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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EaSkpDgFlfPnz/PII4+wY8eOIusnJSXRvXt3OnbsiKenJ4Cjh1+e9votxR1FqlGjBvfddx+bNm3iiy++ICYmplT7FDEiHUkRqWLOnDnzqzf7Sk1NZdeuXXTu3JknnniCCRMmYLFY6NatG5cuXeLVV1/l7NmzhIaGkpKSwp49ezCZTE7XiVzPt99+S0ZGBllZWfz73//mf//7H3/4wx9KXHtcXBw7d+5k8ODBxMbG4uHhwapVq0hLS+PNN98Erl5IGx4ezrPPPsvjjz9Ow4YN+eCDDzhy5AhTp04t8Vy/VmtWVhapqanccsst1K1bt9jthw4dyoYNG3jkkUcYMWIEHh4eLFy4kPr169OnTx8OHjzotH6bNm3YuHEjoaGh1K9fn71797Jo0SJMJhM5OTklrhuuHgX773//y5dffskdd9zhOOr1wAMP8OCDD3LTTTc5LioWqcwUUkSqmOPHj5OQkHDd8a+//ppNmzbRuXNn+vfvT82aNXnzzTd59913qVGjBu3atWPOnDk0bNiQnj17YrVaiY2NLVFIufbKGk9PT4KDgxk9enSprvNo1qwZb731Fi+88ALx8fGYTCbatGnDihUrHNdvWCwW3njjDebMmcPLL79MTk4OzZs3Z8mSJbRp06bEc/1ard988w2DBw8mISHhukckbr75Zt566y1mz57Ns88+i6enJx07duTFF18scqoMYMaMGUydOtURpBo3bszkyZP58MMP+c9//lPiugEefvhh9u/fz6OPPkpCQgJ9+vQBrr7ap06dOtx3332OozUilZnJrnepEqlWBg0aRIMGDXT/jCooJSWFAQMG8MEHH9CiRYuKLkfkhulIiohIJZeYmEhiYiIbNmygc+fOCihSZejCWRGRSu7ixYssXbqUgIAApk2bVtHliJQbne4RERERQ9KRFBERETEkhRQRERExJIUUERERMSSFFBERETEkhRQRERExJN0n5QacP/8jlfG1USYT+PvXrrT1/1JV6wfUU2WhniqHqtZTZe/nWv0loZByA+x2KuUPyDWVvf5fqmr9gHqqLNRT5VDVeqpq/RRHp3tERETEkBRSRERExJAUUkRERMSQFFJERETEkBRSRERExJAUUkRERMSQFFJERETEkBRSRERExJAUUkRERMSQFFJERETEkHRbfHEps9mE2Wxyy1wWi3syt81mx2ar4veiFhExAIUUcRmz2UQdvxpYzO4JD35+Nd0yT6HNRubFbAUVEREXU0gRlzGbTVjMZl769BAnLmS7dC6r1UJBQaFL5wAIqVuDx+9tjtlsUkgREXExhRRxuRMXsjmacdmlc3h4WLhyxfUhRURE3EcXzoqIiIghKaSIiIiIISmkiIiIiCEppIiIiIghKaSIiIiIISmkiIiIiCEppIiIiIghKaSIiIiIISmkiIiIiCEppIiIiIghKaSIiIiIISmkiIiIiCEppIiIiIghKaSIiIiIISmkiIiIiCFZK7oAEal4ZrMJs9nklrksFvf8bWSz2bHZ7G6ZS0RcQyFFpJozm03U8auBxeye8ODnV9Mt8xTabGRezFZQEanEDBFS8vPziYmJ4R//+AcdO3YEIDk5mRkzZnDo0CHq1avHI488Qv/+/R3b7N69m+eff560tDTCwsKYPn06DRs2dIwvW7aMxYsXk5WVRc+ePfnHP/6
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 15
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"**Избыточность** признаков — это ситуация, когда два или более признака содержат схожую или дублирующую информацию. "
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"ExecuteTime": {
|
|||
|
"end_time": "2025-01-19T15:29:13.245212Z",
|
|||
|
"start_time": "2025-01-19T15:29:12.238214Z"
|
|||
|
}
|
|||
|
},
|
|||
|
"source": [
|
|||
|
"import seaborn as sns\n",
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"import pandas as pd\n",
|
|||
|
"\n",
|
|||
|
"# Загрузка данных\n",
|
|||
|
"file_path = 'data/Diamonds Prices2022.csv'\n",
|
|||
|
"data = pd.read_csv(file_path)\n",
|
|||
|
"\n",
|
|||
|
"# Признаки для анализа (изменено под ваш датасет)\n",
|
|||
|
"feature_columns = ['carat', 'cut', 'color', 'clarity', 'depth', 'table', 'price', 'x', 'y', 'z']\n",
|
|||
|
"\n",
|
|||
|
"# Преобразование категориальных признаков в числовые с использованием one-hot кодирования\n",
|
|||
|
"data_encoded = pd.get_dummies(data[feature_columns], drop_first=True)\n",
|
|||
|
"\n",
|
|||
|
"# Рассчитаем корреляционную матрицу\n",
|
|||
|
"corr_matrix = data_encoded.corr()\n",
|
|||
|
"\n",
|
|||
|
"# Убедимся, что корреляция имеет смысл (например, все ли признаки числовые)\n",
|
|||
|
"print(corr_matrix)\n",
|
|||
|
"\n",
|
|||
|
"# Избыточность: построение корреляционной матрицы\n",
|
|||
|
"plt.figure(figsize=(10, 8))\n",
|
|||
|
"sns.heatmap(corr_matrix, annot=True, fmt=\".2f\", cmap='coolwarm')\n",
|
|||
|
"plt.title('Избыточность')\n",
|
|||
|
"plt.show()\n"
|
|||
|
],
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
" carat depth table price x y \\\n",
|
|||
|
"carat 1.000000 0.028234 0.181602 0.921591 0.975093 0.951721 \n",
|
|||
|
"depth 0.028234 1.000000 -0.295798 -0.010630 -0.025289 -0.029340 \n",
|
|||
|
"table 0.181602 -0.295798 1.000000 0.127118 0.195333 0.183750 \n",
|
|||
|
"price 0.921591 -0.010630 0.127118 1.000000 0.884433 0.865419 \n",
|
|||
|
"x 0.975093 -0.025289 0.195333 0.884433 1.000000 0.974701 \n",
|
|||
|
"y 0.951721 -0.029340 0.183750 0.865419 0.974701 1.000000 \n",
|
|||
|
"z 0.953387 0.094927 0.150915 0.861249 0.970771 0.952005 \n",
|
|||
|
"cut_Good 0.034200 0.136127 0.175155 -0.000307 0.030349 0.032186 \n",
|
|||
|
"cut_Ideal -0.163648 -0.022730 -0.549584 -0.097160 -0.162671 -0.153156 \n",
|
|||
|
"cut_Premium 0.116229 -0.198349 0.338056 0.095685 0.126815 0.107937 \n",
|
|||
|
"cut_Very Good 0.009564 0.025818 0.119975 0.006589 0.004567 0.016699 \n",
|
|||
|
"color_E -0.139217 -0.028766 0.007137 -0.101101 -0.134200 -0.130124 \n",
|
|||
|
"color_F -0.060054 -0.017779 -0.004821 -0.024166 -0.048019 -0.046706 \n",
|
|||
|
"color_G -0.029032 0.002797 -0.038828 0.008564 -0.024594 -0.024479 \n",
|
|||
|
"color_H 0.102469 0.026061 0.011560 0.059229 0.095895 0.093479 \n",
|
|||
|
"color_I 0.161497 0.022648 0.017956 0.097130 0.146522 0.142894 \n",
|
|||
|
"color_J 0.180057 0.022555 0.037244 0.081714 0.164657 0.160776 \n",
|
|||
|
"clarity_IF -0.114446 -0.030869 -0.078767 -0.049593 -0.125976 -0.120800 \n",
|
|||
|
"clarity_SI1 0.062655 0.040831 0.051976 0.008940 0.079239 0.076093 \n",
|
|||
|
"clarity_SI2 0.267486 0.007228 0.095325 0.128427 0.270825 0.263250 \n",
|
|||
|
"clarity_VS1 -0.063089 -0.024144 -0.026869 -0.009879 -0.059882 -0.056490 \n",
|
|||
|
"clarity_VS2 -0.038906 -0.009466 -0.009640 -0.001066 -0.035507 -0.035926 \n",
|
|||
|
"clarity_VVS1 -0.167568 -0.023461 -0.069107 -0.095261 -0.185253 -0.179271 \n",
|
|||
|
"clarity_VVS2 -0.137020 -0.019224 -0.062279 -0.052375 -0.147151 -0.141624 \n",
|
|||
|
"\n",
|
|||
|
" z cut_Good cut_Ideal cut_Premium ... color_H \\\n",
|
|||
|
"carat 0.953387 0.034200 -0.163648 0.116229 ... 0.102469 \n",
|
|||
|
"depth 0.094927 0.136127 -0.022730 -0.198349 ... 0.026061 \n",
|
|||
|
"table 0.150915 0.175155 -0.549584 0.338056 ... 0.011560 \n",
|
|||
|
"price 0.861249 -0.000307 -0.097160 0.095685 ... 0.059229 \n",
|
|||
|
"x 0.970771 0.030349 -0.162671 0.126815 ... 0.095895 \n",
|
|||
|
"y 0.952005 0.032186 -0.153156 0.107937 ... 0.093479 \n",
|
|||
|
"z 1.000000 0.045171 -0.158680 0.090008 ... 0.095043 \n",
|
|||
|
"cut_Good 0.045171 1.000000 -0.257998 -0.185391 ... -0.009510 \n",
|
|||
|
"cut_Ideal -0.158680 -0.257998 1.000000 -0.478081 ... -0.021244 \n",
|
|||
|
"cut_Premium 0.090008 -0.185391 -0.478081 1.000000 ... 0.027871 \n",
|
|||
|
"cut_Very Good 0.016037 -0.169938 -0.438231 -0.314901 ... -0.004443 \n",
|
|||
|
"color_E -0.132204 0.006990 -0.001162 -0.018468 ... -0.200970 \n",
|
|||
|
"color_F -0.048805 0.006942 0.001333 -0.012039 ... -0.197755 \n",
|
|||
|
"color_G -0.024578 -0.024719 0.034672 0.003832 ... -0.219481 \n",
|
|||
|
"color_H 0.095043 -0.009510 -0.021244 0.027871 ... 1.000000 \n",
|
|||
|
"color_I 0.145278 0.006193 -0.009210 0.005882 ... -0.142590 \n",
|
|||
|
"color_J 0.164218 0.014982 -0.038479 0.017218 ... -0.099957 \n",
|
|||
|
"clarity_IF -0.125247 -0.033042 0.104993 -0.054020 ... 0.006724 \n",
|
|||
|
"clarity_SI1 0.080994 0.055917 -0.082904 0.023390 ... 0.031588 \n",
|
|||
|
"clarity_SI2 0.263193 0.041978 -0.108218 0.067595 ... 0.020173 \n",
|
|||
|
"clarity_VS1 -0.058510 -0.017108 0.034265 -0.011887 ... -0.012730 \n",
|
|||
|
"clarity_VS2 -0.036314 -0.021067 0.015657 0.022555 ... -0.029928 \n",
|
|||
|
"clarity_VVS1 -0.182399 -0.037559 0.088365 -0.053863 ... 0.004568 \n",
|
|||
|
"clarity_VVS2 -0.144743 -0.038621 0.075521 -0.061963 ... -0.030263 \n",
|
|||
|
"\n",
|
|||
|
" color_I color_J clarity_IF clarity_SI1 clarity_SI2 \\\n",
|
|||
|
"carat 0.161497 0.180057 -0.114446 0.062655 0.267486 \n",
|
|||
|
"depth 0.022648 0.022555 -0.030869 0.040831 0.007228 \n",
|
|||
|
"table 0.017956 0.037244 -0.078767 0.051976 0.095325 \n",
|
|||
|
"price 0.097130 0.081714 -0.049593 0.008940 0.128427 \n",
|
|||
|
"x 0.146522 0.164657 -0.125976 0.079239 0.270825 \n",
|
|||
|
"y 0.142894 0.160776 -0.120800 0.076093 0.263250 \n",
|
|||
|
"z 0.145278 0.164218 -0.125247 0.080994 0.263193 \n",
|
|||
|
"cut_Good 0.006193 0.014982 -0.033042 0.055917 0.041978 \n",
|
|||
|
"cut_Ideal -0.009210 -0.038479 0.104993 -0.082904 -0.108218 \n",
|
|||
|
"cut_Premium 0.005882 0.017218 -0.054020 0.023390 0.067595 \n",
|
|||
|
"cut_Very Good -0.001553 0.009812 -0.033005 0.032489 0.004799 \n",
|
|||
|
"color_E -0.157496 -0.110406 -0.044872 0.005984 0.005481 \n",
|
|||
|
"color_F -0.154977 -0.108640 0.018534 -0.020373 -0.002261 \n",
|
|||
|
"color_G -0.172003 -0.120576 0.077922 -0.080761 -0.045637 \n",
|
|||
|
"color_H -0.142590 -0.099957 0.006724 0.031588 0.020173 \n",
|
|||
|
"color_I 1.000000 -0.078335 -0.012708 0.015914 -0.001987 \n",
|
|||
|
"color_J -0.078335 1.000000 -0.019652 0.013596 0.000090 \n",
|
|||
|
"clarity_IF -0.012708 -0.019652 1.000000 -0.104747 -0.083975 \n",
|
|||
|
"clarity_SI1 0.015914 0.013596 -0.104747 1.000000 -0.256280 \n",
|
|||
|
"clarity_SI2 -0.001987 0.000090 -0.083975 -0.256280 1.000000 \n",
|
|||
|
"clarity_VS1 0.024197 0.027156 -0.078275 -0.238886 -0.191513 \n",
|
|||
|
"clarity_VS2 -0.009297 0.018492 -0.100468 -0.306617 -0.245812 \n",
|
|||
|
"clarity_VVS1 -0.003036 -0.038604 -0.049946 -0.152428 -0.122200 \n",
|
|||
|
"clarity_VVS2 -0.030477 -0.037966 -0.059644 -0.182026 -0.145929 \n",
|
|||
|
"\n",
|
|||
|
" clarity_VS1 clarity_VS2 clarity_VVS1 clarity_VVS2 \n",
|
|||
|
"carat -0.063089 -0.038906 -0.167568 -0.137020 \n",
|
|||
|
"depth -0.024144 -0.009466 -0.023461 -0.019224 \n",
|
|||
|
"table -0.026869 -0.009640 -0.069107 -0.062279 \n",
|
|||
|
"price -0.009879 -0.001066 -0.095261 -0.052375 \n",
|
|||
|
"x -0.059882 -0.035507 -0.185253 -0.147151 \n",
|
|||
|
"y -0.056490 -0.035926 -0.179271 -0.141624 \n",
|
|||
|
"z -0.058510 -0.036314 -0.182399 -0.144743 \n",
|
|||
|
"cut_Good -0.017108 -0.021067 -0.037559 -0.038621 \n",
|
|||
|
"cut_Ideal 0.034265 0.015657 0.088365 0.075521 \n",
|
|||
|
"cut_Premium -0.011887 0.022555 -0.053863 -0.061963 \n",
|
|||
|
"cut_Very Good -0.006855 -0.016336 -0.005255 0.015279 \n",
|
|||
|
"color_E -0.027265 0.028006 -0.001521 0.011659 \n",
|
|||
|
"color_F -0.011047 0.003741 0.016894 0.013120 \n",
|
|||
|
"color_G 0.055613 -0.023835 0.042406 0.059753 \n",
|
|||
|
"color_H -0.012730 -0.029928 0.004568 -0.030263 \n",
|
|||
|
"color_I 0.024197 -0.009297 -0.003036 -0.030477 \n",
|
|||
|
"color_J 0.027156 0.018492 -0.038604 -0.037966 \n",
|
|||
|
"clarity_IF -0.078275 -0.100468 -0.049946 -0.059644 \n",
|
|||
|
"clarity_SI1 -0.238886 -0.306617 -0.152428 -0.182026 \n",
|
|||
|
"clarity_SI2 -0.191513 -0.245812 -0.122200 -0.145929 \n",
|
|||
|
"clarity_VS1 1.000000 -0.229129 -0.113907 -0.136025 \n",
|
|||
|
"clarity_VS2 -0.229129 1.000000 -0.146202 -0.174592 \n",
|
|||
|
"clarity_VVS1 -0.113907 -0.146202 1.000000 -0.086794 \n",
|
|||
|
"clarity_VVS2 -0.136025 -0.174592 -0.086794 1.000000 \n",
|
|||
|
"\n",
|
|||
|
"[24 rows x 24 columns]\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x800 with 2 Axes>"
|
|||
|
],
|
|||
|
"image/png": "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
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"execution_count": 16
|
|||
|
}
|
|||
|
],
|
|||
|
"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.12.8"
|
|||
|
}
|
|||
|
},
|
|||
|
"nbformat": 4,
|
|||
|
"nbformat_minor": 2
|
|||
|
}
|