{
"cells": [
{
"cell_type": "markdown",
"id": "982404fc-3574-4343-8a0a-0017207981e5",
"metadata": {},
"source": [
"## Решение практической задачи 2\n",
"\n",
"### Задача: прогнозирование потребительских предпочтений на промышленные товары\n",
"\n",
"> Решение практической задачи выполняется в два этапа. На первом этапе необходимо использовать библиотеку OCEAN-AI для получения гипотез предсказаний (оценок персональных качеств личности человека). На втором этапе следует использовать метод _priority_calculation из библиотеки OCEAN-AI для решения представленной практической задачи. Примеры результатов работы и реализации представлены ниже.\n",
"\n",
"> Таким образом, библиотека OCEAN-AI предоставляет инструмент для анализа персональных качеств личности потребителей, что полезно для предсказания того, что их заинтересует. Это позволит компаниям более точно адаптировать свои товары и услуги к предпочтениям потребителей, делая их более уникальными и персонализированными.\n",
"\n",
"
\n",
"
\n",
"\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f5d4b7ce-ce69-43b9-9145-c785e9e62091",
"metadata": {
"nbsphinx": "hidden",
"tags": []
},
"outputs": [],
"source": [
"import os # Взаимодействие с файловой системой\n",
"import sys # Доступ к некоторым переменным и функциям Python\n",
"\n",
"PATH_TO_SOURCE = os.path.abspath(os.path.dirname(globals()['_dh'][0]))\n",
"PATH_TO_ROOT = os.path.join(PATH_TO_SOURCE, '..', '..', '..')\n",
"\n",
"sys.path.insert(0, os.path.abspath(PATH_TO_ROOT))"
]
},
{
"cell_type": "markdown",
"id": "c6b59162-9490-446c-85ca-7ce2a9f8ac48",
"metadata": {},
"source": [
"### `FI V2`"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "adb1d9a8-e7e4-4f30-ad1b-272ddc35533a",
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"**[2024-10-10 18:10:50] Извлечение признаков (экспертных и нейросетевых) из текста ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:10:50] Получение прогнозов и вычисление точности (мультимодальное объединение) ...** 10 из 10 (100.0%) ... GitHub\\OCEANAI\\docs\\source\\user_guide\\notebooks\\video_FI\\test\\_plk5k7PBEg.003.mp4 ...
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" Openness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" 2d6btbaNdfo.000.mp4 | \n",
" 0.618917 | \n",
" 0.660694 | \n",
" 0.477656 | \n",
" 0.654437 | \n",
" 0.601256 | \n",
"
\n",
" \n",
" | 2 | \n",
" 300gK3CnzW0.001.mp4 | \n",
" 0.461732 | \n",
" 0.413451 | \n",
" 0.415706 | \n",
" 0.498301 | \n",
" 0.431224 | \n",
"
\n",
" \n",
" | 3 | \n",
" 300gK3CnzW0.003.mp4 | \n",
" 0.468002 | \n",
" 0.448618 | \n",
" 0.371742 | \n",
" 0.509602 | \n",
" 0.453739 | \n",
"
\n",
" \n",
" | 4 | \n",
" 4vdJGgZpj4k.003.mp4 | \n",
" 0.585348 | \n",
" 0.616446 | \n",
" 0.49443 | \n",
" 0.605614 | \n",
" 0.587017 | \n",
"
\n",
" \n",
" | 5 | \n",
" be0DQawtVkE.002.mp4 | \n",
" 0.680991 | \n",
" 0.56602 | \n",
" 0.553915 | \n",
" 0.646545 | \n",
" 0.64246 | \n",
"
\n",
" \n",
" | 6 | \n",
" cLaZxEf1nE4.004.mp4 | \n",
" 0.66342 | \n",
" 0.551018 | \n",
" 0.557912 | \n",
" 0.585238 | \n",
" 0.587174 | \n",
"
\n",
" \n",
" | 7 | \n",
" g24JGYuT74A.004.mp4 | \n",
" 0.590237 | \n",
" 0.399273 | \n",
" 0.409554 | \n",
" 0.531861 | \n",
" 0.507134 | \n",
"
\n",
" \n",
" | 8 | \n",
" JZNMxa3OKHY.000.mp4 | \n",
" 0.60577 | \n",
" 0.523617 | \n",
" 0.531137 | \n",
" 0.594406 | \n",
" 0.57984 | \n",
"
\n",
" \n",
" | 9 | \n",
" nvlqJbHk_Lc.003.mp4 | \n",
" 0.511002 | \n",
" 0.464702 | \n",
" 0.390882 | \n",
" 0.443663 | \n",
" 0.438811 | \n",
"
\n",
" \n",
" | 10 | \n",
" _plk5k7PBEg.003.mp4 | \n",
" 0.647606 | \n",
" 0.610466 | \n",
" 0.524718 | \n",
" 0.61428 | \n",
" 0.606428 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path Openness Conscientiousness Extraversion \\\n",
"Person ID \n",
"1 2d6btbaNdfo.000.mp4 0.618917 0.660694 0.477656 \n",
"2 300gK3CnzW0.001.mp4 0.461732 0.413451 0.415706 \n",
"3 300gK3CnzW0.003.mp4 0.468002 0.448618 0.371742 \n",
"4 4vdJGgZpj4k.003.mp4 0.585348 0.616446 0.49443 \n",
"5 be0DQawtVkE.002.mp4 0.680991 0.56602 0.553915 \n",
"6 cLaZxEf1nE4.004.mp4 0.66342 0.551018 0.557912 \n",
"7 g24JGYuT74A.004.mp4 0.590237 0.399273 0.409554 \n",
"8 JZNMxa3OKHY.000.mp4 0.60577 0.523617 0.531137 \n",
"9 nvlqJbHk_Lc.003.mp4 0.511002 0.464702 0.390882 \n",
"10 _plk5k7PBEg.003.mp4 0.647606 0.610466 0.524718 \n",
"\n",
" Agreeableness Non-Neuroticism \n",
"Person ID \n",
"1 0.654437 0.601256 \n",
"2 0.498301 0.431224 \n",
"3 0.509602 0.453739 \n",
"4 0.605614 0.587017 \n",
"5 0.646545 0.64246 \n",
"6 0.585238 0.587174 \n",
"7 0.531861 0.507134 \n",
"8 0.594406 0.57984 \n",
"9 0.443663 0.438811 \n",
"10 0.61428 0.606428 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:10:50] Точность по отдельным персональным качествам личности человека ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Openness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
" Mean | \n",
"
\n",
" \n",
" | Metrics | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | MAE | \n",
" 0.0735 | \n",
" 0.0631 | \n",
" 0.0914 | \n",
" 0.0706 | \n",
" 0.0691 | \n",
" 0.0735 | \n",
"
\n",
" \n",
" | Accuracy | \n",
" 0.9265 | \n",
" 0.9369 | \n",
" 0.9086 | \n",
" 0.9294 | \n",
" 0.9309 | \n",
" 0.9265 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Openness Conscientiousness Extraversion Agreeableness \\\n",
"Metrics \n",
"MAE 0.0735 0.0631 0.0914 0.0706 \n",
"Accuracy 0.9265 0.9369 0.9086 0.9294 \n",
"\n",
" Non-Neuroticism Mean \n",
"Metrics \n",
"MAE 0.0691 0.0735 \n",
"Accuracy 0.9309 0.9265 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:10:50] Средняя средних абсолютных ошибок: 0.0735, средняя точность: 0.9265 ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**Лог файлы успешно сохранены ...**"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**--- Время выполнения: 35.449 сек. ---**"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Импорт необходимых инструментов\n",
"import os\n",
"import pandas as pd\n",
"\n",
"# Импорт модуля\n",
"from oceanai.modules.lab.build import Run\n",
"\n",
"# Создание экземпляра класса\n",
"_b5 = Run()\n",
"\n",
"# Настройка ядра\n",
"_b5.path_to_save_ = './models' # Директория для сохранения файла\n",
"_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n",
"\n",
"corpus = 'fi'\n",
"\n",
"# Формирование аудиомоделей\n",
"res_load_model_hc = _b5.load_audio_model_hc()\n",
"res_load_model_nn = _b5.load_audio_model_nn()\n",
"\n",
"# Загрузка весов аудиомоделей\n",
"url = _b5.weights_for_big5_['audio'][corpus]['hc']['googledisk']\n",
"res_load_model_weights_hc = _b5.load_audio_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['audio'][corpus]['nn']['googledisk']\n",
"res_load_model_weights_nn = _b5.load_audio_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Формирование видеомоделей\n",
"res_load_model_hc = _b5.load_video_model_hc(lang='en')\n",
"res_load_model_deep_fe = _b5.load_video_model_deep_fe()\n",
"res_load_model_nn = _b5.load_video_model_nn()\n",
"\n",
"# Загрузка весов видеомоделей\n",
"url = _b5.weights_for_big5_['video'][corpus]['hc']['googledisk']\n",
"res_load_model_weights_hc = _b5.load_video_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['video'][corpus]['fe']['googledisk']\n",
"res_load_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['video'][corpus]['nn']['googledisk']\n",
"res_load_model_weights_nn = _b5.load_video_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Загрузка словаря с экспертными признаками (текстовая модальность)\n",
"res_load_text_features = _b5.load_text_features()\n",
"\n",
"# Формирование текстовых моделей \n",
"res_setup_translation_model = _b5.setup_translation_model() # только для русского языка\n",
"res_setup_translation_model = _b5.setup_bert_encoder(force_reload = False)\n",
"res_load_text_model_hc_fi = _b5.load_text_model_hc(corpus=corpus)\n",
"res_load_text_model_nn_fi = _b5.load_text_model_nn(corpus=corpus)\n",
"\n",
"# Загрузка весов текстовых моделей\n",
"url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']\n",
"res_load_text_model_weights_hc_fi = _b5.load_text_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']\n",
"res_load_text_model_weights_nn_fi = _b5.load_text_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Формирование модели для мультимодального объединения информации\n",
"res_load_avt_model_b5 = _b5.load_avt_model_b5()\n",
"\n",
"# Загрузка весов модели для мультимодального объединения информации\n",
"url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']\n",
"res_load_avt_model_weights_b5 = _b5.load_avt_model_weights_b5(url = url, force_reload = False)\n",
"\n",
"PATH_TO_DIR = './video_FI/'\n",
"PATH_SAVE_VIDEO = './video_FI/test/'\n",
"\n",
"_b5.path_to_save_ = PATH_SAVE_VIDEO\n",
"\n",
"# Загрузка 10 тестовых аудиовидеозаписей из корпуса First Impression V2\n",
"# URL: https://chalearnlap.cvc.uab.cat/dataset/24/description/\n",
"domain = 'https://download.sberdisk.ru/download/file/'\n",
"tets_name_files = [\n",
" '429713680?token=FqHdMLSSh7zYSZt&filename=_plk5k7PBEg.003.mp4',\n",
" '429713681?token=Hz9b4lQkrLfic33&filename=be0DQawtVkE.002.mp4',\n",
" '429713683?token=EgUXS9Xs8xHm5gz&filename=2d6btbaNdfo.000.mp4',\n",
" '429713684?token=1U26753kmPYdIgt&filename=300gK3CnzW0.003.mp4',\n",
" '429713685?token=LyigAWLTzDNwKJO&filename=300gK3CnzW0.001.mp4',\n",
" '429713686?token=EpfRbCKHyuc4HPu&filename=cLaZxEf1nE4.004.mp4',\n",
" '429713687?token=FNTkwqBr4jOS95l&filename=g24JGYuT74A.004.mp4',\n",
" '429713688?token=qDT95nz7hfm2Nki&filename=JZNMxa3OKHY.000.mp4',\n",
" '429713689?token=noLguEGXDpbcKhg&filename=nvlqJbHk_Lc.003.mp4',\n",
" '429713679?token=9L7RQ0hgdJlcek6&filename=4vdJGgZpj4k.003.mp4'\n",
"]\n",
"\n",
"for curr_files in tets_name_files:\n",
" _b5.download_file_from_url(url = domain + curr_files, out = True)\n",
"\n",
"# Получение прогнозов\n",
"_b5.path_to_dataset_ = PATH_TO_DIR # Директория набора данных\n",
"_b5.ext_ = ['.mp4'] # Расширения искомых файлов\n",
"\n",
"# Полный путь к файлу с верными предсказаниями для подсчета точности\n",
"url_accuracy = _b5.true_traits_[corpus]['googledisk']\n",
"\n",
"_b5.get_avt_predictions(url_accuracy = url_accuracy, lang = 'en')"
]
},
{
"cell_type": "markdown",
"id": "bd399157-db76-4f5d-9324-c53fde65ccbe",
"metadata": {},
"source": [
"
\n",
"\n",
"Для прогнозирования потребительских предпочтений в промышленных товарах необходимо знать коэффициенты корреляции, определяющие взаимосвязь между персональными качествами личности человека и предпочтениями в товарах или услугах.\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и характеристиками автомобилей, представленными в статье:\n",
"\n",
"1) O'Connor P. J. et al. What Drives Consumer Automobile Choice? Investigating Personality Trait Predictors of Vehicle Preference Factors // Personality and Individual Differences. – 2022. – Vol. 184. – pp. 111220.\n",
"\n",
"Пользователь может установить свои коэффициенты корреляции."
]
},
{
"cell_type": "markdown",
"id": "13a9a3e6-31ad-414b-ac6c-1a4e30764d05",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений на характеристики атомобиля"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "e8d85c2a-1825-4f13-8ac7-a9033aa9a69a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Performance | \n",
" Classic car features | \n",
" Luxury additions | \n",
" Fashion and attention | \n",
" Recreation | \n",
" Technology | \n",
" Family friendly | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Basic features | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.020000 | \n",
" -0.033333 | \n",
" -0.030000 | \n",
" -0.050000 | \n",
" 0.033333 | \n",
" 0.013333 | \n",
" -0.030000 | \n",
" 0.136667 | \n",
" 0.106667 | \n",
" 0.093333 | \n",
" 0.006667 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" 0.013333 | \n",
" -0.193333 | \n",
" -0.063333 | \n",
" -0.096667 | \n",
" -0.096667 | \n",
" 0.086667 | \n",
" -0.063333 | \n",
" 0.280000 | \n",
" 0.180000 | \n",
" 0.130000 | \n",
" 0.143333 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" 0.133333 | \n",
" 0.060000 | \n",
" 0.106667 | \n",
" 0.123333 | \n",
" 0.126667 | \n",
" 0.120000 | \n",
" 0.090000 | \n",
" 0.136667 | \n",
" 0.043333 | \n",
" 0.073333 | \n",
" 0.050000 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" -0.036667 | \n",
" -0.193333 | \n",
" -0.133333 | \n",
" -0.133333 | \n",
" -0.090000 | \n",
" 0.046667 | \n",
" -0.016667 | \n",
" 0.240000 | \n",
" 0.160000 | \n",
" 0.120000 | \n",
" 0.083333 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.016667 | \n",
" -0.006667 | \n",
" -0.010000 | \n",
" -0.006667 | \n",
" -0.033333 | \n",
" 0.046667 | \n",
" -0.023333 | \n",
" 0.093333 | \n",
" 0.046667 | \n",
" 0.046667 | \n",
" -0.040000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Performance Classic car features Luxury additions \\\n",
"ID \n",
"1 Openness 0.020000 -0.033333 -0.030000 \n",
"2 Conscientiousness 0.013333 -0.193333 -0.063333 \n",
"3 Extraversion 0.133333 0.060000 0.106667 \n",
"4 Agreeableness -0.036667 -0.193333 -0.133333 \n",
"5 Non-Neuroticism 0.016667 -0.006667 -0.010000 \n",
"\n",
" Fashion and attention Recreation Technology Family friendly \\\n",
"ID \n",
"1 -0.050000 0.033333 0.013333 -0.030000 \n",
"2 -0.096667 -0.096667 0.086667 -0.063333 \n",
"3 0.123333 0.126667 0.120000 0.090000 \n",
"4 -0.133333 -0.090000 0.046667 -0.016667 \n",
"5 -0.006667 -0.033333 0.046667 -0.023333 \n",
"\n",
" Safe and reliable Practical and easy to use Economical/low cost \\\n",
"ID \n",
"1 0.136667 0.106667 0.093333 \n",
"2 0.280000 0.180000 0.130000 \n",
"3 0.136667 0.043333 0.073333 \n",
"4 0.240000 0.160000 0.120000 \n",
"5 0.093333 0.046667 0.046667 \n",
"\n",
" Basic features \n",
"ID \n",
"1 0.006667 \n",
"2 0.143333 \n",
"3 0.050000 \n",
"4 0.083333 \n",
"5 -0.040000 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/478675818?token=EjfLMqOeK8cfnOu&filename=auto_characteristics.csv'\n",
"df_correlation_coefficients = pd.read_csv(url)\n",
"df_correlation_coefficients = pd.DataFrame(\n",
" df_correlation_coefficients.drop(['Style and performance', 'Safety and practicality'], axis = 1)\n",
")\n",
"df_correlation_coefficients.index.name = 'ID'\n",
"df_correlation_coefficients.index += 1\n",
"df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)\n",
"\n",
"df_correlation_coefficients"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c35d30c6-1042-4bd3-abbc-48081e44fd06",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" 2d6btbaNdfo.000.mp4 | \n",
" 0.619 | \n",
" 0.661 | \n",
" 0.478 | \n",
" 0.654 | \n",
" 0.601 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 2 | \n",
" 300gK3CnzW0.001.mp4 | \n",
" 0.462 | \n",
" 0.413 | \n",
" 0.416 | \n",
" 0.498 | \n",
" 0.431 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 3 | \n",
" 300gK3CnzW0.003.mp4 | \n",
" 0.468 | \n",
" 0.449 | \n",
" 0.372 | \n",
" 0.510 | \n",
" 0.454 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 4 | \n",
" 4vdJGgZpj4k.003.mp4 | \n",
" 0.585 | \n",
" 0.616 | \n",
" 0.494 | \n",
" 0.606 | \n",
" 0.587 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 5 | \n",
" be0DQawtVkE.002.mp4 | \n",
" 0.681 | \n",
" 0.566 | \n",
" 0.554 | \n",
" 0.647 | \n",
" 0.642 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 6 | \n",
" cLaZxEf1nE4.004.mp4 | \n",
" 0.663 | \n",
" 0.551 | \n",
" 0.558 | \n",
" 0.585 | \n",
" 0.587 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 7 | \n",
" g24JGYuT74A.004.mp4 | \n",
" 0.590 | \n",
" 0.399 | \n",
" 0.410 | \n",
" 0.532 | \n",
" 0.507 | \n",
" Classic car features | \n",
" Recreation | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 8 | \n",
" JZNMxa3OKHY.000.mp4 | \n",
" 0.606 | \n",
" 0.524 | \n",
" 0.531 | \n",
" 0.594 | \n",
" 0.580 | \n",
" Practical and easy to use | \n",
" Safe and reliable | \n",
" Economical/low cost | \n",
" Agreeableness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 9 | \n",
" nvlqJbHk_Lc.003.mp4 | \n",
" 0.511 | \n",
" 0.465 | \n",
" 0.391 | \n",
" 0.444 | \n",
" 0.439 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 10 | \n",
" _plk5k7PBEg.003.mp4 | \n",
" 0.648 | \n",
" 0.610 | \n",
" 0.525 | \n",
" 0.614 | \n",
" 0.606 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 2d6btbaNdfo.000.mp4 0.619 0.661 0.478 0.654 0.601 \n",
"2 300gK3CnzW0.001.mp4 0.462 0.413 0.416 0.498 0.431 \n",
"3 300gK3CnzW0.003.mp4 0.468 0.449 0.372 0.510 0.454 \n",
"4 4vdJGgZpj4k.003.mp4 0.585 0.616 0.494 0.606 0.587 \n",
"5 be0DQawtVkE.002.mp4 0.681 0.566 0.554 0.647 0.642 \n",
"6 cLaZxEf1nE4.004.mp4 0.663 0.551 0.558 0.585 0.587 \n",
"7 g24JGYuT74A.004.mp4 0.590 0.399 0.410 0.532 0.507 \n",
"8 JZNMxa3OKHY.000.mp4 0.606 0.524 0.531 0.594 0.580 \n",
"9 nvlqJbHk_Lc.003.mp4 0.511 0.465 0.391 0.444 0.439 \n",
"10 _plk5k7PBEg.003.mp4 0.648 0.610 0.525 0.614 0.606 \n",
"\n",
" Priority 1 Priority 2 \\\n",
"Person ID \n",
"1 Safe and reliable Practical and easy to use \n",
"2 Classic car features Fashion and attention \n",
"3 Classic car features Fashion and attention \n",
"4 Safe and reliable Practical and easy to use \n",
"5 Safe and reliable Practical and easy to use \n",
"6 Safe and reliable Practical and easy to use \n",
"7 Classic car features Recreation \n",
"8 Practical and easy to use Safe and reliable \n",
"9 Classic car features Fashion and attention \n",
"10 Safe and reliable Practical and easy to use \n",
"\n",
" Priority 3 Trait importance 1 Trait importance 2 \\\n",
"Person ID \n",
"1 Economical/low cost Conscientiousness Agreeableness \n",
"2 Luxury additions Agreeableness Conscientiousness \n",
"3 Luxury additions Agreeableness Conscientiousness \n",
"4 Economical/low cost Conscientiousness Agreeableness \n",
"5 Economical/low cost Agreeableness Conscientiousness \n",
"6 Economical/low cost Conscientiousness Agreeableness \n",
"7 Luxury additions Agreeableness Conscientiousness \n",
"8 Economical/low cost Agreeableness Openness \n",
"9 Luxury additions Agreeableness Conscientiousness \n",
"10 Economical/low cost Conscientiousness Agreeableness \n",
"\n",
" Trait importance 3 \n",
"Person ID \n",
"1 Openness \n",
"2 Openness \n",
"3 Openness \n",
"4 Openness \n",
"5 Openness \n",
"6 Openness \n",
"7 Non-Neuroticism \n",
"8 Non-Neuroticism \n",
"9 Openness \n",
"10 Openness "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_correlation_coefficients,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = False\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'auto_characteristics_priorities_fi_en', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "2101ce2f-aa33-4ff6-a040-ace532eae864",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений на характеристики мобильного устройства\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и характеристиками мобильного устройства, представленными в статье:\n",
"\n",
"1) Peltonen E., Sharmila P., Asare K. O., Visuri A., Lagerspetz E., Ferreira D. (2020). When phones get personal: Predicting Big Five personality traits from application usage // Pervasive and Mobile Computing. – 2020. – Vol. 69. – 101269."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "4ed78d61-f5c7-4437-8e26-414fd2b3c9a1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Communication | \n",
" Game Action | \n",
" Game Board | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Simulation | \n",
" Game Trivia | \n",
" Entertainment | \n",
" Finance | \n",
" Health and Fitness | \n",
" Media and Video | \n",
" Music and Audio | \n",
" News and Magazines | \n",
" Personalisation | \n",
" Travel and Local | \n",
" Weather | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.118 | \n",
" 0.056 | \n",
" 0.079 | \n",
" 0.342 | \n",
" 0.027 | \n",
" 0.104 | \n",
" 0.026 | \n",
" 0.000 | \n",
" 0.006 | \n",
" 0.002 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.002 | \n",
" 0.004 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" 0.119 | \n",
" 0.043 | \n",
" 0.107 | \n",
" 0.448 | \n",
" 0.039 | \n",
" 0.012 | \n",
" 0.119 | \n",
" 0.000 | \n",
" 0.005 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.002 | \n",
" 0.002 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" 0.246 | \n",
" 0.182 | \n",
" 0.211 | \n",
" 0.311 | \n",
" 0.102 | \n",
" 0.165 | \n",
" 0.223 | \n",
" 0.001 | \n",
" 0.003 | \n",
" 0.000 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.009 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" 0.218 | \n",
" 0.104 | \n",
" 0.164 | \n",
" 0.284 | \n",
" 0.165 | \n",
" 0.122 | \n",
" 0.162 | \n",
" 0.000 | \n",
" 0.003 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.002 | \n",
" 0.002 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.046 | \n",
" 0.047 | \n",
" 0.125 | \n",
" 0.515 | \n",
" 0.272 | \n",
" 0.179 | \n",
" 0.214 | \n",
" 0.002 | \n",
" 0.030 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.005 | \n",
" 0.003 | \n",
" 0.008 | \n",
" 0.004 | \n",
" 0.007 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Communication Game Action Game Board Game Casino \\\n",
"ID \n",
"1 Openness 0.118 0.056 0.079 0.342 \n",
"2 Conscientiousness 0.119 0.043 0.107 0.448 \n",
"3 Extraversion 0.246 0.182 0.211 0.311 \n",
"4 Agreeableness 0.218 0.104 0.164 0.284 \n",
"5 Non-Neuroticism 0.046 0.047 0.125 0.515 \n",
"\n",
" Game Educational Game Simulation Game Trivia Entertainment Finance \\\n",
"ID \n",
"1 0.027 0.104 0.026 0.000 0.006 \n",
"2 0.039 0.012 0.119 0.000 0.005 \n",
"3 0.102 0.165 0.223 0.001 0.003 \n",
"4 0.165 0.122 0.162 0.000 0.003 \n",
"5 0.272 0.179 0.214 0.002 0.030 \n",
"\n",
" Health and Fitness Media and Video Music and Audio News and Magazines \\\n",
"ID \n",
"1 0.002 0.000 0.000 0.001 \n",
"2 0.001 0.000 0.002 0.002 \n",
"3 0.000 0.001 0.001 0.001 \n",
"4 0.001 0.000 0.002 0.002 \n",
"5 0.001 0.000 0.005 0.003 \n",
"\n",
" Personalisation Travel and Local Weather \n",
"ID \n",
"1 0.004 0.002 0.004 \n",
"2 0.001 0.001 0.003 \n",
"3 0.004 0.009 0.003 \n",
"4 0.001 0.004 0.003 \n",
"5 0.008 0.004 0.007 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/478676690?token=7KcAxPqMpWiYQnx&filename=divice_characteristics.csv'\n",
"df_divice_characteristics = pd.read_csv(url)\n",
"\n",
"df_divice_characteristics.index.name = 'ID'\n",
"df_divice_characteristics.index += 1\n",
"df_divice_characteristics.index = df_divice_characteristics.index.map(str)\n",
"\n",
"df_divice_characteristics"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0807e4a4-f25f-4b1e-9a62-e381bba795d5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" 2d6btbaNdfo.000.mp4 | \n",
" 0.619 | \n",
" 0.661 | \n",
" 0.478 | \n",
" 0.654 | \n",
" 0.601 | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Trivia | \n",
" Non-Neuroticism | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 2 | \n",
" 300gK3CnzW0.001.mp4 | \n",
" 0.462 | \n",
" 0.413 | \n",
" 0.416 | \n",
" 0.498 | \n",
" 0.431 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 3 | \n",
" 300gK3CnzW0.003.mp4 | \n",
" 0.468 | \n",
" 0.449 | \n",
" 0.372 | \n",
" 0.510 | \n",
" 0.454 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 4 | \n",
" 4vdJGgZpj4k.003.mp4 | \n",
" 0.585 | \n",
" 0.616 | \n",
" 0.494 | \n",
" 0.606 | \n",
" 0.587 | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Trivia | \n",
" Non-Neuroticism | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 5 | \n",
" be0DQawtVkE.002.mp4 | \n",
" 0.681 | \n",
" 0.566 | \n",
" 0.554 | \n",
" 0.647 | \n",
" 0.642 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Trivia | \n",
" Non-Neuroticism | \n",
" Extraversion | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 6 | \n",
" cLaZxEf1nE4.004.mp4 | \n",
" 0.663 | \n",
" 0.551 | \n",
" 0.558 | \n",
" 0.585 | \n",
" 0.587 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Trivia | \n",
" Non-Neuroticism | \n",
" Extraversion | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 7 | \n",
" g24JGYuT74A.004.mp4 | \n",
" 0.590 | \n",
" 0.399 | \n",
" 0.410 | \n",
" 0.532 | \n",
" 0.507 | \n",
" Health and Fitness | \n",
" Media and Video | \n",
" Entertainment | \n",
" Openness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 8 | \n",
" JZNMxa3OKHY.000.mp4 | \n",
" 0.606 | \n",
" 0.524 | \n",
" 0.531 | \n",
" 0.594 | \n",
" 0.580 | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Simulation | \n",
" Non-Neuroticism | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 9 | \n",
" nvlqJbHk_Lc.003.mp4 | \n",
" 0.511 | \n",
" 0.465 | \n",
" 0.391 | \n",
" 0.444 | \n",
" 0.439 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 10 | \n",
" _plk5k7PBEg.003.mp4 | \n",
" 0.648 | \n",
" 0.610 | \n",
" 0.525 | \n",
" 0.614 | \n",
" 0.606 | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Trivia | \n",
" Non-Neuroticism | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 2d6btbaNdfo.000.mp4 0.619 0.661 0.478 0.654 0.601 \n",
"2 300gK3CnzW0.001.mp4 0.462 0.413 0.416 0.498 0.431 \n",
"3 300gK3CnzW0.003.mp4 0.468 0.449 0.372 0.510 0.454 \n",
"4 4vdJGgZpj4k.003.mp4 0.585 0.616 0.494 0.606 0.587 \n",
"5 be0DQawtVkE.002.mp4 0.681 0.566 0.554 0.647 0.642 \n",
"6 cLaZxEf1nE4.004.mp4 0.663 0.551 0.558 0.585 0.587 \n",
"7 g24JGYuT74A.004.mp4 0.590 0.399 0.410 0.532 0.507 \n",
"8 JZNMxa3OKHY.000.mp4 0.606 0.524 0.531 0.594 0.580 \n",
"9 nvlqJbHk_Lc.003.mp4 0.511 0.465 0.391 0.444 0.439 \n",
"10 _plk5k7PBEg.003.mp4 0.648 0.610 0.525 0.614 0.606 \n",
"\n",
" Priority 1 Priority 2 Priority 3 \\\n",
"Person ID \n",
"1 Game Casino Game Educational Game Trivia \n",
"2 Media and Video Entertainment Health and Fitness \n",
"3 Media and Video Entertainment Health and Fitness \n",
"4 Game Casino Game Educational Game Trivia \n",
"5 Game Casino Communication Game Trivia \n",
"6 Game Casino Communication Game Trivia \n",
"7 Health and Fitness Media and Video Entertainment \n",
"8 Game Casino Game Educational Game Simulation \n",
"9 Media and Video Entertainment Health and Fitness \n",
"10 Game Casino Game Educational Game Trivia \n",
"\n",
" Trait importance 1 Trait importance 2 Trait importance 3 \n",
"Person ID \n",
"1 Non-Neuroticism Conscientiousness Agreeableness \n",
"2 Conscientiousness Agreeableness Extraversion \n",
"3 Conscientiousness Agreeableness Extraversion \n",
"4 Non-Neuroticism Conscientiousness Agreeableness \n",
"5 Non-Neuroticism Extraversion Agreeableness \n",
"6 Non-Neuroticism Extraversion Agreeableness \n",
"7 Openness Conscientiousness Agreeableness \n",
"8 Non-Neuroticism Agreeableness Openness \n",
"9 Agreeableness Conscientiousness Extraversion \n",
"10 Non-Neuroticism Agreeableness Conscientiousness "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_divice_characteristics,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = True\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'divice_characteristics_priorities_fi_en', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "dca42ad9",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений по стилю одежды\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и стилем одежды, представленными в статье:\n",
"\n",
"1) Stolovy T. Styling the self: clothing practices, personality traits, and body image among Israeli women // Frontiers in psychology. - 2022. - vol. 12. - 719318."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "29e56565",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Comfort | \n",
" Camouflage | \n",
" Assurance | \n",
" Fashion | \n",
" Individuality | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.01 | \n",
" -0.24 | \n",
" 0.31 | \n",
" 0.07 | \n",
" 0.31 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" -0.03 | \n",
" -0.24 | \n",
" 0.17 | \n",
" 0.09 | \n",
" 0.15 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" -0.01 | \n",
" -0.19 | \n",
" 0.30 | \n",
" 0.13 | \n",
" 0.14 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" 0.16 | \n",
" -0.16 | \n",
" 0.15 | \n",
" -0.09 | \n",
" -0.05 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.03 | \n",
" -0.16 | \n",
" 0.01 | \n",
" 0.00 | \n",
" 0.06 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Comfort Camouflage Assurance Fashion Individuality\n",
"ID \n",
"1 Openness 0.01 -0.24 0.31 0.07 0.31\n",
"2 Conscientiousness -0.03 -0.24 0.17 0.09 0.15\n",
"3 Extraversion -0.01 -0.19 0.30 0.13 0.14\n",
"4 Agreeableness 0.16 -0.16 0.15 -0.09 -0.05\n",
"5 Non-Neuroticism 0.03 -0.16 0.01 0.00 0.06"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/493644097?token=KGtSGMxjZtWXmBz&filename=df_%D1%81lothing_style_correlation.csv'\n",
"df_clothing_styles = pd.read_csv(url)\n",
"\n",
"df_clothing_styles.index.name = 'ID'\n",
"df_clothing_styles.index += 1\n",
"df_clothing_styles.index = df_clothing_styles.index.map(str)\n",
"\n",
"df_clothing_styles"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "d1f56a50",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" 2d6btbaNdfo.000.mp4 | \n",
" 0.619 | \n",
" 0.661 | \n",
" 0.478 | \n",
" 0.654 | \n",
" 0.601 | \n",
" Assurance | \n",
" Individuality | \n",
" Comfort | \n",
" Openness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 2 | \n",
" 300gK3CnzW0.001.mp4 | \n",
" 0.462 | \n",
" 0.413 | \n",
" 0.416 | \n",
" 0.498 | \n",
" 0.431 | \n",
" Camouflage | \n",
" Fashion | \n",
" Comfort | \n",
" Conscientiousness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 3 | \n",
" 300gK3CnzW0.003.mp4 | \n",
" 0.468 | \n",
" 0.449 | \n",
" 0.372 | \n",
" 0.510 | \n",
" 0.454 | \n",
" Camouflage | \n",
" Fashion | \n",
" Comfort | \n",
" Conscientiousness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 4 | \n",
" 4vdJGgZpj4k.003.mp4 | \n",
" 0.585 | \n",
" 0.616 | \n",
" 0.494 | \n",
" 0.606 | \n",
" 0.587 | \n",
" Assurance | \n",
" Individuality | \n",
" Comfort | \n",
" Openness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 5 | \n",
" be0DQawtVkE.002.mp4 | \n",
" 0.681 | \n",
" 0.566 | \n",
" 0.554 | \n",
" 0.647 | \n",
" 0.642 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 6 | \n",
" cLaZxEf1nE4.004.mp4 | \n",
" 0.663 | \n",
" 0.551 | \n",
" 0.558 | \n",
" 0.585 | \n",
" 0.587 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 7 | \n",
" g24JGYuT74A.004.mp4 | \n",
" 0.590 | \n",
" 0.399 | \n",
" 0.410 | \n",
" 0.532 | \n",
" 0.507 | \n",
" Camouflage | \n",
" Individuality | \n",
" Fashion | \n",
" Agreeableness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 8 | \n",
" JZNMxa3OKHY.000.mp4 | \n",
" 0.606 | \n",
" 0.524 | \n",
" 0.531 | \n",
" 0.594 | \n",
" 0.580 | \n",
" Comfort | \n",
" Individuality | \n",
" Assurance | \n",
" Openness | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 9 | \n",
" nvlqJbHk_Lc.003.mp4 | \n",
" 0.511 | \n",
" 0.465 | \n",
" 0.391 | \n",
" 0.444 | \n",
" 0.439 | \n",
" Camouflage | \n",
" Comfort | \n",
" Fashion | \n",
" Conscientiousness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 10 | \n",
" _plk5k7PBEg.003.mp4 | \n",
" 0.648 | \n",
" 0.610 | \n",
" 0.525 | \n",
" 0.614 | \n",
" 0.606 | \n",
" Assurance | \n",
" Individuality | \n",
" Comfort | \n",
" Openness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU Priority 1 \\\n",
"Person ID \n",
"1 2d6btbaNdfo.000.mp4 0.619 0.661 0.478 0.654 0.601 Assurance \n",
"2 300gK3CnzW0.001.mp4 0.462 0.413 0.416 0.498 0.431 Camouflage \n",
"3 300gK3CnzW0.003.mp4 0.468 0.449 0.372 0.510 0.454 Camouflage \n",
"4 4vdJGgZpj4k.003.mp4 0.585 0.616 0.494 0.606 0.587 Assurance \n",
"5 be0DQawtVkE.002.mp4 0.681 0.566 0.554 0.647 0.642 Assurance \n",
"6 cLaZxEf1nE4.004.mp4 0.663 0.551 0.558 0.585 0.587 Assurance \n",
"7 g24JGYuT74A.004.mp4 0.590 0.399 0.410 0.532 0.507 Camouflage \n",
"8 JZNMxa3OKHY.000.mp4 0.606 0.524 0.531 0.594 0.580 Comfort \n",
"9 nvlqJbHk_Lc.003.mp4 0.511 0.465 0.391 0.444 0.439 Camouflage \n",
"10 _plk5k7PBEg.003.mp4 0.648 0.610 0.525 0.614 0.606 Assurance \n",
"\n",
" Priority 2 Priority 3 Trait importance 1 Trait importance 2 \\\n",
"Person ID \n",
"1 Individuality Comfort Openness Conscientiousness \n",
"2 Fashion Comfort Conscientiousness Openness \n",
"3 Fashion Comfort Conscientiousness Openness \n",
"4 Individuality Comfort Openness Conscientiousness \n",
"5 Individuality Fashion Openness Extraversion \n",
"6 Individuality Fashion Openness Extraversion \n",
"7 Individuality Fashion Agreeableness Openness \n",
"8 Individuality Assurance Openness Agreeableness \n",
"9 Comfort Fashion Conscientiousness Openness \n",
"10 Individuality Comfort Openness Conscientiousness \n",
"\n",
" Trait importance 3 \n",
"Person ID \n",
"1 Agreeableness \n",
"2 Non-Neuroticism \n",
"3 Non-Neuroticism \n",
"4 Agreeableness \n",
"5 Conscientiousness \n",
"6 Conscientiousness \n",
"7 Non-Neuroticism \n",
"8 Non-Neuroticism \n",
"9 Non-Neuroticism \n",
"10 Agreeableness "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_clothing_styles,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = True\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'clothing_styles_priorities_fi_en', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "2297292e-1e4b-44e0-9c85-ab0fba999892",
"metadata": {},
"source": [
"### `MuPTA` (ru)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3887d07c-eef2-4980-8d82-cabf6568aa7d",
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"**[2024-10-10 18:20:29] Извлечение признаков (экспертных и нейросетевых) из текста ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:20:30] Получение прогнозов и вычисление точности (мультимодальное объединение) ...** 10 из 10 (100.0%) ... GitHub\\OCEANAI\\docs\\source\\user_guide\\notebooks\\video_MuPTA\\test\\speaker_27_center_83.mov ...
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" Openness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.765745 | \n",
" 0.696637 | \n",
" 0.656309 | \n",
" 0.75986 | \n",
" 0.494141 | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.686514 | \n",
" 0.659488 | \n",
" 0.611838 | \n",
" 0.749739 | \n",
" 0.420672 | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.671993 | \n",
" 0.661216 | \n",
" 0.571759 | \n",
" 0.704542 | \n",
" 0.381026 | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.69828 | \n",
" 0.59893 | \n",
" 0.571893 | \n",
" 0.674907 | \n",
" 0.35082 | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.718329 | \n",
" 0.598986 | \n",
" 0.573518 | \n",
" 0.73201 | \n",
" 0.379845 | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.670932 | \n",
" 0.671055 | \n",
" 0.602337 | \n",
" 0.708656 | \n",
" 0.399527 | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.767261 | \n",
" 0.658167 | \n",
" 0.653367 | \n",
" 0.801366 | \n",
" 0.463443 | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.699837 | \n",
" 0.684907 | \n",
" 0.616671 | \n",
" 0.806437 | \n",
" 0.447853 | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.710566 | \n",
" 0.66299 | \n",
" 0.610562 | \n",
" 0.711242 | \n",
" 0.413696 | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.759404 | \n",
" 0.712562 | \n",
" 0.658357 | \n",
" 0.830507 | \n",
" 0.507612 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path Openness Conscientiousness Extraversion \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.765745 0.696637 0.656309 \n",
"2 speaker_06_center_83.mov 0.686514 0.659488 0.611838 \n",
"3 speaker_07_center_83.mov 0.671993 0.661216 0.571759 \n",
"4 speaker_10_center_83.mov 0.69828 0.59893 0.571893 \n",
"5 speaker_11_center_83.mov 0.718329 0.598986 0.573518 \n",
"6 speaker_15_center_83.mov 0.670932 0.671055 0.602337 \n",
"7 speaker_19_center_83.mov 0.767261 0.658167 0.653367 \n",
"8 speaker_23_center_83.mov 0.699837 0.684907 0.616671 \n",
"9 speaker_24_center_83.mov 0.710566 0.66299 0.610562 \n",
"10 speaker_27_center_83.mov 0.759404 0.712562 0.658357 \n",
"\n",
" Agreeableness Non-Neuroticism \n",
"Person ID \n",
"1 0.75986 0.494141 \n",
"2 0.749739 0.420672 \n",
"3 0.704542 0.381026 \n",
"4 0.674907 0.35082 \n",
"5 0.73201 0.379845 \n",
"6 0.708656 0.399527 \n",
"7 0.801366 0.463443 \n",
"8 0.806437 0.447853 \n",
"9 0.711242 0.413696 \n",
"10 0.830507 0.507612 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:20:30] Точность по отдельным персональным качествам личности человека ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Openness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
" Mean | \n",
"
\n",
" \n",
" | Metrics | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | MAE | \n",
" 0.0706 | \n",
" 0.0788 | \n",
" 0.1328 | \n",
" 0.1071 | \n",
" 0.1002 | \n",
" 0.0979 | \n",
"
\n",
" \n",
" | Accuracy | \n",
" 0.9294 | \n",
" 0.9212 | \n",
" 0.8672 | \n",
" 0.8929 | \n",
" 0.8998 | \n",
" 0.9021 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Openness Conscientiousness Extraversion Agreeableness \\\n",
"Metrics \n",
"MAE 0.0706 0.0788 0.1328 0.1071 \n",
"Accuracy 0.9294 0.9212 0.8672 0.8929 \n",
"\n",
" Non-Neuroticism Mean \n",
"Metrics \n",
"MAE 0.1002 0.0979 \n",
"Accuracy 0.8998 0.9021 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:20:30] Средняя средних абсолютных ошибок: 0.0979, средняя точность: 0.9021 ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**Лог файлы успешно сохранены ...**"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**--- Время выполнения: 324.067 сек. ---**"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import os\n",
"import pandas as pd\n",
"\n",
"# Импорт модуля\n",
"from oceanai.modules.lab.build import Run\n",
"\n",
"# Создание экземпляра класса\n",
"_b5 = Run()\n",
"\n",
"corpus = 'mupta'\n",
"lang = 'ru'\n",
"\n",
"# Настройка ядра\n",
"_b5.path_to_save_ = './models' # Директория для сохранения файла\n",
"_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n",
"\n",
"# Формирование аудиомоделей\n",
"res_load_model_hc = _b5.load_audio_model_hc()\n",
"res_load_model_nn = _b5.load_audio_model_nn()\n",
"\n",
"# Загрузка весов аудиомоделей\n",
"url = _b5.weights_for_big5_['audio'][corpus]['hc']['googledisk']\n",
"res_load_model_weights_hc = _b5.load_audio_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['audio'][corpus]['nn']['googledisk']\n",
"res_load_model_weights_nn = _b5.load_audio_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Формирование видеомоделей\n",
"res_load_model_hc = _b5.load_video_model_hc(lang=lang)\n",
"res_load_model_deep_fe = _b5.load_video_model_deep_fe()\n",
"res_load_model_nn = _b5.load_video_model_nn()\n",
"\n",
"# Загрузка весов видеомоделей\n",
"url = _b5.weights_for_big5_['video'][corpus]['hc']['googledisk']\n",
"res_load_model_weights_hc = _b5.load_video_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['video'][corpus]['fe']['googledisk']\n",
"res_load_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['video'][corpus]['nn']['googledisk']\n",
"res_load_model_weights_nn = _b5.load_video_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Загрузка словаря с экспертными признаками (текстовая модальность)\n",
"res_load_text_features = _b5.load_text_features()\n",
"\n",
"# Формирование текстовых моделей \n",
"res_setup_translation_model = _b5.setup_translation_model() # только для русского языка\n",
"res_setup_translation_model = _b5.setup_bert_encoder(force_reload = False)\n",
"res_load_text_model_hc_fi = _b5.load_text_model_hc(corpus=corpus)\n",
"res_load_text_model_nn_fi = _b5.load_text_model_nn(corpus=corpus)\n",
"\n",
"# Загрузка весов текстовых моделей\n",
"url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']\n",
"res_load_text_model_weights_hc_fi = _b5.load_text_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']\n",
"res_load_text_model_weights_nn_fi = _b5.load_text_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Формирование модели для мультимодального объединения информации\n",
"res_load_avt_model_b5 = _b5.load_avt_model_b5()\n",
"\n",
"# Загрузка весов модели для мультимодального объединения информации\n",
"url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']\n",
"res_load_avt_model_weights_b5 = _b5.load_avt_model_weights_b5(url = url, force_reload = False)\n",
"\n",
"PATH_TO_DIR = './video_MuPTA/'\n",
"PATH_SAVE_VIDEO = './video_MuPTA/test/'\n",
"\n",
"_b5.path_to_save_ = PATH_SAVE_VIDEO\n",
"\n",
"# Загрузка 10 тестовых аудиовидеозаписей из корпуса MuPTA\n",
"# URL: https://hci.nw.ru/en/pages/mupta-corpus\n",
"domain = 'https://download.sberdisk.ru/download/file/'\n",
"tets_name_files = [\n",
" '477995979?token=2cvyk7CS0mHx2MJ&filename=speaker_06_center_83.mov',\n",
" '477995980?token=jGPtBPS69uzFU6Y&filename=speaker_01_center_83.mov',\n",
" '477995967?token=zCaRbNB6ht5wMPq&filename=speaker_11_center_83.mov',\n",
" '477995966?token=B1rbinDYRQKrI3T&filename=speaker_15_center_83.mov',\n",
" '477995978?token=dEpVDtZg1EQiEQ9&filename=speaker_07_center_83.mov',\n",
" '477995961?token=o1hVjw8G45q9L9Z&filename=speaker_19_center_83.mov',\n",
" '477995964?token=5K220Aqf673VHPq&filename=speaker_23_center_83.mov',\n",
" '477995965?token=v1LVD2KT1cU7Lpb&filename=speaker_24_center_83.mov',\n",
" '477995962?token=tmaSGyyWLA6XCy9&filename=speaker_27_center_83.mov',\n",
" '477995963?token=bTpo96qNDPcwGqb&filename=speaker_10_center_83.mov',\n",
"]\n",
"\n",
"for curr_files in tets_name_files:\n",
" _b5.download_file_from_url(url = domain + curr_files, out = True)\n",
"\n",
"# Получение прогнозов\n",
"_b5.path_to_dataset_ = PATH_TO_DIR # Директория набора данных\n",
"_b5.ext_ = ['.mov'] # Расширения искомых файлов\n",
"\n",
"# Полный путь к файлу с верными предсказаниями для подсчета точности\n",
"url_accuracy = _b5.true_traits_['mupta']['sberdisk']\n",
"\n",
"_b5.get_avt_predictions(url_accuracy = url_accuracy, lang = lang)"
]
},
{
"cell_type": "markdown",
"id": "193025ae-0e9e-4a91-a3df-8f3bfc395a9d",
"metadata": {},
"source": [
"
\n",
"\n",
"Для прогнозирования потребительских предпочтений в промышленных товарах необходимо знать коэффициенты корреляции, определяющие взаимосвязь между персональными качествами личности человека и предпочтениями в товарах или услугах.\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и характеристиками автомобилей, представленными в статье:\n",
"\n",
"1) O'Connor P. J. et al. What Drives Consumer Automobile Choice? Investigating Personality Trait Predictors of Vehicle Preference Factors // Personality and Individual Differences. – 2022. – Vol. 184. – pp. 111220.\n",
"\n",
"Пользователь может установить свои коэффициенты корреляции."
]
},
{
"cell_type": "markdown",
"id": "1ef5d32b-bb48-4e0d-8cce-9d0cff815e80",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений на характеристики атомобиля"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f79ba8a2-c173-4d83-9cf7-d0c991c7bcc0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Performance | \n",
" Classic car features | \n",
" Luxury additions | \n",
" Fashion and attention | \n",
" Recreation | \n",
" Technology | \n",
" Family friendly | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Basic features | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.020000 | \n",
" -0.033333 | \n",
" -0.030000 | \n",
" -0.050000 | \n",
" 0.033333 | \n",
" 0.013333 | \n",
" -0.030000 | \n",
" 0.136667 | \n",
" 0.106667 | \n",
" 0.093333 | \n",
" 0.006667 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" 0.013333 | \n",
" -0.193333 | \n",
" -0.063333 | \n",
" -0.096667 | \n",
" -0.096667 | \n",
" 0.086667 | \n",
" -0.063333 | \n",
" 0.280000 | \n",
" 0.180000 | \n",
" 0.130000 | \n",
" 0.143333 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" 0.133333 | \n",
" 0.060000 | \n",
" 0.106667 | \n",
" 0.123333 | \n",
" 0.126667 | \n",
" 0.120000 | \n",
" 0.090000 | \n",
" 0.136667 | \n",
" 0.043333 | \n",
" 0.073333 | \n",
" 0.050000 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" -0.036667 | \n",
" -0.193333 | \n",
" -0.133333 | \n",
" -0.133333 | \n",
" -0.090000 | \n",
" 0.046667 | \n",
" -0.016667 | \n",
" 0.240000 | \n",
" 0.160000 | \n",
" 0.120000 | \n",
" 0.083333 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.016667 | \n",
" -0.006667 | \n",
" -0.010000 | \n",
" -0.006667 | \n",
" -0.033333 | \n",
" 0.046667 | \n",
" -0.023333 | \n",
" 0.093333 | \n",
" 0.046667 | \n",
" 0.046667 | \n",
" -0.040000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Performance Classic car features Luxury additions \\\n",
"ID \n",
"1 Openness 0.020000 -0.033333 -0.030000 \n",
"2 Conscientiousness 0.013333 -0.193333 -0.063333 \n",
"3 Extraversion 0.133333 0.060000 0.106667 \n",
"4 Agreeableness -0.036667 -0.193333 -0.133333 \n",
"5 Non-Neuroticism 0.016667 -0.006667 -0.010000 \n",
"\n",
" Fashion and attention Recreation Technology Family friendly \\\n",
"ID \n",
"1 -0.050000 0.033333 0.013333 -0.030000 \n",
"2 -0.096667 -0.096667 0.086667 -0.063333 \n",
"3 0.123333 0.126667 0.120000 0.090000 \n",
"4 -0.133333 -0.090000 0.046667 -0.016667 \n",
"5 -0.006667 -0.033333 0.046667 -0.023333 \n",
"\n",
" Safe and reliable Practical and easy to use Economical/low cost \\\n",
"ID \n",
"1 0.136667 0.106667 0.093333 \n",
"2 0.280000 0.180000 0.130000 \n",
"3 0.136667 0.043333 0.073333 \n",
"4 0.240000 0.160000 0.120000 \n",
"5 0.093333 0.046667 0.046667 \n",
"\n",
" Basic features \n",
"ID \n",
"1 0.006667 \n",
"2 0.143333 \n",
"3 0.050000 \n",
"4 0.083333 \n",
"5 -0.040000 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/478675818?token=EjfLMqOeK8cfnOu&filename=auto_characteristics.csv'\n",
"df_correlation_coefficients = pd.read_csv(url)\n",
"df_correlation_coefficients = pd.DataFrame(\n",
" df_correlation_coefficients.drop(['Style and performance', 'Safety and practicality'], axis = 1)\n",
")\n",
"df_correlation_coefficients.index.name = 'ID'\n",
"df_correlation_coefficients.index += 1\n",
"df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)\n",
"\n",
"df_correlation_coefficients"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "16e43257-3500-4dd8-b04a-34f7435fc185",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.766 | \n",
" 0.697 | \n",
" 0.656 | \n",
" 0.760 | \n",
" 0.494 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.687 | \n",
" 0.659 | \n",
" 0.612 | \n",
" 0.750 | \n",
" 0.421 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.672 | \n",
" 0.661 | \n",
" 0.572 | \n",
" 0.705 | \n",
" 0.381 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.698 | \n",
" 0.599 | \n",
" 0.572 | \n",
" 0.675 | \n",
" 0.351 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.718 | \n",
" 0.599 | \n",
" 0.574 | \n",
" 0.732 | \n",
" 0.380 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.671 | \n",
" 0.671 | \n",
" 0.602 | \n",
" 0.709 | \n",
" 0.400 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.767 | \n",
" 0.658 | \n",
" 0.653 | \n",
" 0.801 | \n",
" 0.463 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.700 | \n",
" 0.685 | \n",
" 0.617 | \n",
" 0.806 | \n",
" 0.448 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.711 | \n",
" 0.663 | \n",
" 0.611 | \n",
" 0.711 | \n",
" 0.414 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.759 | \n",
" 0.713 | \n",
" 0.658 | \n",
" 0.831 | \n",
" 0.508 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.766 0.697 0.656 0.760 0.494 \n",
"2 speaker_06_center_83.mov 0.687 0.659 0.612 0.750 0.421 \n",
"3 speaker_07_center_83.mov 0.672 0.661 0.572 0.705 0.381 \n",
"4 speaker_10_center_83.mov 0.698 0.599 0.572 0.675 0.351 \n",
"5 speaker_11_center_83.mov 0.718 0.599 0.574 0.732 0.380 \n",
"6 speaker_15_center_83.mov 0.671 0.671 0.602 0.709 0.400 \n",
"7 speaker_19_center_83.mov 0.767 0.658 0.653 0.801 0.463 \n",
"8 speaker_23_center_83.mov 0.700 0.685 0.617 0.806 0.448 \n",
"9 speaker_24_center_83.mov 0.711 0.663 0.611 0.711 0.414 \n",
"10 speaker_27_center_83.mov 0.759 0.713 0.658 0.831 0.508 \n",
"\n",
" Priority 1 Priority 2 Priority 3 \\\n",
"Person ID \n",
"1 Safe and reliable Practical and easy to use Economical/low cost \n",
"2 Safe and reliable Practical and easy to use Economical/low cost \n",
"3 Safe and reliable Practical and easy to use Economical/low cost \n",
"4 Safe and reliable Practical and easy to use Economical/low cost \n",
"5 Safe and reliable Practical and easy to use Economical/low cost \n",
"6 Safe and reliable Practical and easy to use Economical/low cost \n",
"7 Safe and reliable Practical and easy to use Economical/low cost \n",
"8 Safe and reliable Practical and easy to use Economical/low cost \n",
"9 Safe and reliable Practical and easy to use Economical/low cost \n",
"10 Safe and reliable Practical and easy to use Economical/low cost \n",
"\n",
" Trait importance 1 Trait importance 2 Trait importance 3 \n",
"Person ID \n",
"1 Conscientiousness Agreeableness Openness \n",
"2 Agreeableness Conscientiousness Openness \n",
"3 Conscientiousness Agreeableness Openness \n",
"4 Conscientiousness Agreeableness Openness \n",
"5 Agreeableness Conscientiousness Openness \n",
"6 Conscientiousness Agreeableness Openness \n",
"7 Agreeableness Conscientiousness Openness \n",
"8 Agreeableness Conscientiousness Openness \n",
"9 Conscientiousness Agreeableness Openness \n",
"10 Agreeableness Conscientiousness Openness "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_correlation_coefficients,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = False\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'auto_characteristics_priorities_mupta_ru', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "78e820f4-3f3d-43d2-b9b8-76d4b21efb78",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений на характеристики мобильного устройства\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и характеристиками мобильного устройства, представленными в статье:\n",
"\n",
"1) Peltonen E., Sharmila P., Asare K. O., Visuri A., Lagerspetz E., Ferreira D. (2020). When phones get personal: Predicting Big Five personality traits from application usage // Pervasive and Mobile Computing. – 2020. – Vol. 69. – 101269."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "069f1f9d-18c1-42a8-89b9-0f9659544210",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Communication | \n",
" Game Action | \n",
" Game Board | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Simulation | \n",
" Game Trivia | \n",
" Entertainment | \n",
" Finance | \n",
" Health and Fitness | \n",
" Media and Video | \n",
" Music and Audio | \n",
" News and Magazines | \n",
" Personalisation | \n",
" Travel and Local | \n",
" Weather | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.118 | \n",
" 0.056 | \n",
" 0.079 | \n",
" 0.342 | \n",
" 0.027 | \n",
" 0.104 | \n",
" 0.026 | \n",
" 0.000 | \n",
" 0.006 | \n",
" 0.002 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.002 | \n",
" 0.004 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" 0.119 | \n",
" 0.043 | \n",
" 0.107 | \n",
" 0.448 | \n",
" 0.039 | \n",
" 0.012 | \n",
" 0.119 | \n",
" 0.000 | \n",
" 0.005 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.002 | \n",
" 0.002 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" 0.246 | \n",
" 0.182 | \n",
" 0.211 | \n",
" 0.311 | \n",
" 0.102 | \n",
" 0.165 | \n",
" 0.223 | \n",
" 0.001 | \n",
" 0.003 | \n",
" 0.000 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.009 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" 0.218 | \n",
" 0.104 | \n",
" 0.164 | \n",
" 0.284 | \n",
" 0.165 | \n",
" 0.122 | \n",
" 0.162 | \n",
" 0.000 | \n",
" 0.003 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.002 | \n",
" 0.002 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.046 | \n",
" 0.047 | \n",
" 0.125 | \n",
" 0.515 | \n",
" 0.272 | \n",
" 0.179 | \n",
" 0.214 | \n",
" 0.002 | \n",
" 0.030 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.005 | \n",
" 0.003 | \n",
" 0.008 | \n",
" 0.004 | \n",
" 0.007 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Communication Game Action Game Board Game Casino \\\n",
"ID \n",
"1 Openness 0.118 0.056 0.079 0.342 \n",
"2 Conscientiousness 0.119 0.043 0.107 0.448 \n",
"3 Extraversion 0.246 0.182 0.211 0.311 \n",
"4 Agreeableness 0.218 0.104 0.164 0.284 \n",
"5 Non-Neuroticism 0.046 0.047 0.125 0.515 \n",
"\n",
" Game Educational Game Simulation Game Trivia Entertainment Finance \\\n",
"ID \n",
"1 0.027 0.104 0.026 0.000 0.006 \n",
"2 0.039 0.012 0.119 0.000 0.005 \n",
"3 0.102 0.165 0.223 0.001 0.003 \n",
"4 0.165 0.122 0.162 0.000 0.003 \n",
"5 0.272 0.179 0.214 0.002 0.030 \n",
"\n",
" Health and Fitness Media and Video Music and Audio News and Magazines \\\n",
"ID \n",
"1 0.002 0.000 0.000 0.001 \n",
"2 0.001 0.000 0.002 0.002 \n",
"3 0.000 0.001 0.001 0.001 \n",
"4 0.001 0.000 0.002 0.002 \n",
"5 0.001 0.000 0.005 0.003 \n",
"\n",
" Personalisation Travel and Local Weather \n",
"ID \n",
"1 0.004 0.002 0.004 \n",
"2 0.001 0.001 0.003 \n",
"3 0.004 0.009 0.003 \n",
"4 0.001 0.004 0.003 \n",
"5 0.008 0.004 0.007 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/478676690?token=7KcAxPqMpWiYQnx&filename=divice_characteristics.csv'\n",
"df_divice_characteristics = pd.read_csv(url)\n",
"\n",
"df_divice_characteristics.index.name = 'ID'\n",
"df_divice_characteristics.index += 1\n",
"df_divice_characteristics.index = df_divice_characteristics.index.map(str)\n",
"\n",
"df_divice_characteristics"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "08e50bb5-6da8-493f-9f3d-3bb1dbf0f5dc",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.766 | \n",
" 0.697 | \n",
" 0.656 | \n",
" 0.760 | \n",
" 0.494 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.687 | \n",
" 0.659 | \n",
" 0.612 | \n",
" 0.750 | \n",
" 0.421 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.672 | \n",
" 0.661 | \n",
" 0.572 | \n",
" 0.705 | \n",
" 0.381 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.698 | \n",
" 0.599 | \n",
" 0.572 | \n",
" 0.675 | \n",
" 0.351 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.718 | \n",
" 0.599 | \n",
" 0.574 | \n",
" 0.732 | \n",
" 0.380 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.671 | \n",
" 0.671 | \n",
" 0.602 | \n",
" 0.709 | \n",
" 0.400 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.767 | \n",
" 0.658 | \n",
" 0.653 | \n",
" 0.801 | \n",
" 0.463 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.700 | \n",
" 0.685 | \n",
" 0.617 | \n",
" 0.806 | \n",
" 0.448 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.711 | \n",
" 0.663 | \n",
" 0.611 | \n",
" 0.711 | \n",
" 0.414 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.759 | \n",
" 0.713 | \n",
" 0.658 | \n",
" 0.831 | \n",
" 0.508 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.766 0.697 0.656 0.760 0.494 \n",
"2 speaker_06_center_83.mov 0.687 0.659 0.612 0.750 0.421 \n",
"3 speaker_07_center_83.mov 0.672 0.661 0.572 0.705 0.381 \n",
"4 speaker_10_center_83.mov 0.698 0.599 0.572 0.675 0.351 \n",
"5 speaker_11_center_83.mov 0.718 0.599 0.574 0.732 0.380 \n",
"6 speaker_15_center_83.mov 0.671 0.671 0.602 0.709 0.400 \n",
"7 speaker_19_center_83.mov 0.767 0.658 0.653 0.801 0.463 \n",
"8 speaker_23_center_83.mov 0.700 0.685 0.617 0.806 0.448 \n",
"9 speaker_24_center_83.mov 0.711 0.663 0.611 0.711 0.414 \n",
"10 speaker_27_center_83.mov 0.759 0.713 0.658 0.831 0.508 \n",
"\n",
" Priority 1 Priority 2 Priority 3 Trait importance 1 \\\n",
"Person ID \n",
"1 Game Casino Communication Game Board Agreeableness \n",
"2 Game Casino Communication Game Board Agreeableness \n",
"3 Game Casino Communication Game Board Agreeableness \n",
"4 Game Casino Communication Game Board Agreeableness \n",
"5 Game Casino Communication Game Board Agreeableness \n",
"6 Game Casino Communication Game Board Agreeableness \n",
"7 Game Casino Communication Game Board Agreeableness \n",
"8 Game Casino Communication Game Board Agreeableness \n",
"9 Game Casino Communication Game Board Agreeableness \n",
"10 Game Casino Communication Game Board Agreeableness \n",
"\n",
" Trait importance 2 Trait importance 3 \n",
"Person ID \n",
"1 Extraversion Conscientiousness \n",
"2 Extraversion Conscientiousness \n",
"3 Conscientiousness Extraversion \n",
"4 Extraversion Conscientiousness \n",
"5 Extraversion Conscientiousness \n",
"6 Extraversion Conscientiousness \n",
"7 Extraversion Conscientiousness \n",
"8 Extraversion Conscientiousness \n",
"9 Extraversion Conscientiousness \n",
"10 Extraversion Conscientiousness "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_divice_characteristics,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = True\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'divice_characteristics_priorities_mupta_ru', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "60880e10",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений по стилю одежды\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и стилем одежды, представленными в статье:\n",
"\n",
"1) Stolovy T. Styling the self: clothing practices, personality traits, and body image among Israeli women // Frontiers in psychology. - 2022. - vol. 12. - 719318."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "34535a08",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Comfort | \n",
" Camouflage | \n",
" Assurance | \n",
" Fashion | \n",
" Individuality | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.01 | \n",
" -0.24 | \n",
" 0.31 | \n",
" 0.07 | \n",
" 0.31 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" -0.03 | \n",
" -0.24 | \n",
" 0.17 | \n",
" 0.09 | \n",
" 0.15 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" -0.01 | \n",
" -0.19 | \n",
" 0.30 | \n",
" 0.13 | \n",
" 0.14 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" 0.16 | \n",
" -0.16 | \n",
" 0.15 | \n",
" -0.09 | \n",
" -0.05 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.03 | \n",
" -0.16 | \n",
" 0.01 | \n",
" 0.00 | \n",
" 0.06 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Comfort Camouflage Assurance Fashion Individuality\n",
"ID \n",
"1 Openness 0.01 -0.24 0.31 0.07 0.31\n",
"2 Conscientiousness -0.03 -0.24 0.17 0.09 0.15\n",
"3 Extraversion -0.01 -0.19 0.30 0.13 0.14\n",
"4 Agreeableness 0.16 -0.16 0.15 -0.09 -0.05\n",
"5 Non-Neuroticism 0.03 -0.16 0.01 0.00 0.06"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/493644097?token=KGtSGMxjZtWXmBz&filename=df_%D1%81lothing_style_correlation.csv'\n",
"df_clothing_styles = pd.read_csv(url)\n",
"\n",
"df_clothing_styles.index.name = 'ID'\n",
"df_clothing_styles.index += 1\n",
"df_clothing_styles.index = df_clothing_styles.index.map(str)\n",
"\n",
"df_clothing_styles"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "eb95138b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.766 | \n",
" 0.697 | \n",
" 0.656 | \n",
" 0.760 | \n",
" 0.494 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.687 | \n",
" 0.659 | \n",
" 0.612 | \n",
" 0.750 | \n",
" 0.421 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.672 | \n",
" 0.661 | \n",
" 0.572 | \n",
" 0.705 | \n",
" 0.381 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.698 | \n",
" 0.599 | \n",
" 0.572 | \n",
" 0.675 | \n",
" 0.351 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.718 | \n",
" 0.599 | \n",
" 0.574 | \n",
" 0.732 | \n",
" 0.380 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.671 | \n",
" 0.671 | \n",
" 0.602 | \n",
" 0.709 | \n",
" 0.400 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.767 | \n",
" 0.658 | \n",
" 0.653 | \n",
" 0.801 | \n",
" 0.463 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.700 | \n",
" 0.685 | \n",
" 0.617 | \n",
" 0.806 | \n",
" 0.448 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.711 | \n",
" 0.663 | \n",
" 0.611 | \n",
" 0.711 | \n",
" 0.414 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.759 | \n",
" 0.713 | \n",
" 0.658 | \n",
" 0.831 | \n",
" 0.508 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.766 0.697 0.656 0.760 0.494 \n",
"2 speaker_06_center_83.mov 0.687 0.659 0.612 0.750 0.421 \n",
"3 speaker_07_center_83.mov 0.672 0.661 0.572 0.705 0.381 \n",
"4 speaker_10_center_83.mov 0.698 0.599 0.572 0.675 0.351 \n",
"5 speaker_11_center_83.mov 0.718 0.599 0.574 0.732 0.380 \n",
"6 speaker_15_center_83.mov 0.671 0.671 0.602 0.709 0.400 \n",
"7 speaker_19_center_83.mov 0.767 0.658 0.653 0.801 0.463 \n",
"8 speaker_23_center_83.mov 0.700 0.685 0.617 0.806 0.448 \n",
"9 speaker_24_center_83.mov 0.711 0.663 0.611 0.711 0.414 \n",
"10 speaker_27_center_83.mov 0.759 0.713 0.658 0.831 0.508 \n",
"\n",
" Priority 1 Priority 2 Priority 3 Trait importance 1 \\\n",
"Person ID \n",
"1 Assurance Individuality Fashion Openness \n",
"2 Assurance Individuality Fashion Openness \n",
"3 Assurance Individuality Fashion Openness \n",
"4 Assurance Individuality Fashion Openness \n",
"5 Assurance Individuality Fashion Openness \n",
"6 Assurance Individuality Fashion Openness \n",
"7 Assurance Individuality Fashion Openness \n",
"8 Assurance Individuality Fashion Openness \n",
"9 Assurance Individuality Fashion Openness \n",
"10 Assurance Individuality Fashion Openness \n",
"\n",
" Trait importance 2 Trait importance 3 \n",
"Person ID \n",
"1 Extraversion Conscientiousness \n",
"2 Extraversion Conscientiousness \n",
"3 Extraversion Conscientiousness \n",
"4 Extraversion Conscientiousness \n",
"5 Extraversion Conscientiousness \n",
"6 Extraversion Conscientiousness \n",
"7 Extraversion Conscientiousness \n",
"8 Extraversion Conscientiousness \n",
"9 Extraversion Conscientiousness \n",
"10 Extraversion Conscientiousness "
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_clothing_styles,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = True\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'clothing_styles_priorities_mupta_ru', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "708fcd2b-eb78-4f58-96d2-19298b8c26d9",
"metadata": {},
"source": [
"### `MuPTA` (en)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "1b1f1294-6f09-4827-85c6-75ccc7fbd375",
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"**[2024-10-10 18:29:55] Извлечение признаков (экспертных и нейросетевых) из текста ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:29:56] Получение прогнозов и вычисление точности (мультимодальное объединение) ...** 10 из 10 (100.0%) ... GitHub\\OCEANAI\\docs\\source\\user_guide\\notebooks\\video_MuPTA\\test\\speaker_27_center_83.mov ...
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" Openness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.59561 | \n",
" 0.542967 | \n",
" 0.440668 | \n",
" 0.589769 | \n",
" 0.515306 | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.661347 | \n",
" 0.673973 | \n",
" 0.603208 | \n",
" 0.64543 | \n",
" 0.6431 | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.439868 | \n",
" 0.465049 | \n",
" 0.284547 | \n",
" 0.422551 | \n",
" 0.396058 | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.47715 | \n",
" 0.502563 | \n",
" 0.373686 | \n",
" 0.441372 | \n",
" 0.424637 | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.403292 | \n",
" 0.344359 | \n",
" 0.317304 | \n",
" 0.422228 | \n",
" 0.384346 | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.581837 | \n",
" 0.562177 | \n",
" 0.504623 | \n",
" 0.602169 | \n",
" 0.522254 | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.510444 | \n",
" 0.448468 | \n",
" 0.425599 | \n",
" 0.451861 | \n",
" 0.447891 | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.500526 | \n",
" 0.541376 | \n",
" 0.308529 | \n",
" 0.441178 | \n",
" 0.452412 | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.427677 | \n",
" 0.511355 | \n",
" 0.301078 | \n",
" 0.434281 | \n",
" 0.442301 | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.566414 | \n",
" 0.659169 | \n",
" 0.434059 | \n",
" 0.59122 | \n",
" 0.579172 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path Openness Conscientiousness Extraversion \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.59561 0.542967 0.440668 \n",
"2 speaker_06_center_83.mov 0.661347 0.673973 0.603208 \n",
"3 speaker_07_center_83.mov 0.439868 0.465049 0.284547 \n",
"4 speaker_10_center_83.mov 0.47715 0.502563 0.373686 \n",
"5 speaker_11_center_83.mov 0.403292 0.344359 0.317304 \n",
"6 speaker_15_center_83.mov 0.581837 0.562177 0.504623 \n",
"7 speaker_19_center_83.mov 0.510444 0.448468 0.425599 \n",
"8 speaker_23_center_83.mov 0.500526 0.541376 0.308529 \n",
"9 speaker_24_center_83.mov 0.427677 0.511355 0.301078 \n",
"10 speaker_27_center_83.mov 0.566414 0.659169 0.434059 \n",
"\n",
" Agreeableness Non-Neuroticism \n",
"Person ID \n",
"1 0.589769 0.515306 \n",
"2 0.64543 0.6431 \n",
"3 0.422551 0.396058 \n",
"4 0.441372 0.424637 \n",
"5 0.422228 0.384346 \n",
"6 0.602169 0.522254 \n",
"7 0.451861 0.447891 \n",
"8 0.441178 0.452412 \n",
"9 0.434281 0.442301 \n",
"10 0.59122 0.579172 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:29:56] Точность по отдельным персональным качествам личности человека ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Openness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
" Mean | \n",
"
\n",
" \n",
" | Metrics | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | MAE | \n",
" 0.1632 | \n",
" 0.1621 | \n",
" 0.176 | \n",
" 0.2589 | \n",
" 0.1122 | \n",
" 0.1745 | \n",
"
\n",
" \n",
" | Accuracy | \n",
" 0.8368 | \n",
" 0.8379 | \n",
" 0.824 | \n",
" 0.7411 | \n",
" 0.8878 | \n",
" 0.8255 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Openness Conscientiousness Extraversion Agreeableness \\\n",
"Metrics \n",
"MAE 0.1632 0.1621 0.176 0.2589 \n",
"Accuracy 0.8368 0.8379 0.824 0.7411 \n",
"\n",
" Non-Neuroticism Mean \n",
"Metrics \n",
"MAE 0.1122 0.1745 \n",
"Accuracy 0.8878 0.8255 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**[2024-10-10 18:29:56] Средняя средних абсолютных ошибок: 0.1745, средняя точность: 0.8255 ...** "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**Лог файлы успешно сохранены ...**"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"**--- Время выполнения: 320.737 сек. ---**"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import os\n",
"import pandas as pd\n",
"\n",
"# Импорт модуля\n",
"from oceanai.modules.lab.build import Run\n",
"\n",
"# Создание экземпляра класса\n",
"_b5 = Run()\n",
"\n",
"corpus = 'fi'\n",
"lang = 'en'\n",
"\n",
"# Настройка ядра\n",
"_b5.path_to_save_ = './models' # Директория для сохранения файла\n",
"_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n",
"\n",
"# Формирование аудиомоделей\n",
"res_load_model_hc = _b5.load_audio_model_hc()\n",
"res_load_model_nn = _b5.load_audio_model_nn()\n",
"\n",
"# Загрузка весов аудиомоделей\n",
"url = _b5.weights_for_big5_['audio'][corpus]['hc']['googledisk']\n",
"res_load_model_weights_hc = _b5.load_audio_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['audio'][corpus]['nn']['googledisk']\n",
"res_load_model_weights_nn = _b5.load_audio_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Формирование видеомоделей\n",
"res_load_model_hc = _b5.load_video_model_hc(lang=lang)\n",
"res_load_model_deep_fe = _b5.load_video_model_deep_fe()\n",
"res_load_model_nn = _b5.load_video_model_nn()\n",
"\n",
"# Загрузка весов видеомоделей\n",
"url = _b5.weights_for_big5_['video'][corpus]['hc']['googledisk']\n",
"res_load_model_weights_hc = _b5.load_video_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['video'][corpus]['fe']['googledisk']\n",
"res_load_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['video'][corpus]['nn']['googledisk']\n",
"res_load_model_weights_nn = _b5.load_video_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Загрузка словаря с экспертными признаками (текстовая модальность)\n",
"res_load_text_features = _b5.load_text_features()\n",
"\n",
"# Формирование текстовых моделей \n",
"res_setup_translation_model = _b5.setup_translation_model() # только для русского языка\n",
"res_setup_translation_model = _b5.setup_bert_encoder(force_reload = False)\n",
"res_load_text_model_hc_fi = _b5.load_text_model_hc(corpus=corpus)\n",
"res_load_text_model_nn_fi = _b5.load_text_model_nn(corpus=corpus)\n",
"\n",
"# Загрузка весов текстовых моделей\n",
"url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']\n",
"res_load_text_model_weights_hc_fi = _b5.load_text_model_weights_hc(url = url, force_reload = False)\n",
"\n",
"url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']\n",
"res_load_text_model_weights_nn_fi = _b5.load_text_model_weights_nn(url = url, force_reload = False)\n",
"\n",
"# Формирование модели для мультимодального объединения информации\n",
"res_load_avt_model_b5 = _b5.load_avt_model_b5()\n",
"\n",
"# Загрузка весов модели для мультимодального объединения информации\n",
"url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']\n",
"res_load_avt_model_weights_b5 = _b5.load_avt_model_weights_b5(url = url, force_reload = False)\n",
"\n",
"PATH_TO_DIR = './video_MuPTA/'\n",
"PATH_SAVE_VIDEO = './video_MuPTA/test/'\n",
"\n",
"_b5.path_to_save_ = PATH_SAVE_VIDEO\n",
"\n",
"# Загрузка 10 тестовых аудиовидеозаписей из корпуса MuPTA\n",
"# URL: https://hci.nw.ru/en/pages/mupta-corpus\n",
"domain = 'https://download.sberdisk.ru/download/file/'\n",
"tets_name_files = [\n",
" '477995979?token=2cvyk7CS0mHx2MJ&filename=speaker_06_center_83.mov',\n",
" '477995980?token=jGPtBPS69uzFU6Y&filename=speaker_01_center_83.mov',\n",
" '477995967?token=zCaRbNB6ht5wMPq&filename=speaker_11_center_83.mov',\n",
" '477995966?token=B1rbinDYRQKrI3T&filename=speaker_15_center_83.mov',\n",
" '477995978?token=dEpVDtZg1EQiEQ9&filename=speaker_07_center_83.mov',\n",
" '477995961?token=o1hVjw8G45q9L9Z&filename=speaker_19_center_83.mov',\n",
" '477995964?token=5K220Aqf673VHPq&filename=speaker_23_center_83.mov',\n",
" '477995965?token=v1LVD2KT1cU7Lpb&filename=speaker_24_center_83.mov',\n",
" '477995962?token=tmaSGyyWLA6XCy9&filename=speaker_27_center_83.mov',\n",
" '477995963?token=bTpo96qNDPcwGqb&filename=speaker_10_center_83.mov',\n",
"]\n",
"\n",
"for curr_files in tets_name_files:\n",
" _b5.download_file_from_url(url = domain + curr_files, out = True)\n",
"\n",
"# Получение прогнозов\n",
"_b5.path_to_dataset_ = PATH_TO_DIR # Директория набора данных\n",
"_b5.ext_ = ['.mov'] # Расширения искомых файлов\n",
"\n",
"# Полный путь к файлу с верными предсказаниями для подсчета точности\n",
"url_accuracy = _b5.true_traits_['mupta']['sberdisk']\n",
"\n",
"_b5.get_avt_predictions(url_accuracy = url_accuracy, lang = lang)"
]
},
{
"cell_type": "markdown",
"id": "b7d2dceb-423d-463d-ba89-61603250689a",
"metadata": {},
"source": [
"
\n",
"\n",
"Для прогнозирования потребительских предпочтений в промышленных товарах необходимо знать коэффициенты корреляции, определяющие взаимосвязь между персональными качествами личности человека и предпочтениями в товарах или услугах.\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и характеристиками автомобилей, представленными в статье:\n",
"\n",
"1) O'Connor P. J. et al. What Drives Consumer Automobile Choice? Investigating Personality Trait Predictors of Vehicle Preference Factors // Personality and Individual Differences. – 2022. – Vol. 184. – pp. 111220.\n",
"\n",
"Пользователь может установить свои коэффициенты корреляции."
]
},
{
"cell_type": "markdown",
"id": "3e9151a3-d8bd-4c76-82b2-4ae935ac6ea0",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений на характеристики атомобиля"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "b38c6569-1558-447a-875d-5735451e8f26",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Performance | \n",
" Classic car features | \n",
" Luxury additions | \n",
" Fashion and attention | \n",
" Recreation | \n",
" Technology | \n",
" Family friendly | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Basic features | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.020000 | \n",
" -0.033333 | \n",
" -0.030000 | \n",
" -0.050000 | \n",
" 0.033333 | \n",
" 0.013333 | \n",
" -0.030000 | \n",
" 0.136667 | \n",
" 0.106667 | \n",
" 0.093333 | \n",
" 0.006667 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" 0.013333 | \n",
" -0.193333 | \n",
" -0.063333 | \n",
" -0.096667 | \n",
" -0.096667 | \n",
" 0.086667 | \n",
" -0.063333 | \n",
" 0.280000 | \n",
" 0.180000 | \n",
" 0.130000 | \n",
" 0.143333 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" 0.133333 | \n",
" 0.060000 | \n",
" 0.106667 | \n",
" 0.123333 | \n",
" 0.126667 | \n",
" 0.120000 | \n",
" 0.090000 | \n",
" 0.136667 | \n",
" 0.043333 | \n",
" 0.073333 | \n",
" 0.050000 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" -0.036667 | \n",
" -0.193333 | \n",
" -0.133333 | \n",
" -0.133333 | \n",
" -0.090000 | \n",
" 0.046667 | \n",
" -0.016667 | \n",
" 0.240000 | \n",
" 0.160000 | \n",
" 0.120000 | \n",
" 0.083333 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.016667 | \n",
" -0.006667 | \n",
" -0.010000 | \n",
" -0.006667 | \n",
" -0.033333 | \n",
" 0.046667 | \n",
" -0.023333 | \n",
" 0.093333 | \n",
" 0.046667 | \n",
" 0.046667 | \n",
" -0.040000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Performance Classic car features Luxury additions \\\n",
"ID \n",
"1 Openness 0.020000 -0.033333 -0.030000 \n",
"2 Conscientiousness 0.013333 -0.193333 -0.063333 \n",
"3 Extraversion 0.133333 0.060000 0.106667 \n",
"4 Agreeableness -0.036667 -0.193333 -0.133333 \n",
"5 Non-Neuroticism 0.016667 -0.006667 -0.010000 \n",
"\n",
" Fashion and attention Recreation Technology Family friendly \\\n",
"ID \n",
"1 -0.050000 0.033333 0.013333 -0.030000 \n",
"2 -0.096667 -0.096667 0.086667 -0.063333 \n",
"3 0.123333 0.126667 0.120000 0.090000 \n",
"4 -0.133333 -0.090000 0.046667 -0.016667 \n",
"5 -0.006667 -0.033333 0.046667 -0.023333 \n",
"\n",
" Safe and reliable Practical and easy to use Economical/low cost \\\n",
"ID \n",
"1 0.136667 0.106667 0.093333 \n",
"2 0.280000 0.180000 0.130000 \n",
"3 0.136667 0.043333 0.073333 \n",
"4 0.240000 0.160000 0.120000 \n",
"5 0.093333 0.046667 0.046667 \n",
"\n",
" Basic features \n",
"ID \n",
"1 0.006667 \n",
"2 0.143333 \n",
"3 0.050000 \n",
"4 0.083333 \n",
"5 -0.040000 "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/478675818?token=EjfLMqOeK8cfnOu&filename=auto_characteristics.csv'\n",
"df_correlation_coefficients = pd.read_csv(url)\n",
"df_correlation_coefficients = pd.DataFrame(\n",
" df_correlation_coefficients.drop(['Style and performance', 'Safety and practicality'], axis = 1)\n",
")\n",
"df_correlation_coefficients.index.name = 'ID'\n",
"df_correlation_coefficients.index += 1\n",
"df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)\n",
"\n",
"df_correlation_coefficients"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "6d095685-fda4-4943-9a0f-d0463a39798c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.596 | \n",
" 0.543 | \n",
" 0.441 | \n",
" 0.590 | \n",
" 0.515 | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Recreation | \n",
" Openness | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.661 | \n",
" 0.674 | \n",
" 0.603 | \n",
" 0.645 | \n",
" 0.643 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.440 | \n",
" 0.465 | \n",
" 0.285 | \n",
" 0.423 | \n",
" 0.396 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.477 | \n",
" 0.503 | \n",
" 0.374 | \n",
" 0.441 | \n",
" 0.425 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.403 | \n",
" 0.344 | \n",
" 0.317 | \n",
" 0.422 | \n",
" 0.384 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.582 | \n",
" 0.562 | \n",
" 0.505 | \n",
" 0.602 | \n",
" 0.522 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.510 | \n",
" 0.448 | \n",
" 0.426 | \n",
" 0.452 | \n",
" 0.448 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.501 | \n",
" 0.541 | \n",
" 0.309 | \n",
" 0.441 | \n",
" 0.452 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.428 | \n",
" 0.511 | \n",
" 0.301 | \n",
" 0.434 | \n",
" 0.442 | \n",
" Classic car features | \n",
" Fashion and attention | \n",
" Luxury additions | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.566 | \n",
" 0.659 | \n",
" 0.434 | \n",
" 0.591 | \n",
" 0.579 | \n",
" Safe and reliable | \n",
" Practical and easy to use | \n",
" Economical/low cost | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Openness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.596 0.543 0.441 0.590 0.515 \n",
"2 speaker_06_center_83.mov 0.661 0.674 0.603 0.645 0.643 \n",
"3 speaker_07_center_83.mov 0.440 0.465 0.285 0.423 0.396 \n",
"4 speaker_10_center_83.mov 0.477 0.503 0.374 0.441 0.425 \n",
"5 speaker_11_center_83.mov 0.403 0.344 0.317 0.422 0.384 \n",
"6 speaker_15_center_83.mov 0.582 0.562 0.505 0.602 0.522 \n",
"7 speaker_19_center_83.mov 0.510 0.448 0.426 0.452 0.448 \n",
"8 speaker_23_center_83.mov 0.501 0.541 0.309 0.441 0.452 \n",
"9 speaker_24_center_83.mov 0.428 0.511 0.301 0.434 0.442 \n",
"10 speaker_27_center_83.mov 0.566 0.659 0.434 0.591 0.579 \n",
"\n",
" Priority 1 Priority 2 \\\n",
"Person ID \n",
"1 Practical and easy to use Economical/low cost \n",
"2 Safe and reliable Practical and easy to use \n",
"3 Classic car features Fashion and attention \n",
"4 Classic car features Fashion and attention \n",
"5 Classic car features Fashion and attention \n",
"6 Safe and reliable Practical and easy to use \n",
"7 Classic car features Fashion and attention \n",
"8 Classic car features Fashion and attention \n",
"9 Classic car features Fashion and attention \n",
"10 Safe and reliable Practical and easy to use \n",
"\n",
" Priority 3 Trait importance 1 Trait importance 2 \\\n",
"Person ID \n",
"1 Recreation Openness Agreeableness \n",
"2 Economical/low cost Conscientiousness Agreeableness \n",
"3 Luxury additions Agreeableness Conscientiousness \n",
"4 Luxury additions Agreeableness Conscientiousness \n",
"5 Luxury additions Agreeableness Conscientiousness \n",
"6 Economical/low cost Conscientiousness Agreeableness \n",
"7 Luxury additions Agreeableness Conscientiousness \n",
"8 Luxury additions Agreeableness Conscientiousness \n",
"9 Luxury additions Agreeableness Conscientiousness \n",
"10 Economical/low cost Conscientiousness Agreeableness \n",
"\n",
" Trait importance 3 \n",
"Person ID \n",
"1 Non-Neuroticism \n",
"2 Openness \n",
"3 Openness \n",
"4 Openness \n",
"5 Openness \n",
"6 Openness \n",
"7 Openness \n",
"8 Openness \n",
"9 Openness \n",
"10 Openness "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_correlation_coefficients,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = False\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'auto_characteristics_priorities_mupta_en', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "7343080a-898e-4718-8d44-26f787c6cc24",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений на характеристики мобильного устройства\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и характеристиками мобильного устройства, представленными в статье:\n",
"\n",
"1) Peltonen E., Sharmila P., Asare K. O., Visuri A., Lagerspetz E., Ferreira D. (2020). When phones get personal: Predicting Big Five personality traits from application usage // Pervasive and Mobile Computing. – 2020. – Vol. 69. – 101269."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "bacc7c56-18f4-4575-9f9e-54a038bf5df8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Communication | \n",
" Game Action | \n",
" Game Board | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Simulation | \n",
" Game Trivia | \n",
" Entertainment | \n",
" Finance | \n",
" Health and Fitness | \n",
" Media and Video | \n",
" Music and Audio | \n",
" News and Magazines | \n",
" Personalisation | \n",
" Travel and Local | \n",
" Weather | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.118 | \n",
" 0.056 | \n",
" 0.079 | \n",
" 0.342 | \n",
" 0.027 | \n",
" 0.104 | \n",
" 0.026 | \n",
" 0.000 | \n",
" 0.006 | \n",
" 0.002 | \n",
" 0.000 | \n",
" 0.000 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.002 | \n",
" 0.004 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" 0.119 | \n",
" 0.043 | \n",
" 0.107 | \n",
" 0.448 | \n",
" 0.039 | \n",
" 0.012 | \n",
" 0.119 | \n",
" 0.000 | \n",
" 0.005 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.002 | \n",
" 0.002 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" 0.246 | \n",
" 0.182 | \n",
" 0.211 | \n",
" 0.311 | \n",
" 0.102 | \n",
" 0.165 | \n",
" 0.223 | \n",
" 0.001 | \n",
" 0.003 | \n",
" 0.000 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.009 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" 0.218 | \n",
" 0.104 | \n",
" 0.164 | \n",
" 0.284 | \n",
" 0.165 | \n",
" 0.122 | \n",
" 0.162 | \n",
" 0.000 | \n",
" 0.003 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.002 | \n",
" 0.002 | \n",
" 0.001 | \n",
" 0.004 | \n",
" 0.003 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.046 | \n",
" 0.047 | \n",
" 0.125 | \n",
" 0.515 | \n",
" 0.272 | \n",
" 0.179 | \n",
" 0.214 | \n",
" 0.002 | \n",
" 0.030 | \n",
" 0.001 | \n",
" 0.000 | \n",
" 0.005 | \n",
" 0.003 | \n",
" 0.008 | \n",
" 0.004 | \n",
" 0.007 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Communication Game Action Game Board Game Casino \\\n",
"ID \n",
"1 Openness 0.118 0.056 0.079 0.342 \n",
"2 Conscientiousness 0.119 0.043 0.107 0.448 \n",
"3 Extraversion 0.246 0.182 0.211 0.311 \n",
"4 Agreeableness 0.218 0.104 0.164 0.284 \n",
"5 Non-Neuroticism 0.046 0.047 0.125 0.515 \n",
"\n",
" Game Educational Game Simulation Game Trivia Entertainment Finance \\\n",
"ID \n",
"1 0.027 0.104 0.026 0.000 0.006 \n",
"2 0.039 0.012 0.119 0.000 0.005 \n",
"3 0.102 0.165 0.223 0.001 0.003 \n",
"4 0.165 0.122 0.162 0.000 0.003 \n",
"5 0.272 0.179 0.214 0.002 0.030 \n",
"\n",
" Health and Fitness Media and Video Music and Audio News and Magazines \\\n",
"ID \n",
"1 0.002 0.000 0.000 0.001 \n",
"2 0.001 0.000 0.002 0.002 \n",
"3 0.000 0.001 0.001 0.001 \n",
"4 0.001 0.000 0.002 0.002 \n",
"5 0.001 0.000 0.005 0.003 \n",
"\n",
" Personalisation Travel and Local Weather \n",
"ID \n",
"1 0.004 0.002 0.004 \n",
"2 0.001 0.001 0.003 \n",
"3 0.004 0.009 0.003 \n",
"4 0.001 0.004 0.003 \n",
"5 0.008 0.004 0.007 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/478676690?token=7KcAxPqMpWiYQnx&filename=divice_characteristics.csv'\n",
"df_divice_characteristics = pd.read_csv(url)\n",
"\n",
"df_divice_characteristics.index.name = 'ID'\n",
"df_divice_characteristics.index += 1\n",
"df_divice_characteristics.index = df_divice_characteristics.index.map(str)\n",
"\n",
"df_divice_characteristics"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "00356c08-6004-4fe2-b676-61301bebeff6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.596 | \n",
" 0.543 | \n",
" 0.441 | \n",
" 0.590 | \n",
" 0.515 | \n",
" Communication | \n",
" Health and Fitness | \n",
" Media and Video | \n",
" Agreeableness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.661 | \n",
" 0.674 | \n",
" 0.603 | \n",
" 0.645 | \n",
" 0.643 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Trivia | \n",
" Non-Neuroticism | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.440 | \n",
" 0.465 | \n",
" 0.285 | \n",
" 0.423 | \n",
" 0.396 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.477 | \n",
" 0.503 | \n",
" 0.374 | \n",
" 0.441 | \n",
" 0.425 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.403 | \n",
" 0.344 | \n",
" 0.317 | \n",
" 0.422 | \n",
" 0.384 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.582 | \n",
" 0.562 | \n",
" 0.505 | \n",
" 0.602 | \n",
" 0.522 | \n",
" Game Casino | \n",
" Communication | \n",
" Game Board | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Openness | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.510 | \n",
" 0.448 | \n",
" 0.426 | \n",
" 0.452 | \n",
" 0.448 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.501 | \n",
" 0.541 | \n",
" 0.309 | \n",
" 0.441 | \n",
" 0.452 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.428 | \n",
" 0.511 | \n",
" 0.301 | \n",
" 0.434 | \n",
" 0.442 | \n",
" Media and Video | \n",
" Entertainment | \n",
" Health and Fitness | \n",
" Agreeableness | \n",
" Conscientiousness | \n",
" Extraversion | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.566 | \n",
" 0.659 | \n",
" 0.434 | \n",
" 0.591 | \n",
" 0.579 | \n",
" Game Casino | \n",
" Game Educational | \n",
" Game Trivia | \n",
" Non-Neuroticism | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.596 0.543 0.441 0.590 0.515 \n",
"2 speaker_06_center_83.mov 0.661 0.674 0.603 0.645 0.643 \n",
"3 speaker_07_center_83.mov 0.440 0.465 0.285 0.423 0.396 \n",
"4 speaker_10_center_83.mov 0.477 0.503 0.374 0.441 0.425 \n",
"5 speaker_11_center_83.mov 0.403 0.344 0.317 0.422 0.384 \n",
"6 speaker_15_center_83.mov 0.582 0.562 0.505 0.602 0.522 \n",
"7 speaker_19_center_83.mov 0.510 0.448 0.426 0.452 0.448 \n",
"8 speaker_23_center_83.mov 0.501 0.541 0.309 0.441 0.452 \n",
"9 speaker_24_center_83.mov 0.428 0.511 0.301 0.434 0.442 \n",
"10 speaker_27_center_83.mov 0.566 0.659 0.434 0.591 0.579 \n",
"\n",
" Priority 1 Priority 2 Priority 3 \\\n",
"Person ID \n",
"1 Communication Health and Fitness Media and Video \n",
"2 Game Casino Communication Game Trivia \n",
"3 Media and Video Entertainment Health and Fitness \n",
"4 Media and Video Entertainment Health and Fitness \n",
"5 Media and Video Entertainment Health and Fitness \n",
"6 Game Casino Communication Game Board \n",
"7 Media and Video Entertainment Health and Fitness \n",
"8 Media and Video Entertainment Health and Fitness \n",
"9 Media and Video Entertainment Health and Fitness \n",
"10 Game Casino Game Educational Game Trivia \n",
"\n",
" Trait importance 1 Trait importance 2 Trait importance 3 \n",
"Person ID \n",
"1 Agreeableness Openness Non-Neuroticism \n",
"2 Non-Neuroticism Extraversion Conscientiousness \n",
"3 Agreeableness Conscientiousness Extraversion \n",
"4 Agreeableness Conscientiousness Extraversion \n",
"5 Conscientiousness Agreeableness Extraversion \n",
"6 Agreeableness Conscientiousness Openness \n",
"7 Conscientiousness Agreeableness Extraversion \n",
"8 Agreeableness Conscientiousness Extraversion \n",
"9 Agreeableness Conscientiousness Extraversion \n",
"10 Non-Neuroticism Conscientiousness Agreeableness "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_divice_characteristics,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = True\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'divice_characteristics_priorities_mupta_en', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "fb6b2c81",
"metadata": {},
"source": [
"#### Прогнозирование потребительских предпочтений по стилю одежды\n",
"\n",
"В качестве примера предлагается использование коэффициентов корреляции между персональными качествами человека и стилем одежды, представленными в статье:\n",
"\n",
"1) Stolovy T. Styling the self: clothing practices, personality traits, and body image among Israeli women // Frontiers in psychology. - 2022. - vol. 12. - 719318."
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "485acc90",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Trait | \n",
" Comfort | \n",
" Camouflage | \n",
" Assurance | \n",
" Fashion | \n",
" Individuality | \n",
"
\n",
" \n",
" | ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Openness | \n",
" 0.01 | \n",
" -0.24 | \n",
" 0.31 | \n",
" 0.07 | \n",
" 0.31 | \n",
"
\n",
" \n",
" | 2 | \n",
" Conscientiousness | \n",
" -0.03 | \n",
" -0.24 | \n",
" 0.17 | \n",
" 0.09 | \n",
" 0.15 | \n",
"
\n",
" \n",
" | 3 | \n",
" Extraversion | \n",
" -0.01 | \n",
" -0.19 | \n",
" 0.30 | \n",
" 0.13 | \n",
" 0.14 | \n",
"
\n",
" \n",
" | 4 | \n",
" Agreeableness | \n",
" 0.16 | \n",
" -0.16 | \n",
" 0.15 | \n",
" -0.09 | \n",
" -0.05 | \n",
"
\n",
" \n",
" | 5 | \n",
" Non-Neuroticism | \n",
" 0.03 | \n",
" -0.16 | \n",
" 0.01 | \n",
" 0.00 | \n",
" 0.06 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Trait Comfort Camouflage Assurance Fashion Individuality\n",
"ID \n",
"1 Openness 0.01 -0.24 0.31 0.07 0.31\n",
"2 Conscientiousness -0.03 -0.24 0.17 0.09 0.15\n",
"3 Extraversion -0.01 -0.19 0.30 0.13 0.14\n",
"4 Agreeableness 0.16 -0.16 0.15 -0.09 -0.05\n",
"5 Non-Neuroticism 0.03 -0.16 0.01 0.00 0.06"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Загрузка датафрейма с коэффициентами корреляции\n",
"url = 'https://download.sberdisk.ru/download/file/493644097?token=KGtSGMxjZtWXmBz&filename=df_%D1%81lothing_style_correlation.csv'\n",
"df_clothing_styles = pd.read_csv(url)\n",
"\n",
"df_clothing_styles.index.name = 'ID'\n",
"df_clothing_styles.index += 1\n",
"df_clothing_styles.index = df_clothing_styles.index.map(str)\n",
"\n",
"df_clothing_styles"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "1ca93f2e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Path | \n",
" OPE | \n",
" CON | \n",
" EXT | \n",
" AGR | \n",
" NNEU | \n",
" Priority 1 | \n",
" Priority 2 | \n",
" Priority 3 | \n",
" Trait importance 1 | \n",
" Trait importance 2 | \n",
" Trait importance 3 | \n",
"
\n",
" \n",
" | Person ID | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" speaker_01_center_83.mov | \n",
" 0.596 | \n",
" 0.543 | \n",
" 0.441 | \n",
" 0.590 | \n",
" 0.515 | \n",
" Comfort | \n",
" Camouflage | \n",
" Assurance | \n",
" Agreeableness | \n",
" Non-Neuroticism | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 2 | \n",
" speaker_06_center_83.mov | \n",
" 0.661 | \n",
" 0.674 | \n",
" 0.603 | \n",
" 0.645 | \n",
" 0.643 | \n",
" Assurance | \n",
" Individuality | \n",
" Fashion | \n",
" Openness | \n",
" Extraversion | \n",
" Conscientiousness | \n",
"
\n",
" \n",
" | 3 | \n",
" speaker_07_center_83.mov | \n",
" 0.440 | \n",
" 0.465 | \n",
" 0.285 | \n",
" 0.423 | \n",
" 0.396 | \n",
" Camouflage | \n",
" Comfort | \n",
" Fashion | \n",
" Conscientiousness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 4 | \n",
" speaker_10_center_83.mov | \n",
" 0.477 | \n",
" 0.503 | \n",
" 0.374 | \n",
" 0.441 | \n",
" 0.425 | \n",
" Camouflage | \n",
" Comfort | \n",
" Fashion | \n",
" Conscientiousness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 5 | \n",
" speaker_11_center_83.mov | \n",
" 0.403 | \n",
" 0.344 | \n",
" 0.317 | \n",
" 0.422 | \n",
" 0.384 | \n",
" Camouflage | \n",
" Fashion | \n",
" Comfort | \n",
" Openness | \n",
" Conscientiousness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 6 | \n",
" speaker_15_center_83.mov | \n",
" 0.582 | \n",
" 0.562 | \n",
" 0.505 | \n",
" 0.602 | \n",
" 0.522 | \n",
" Assurance | \n",
" Individuality | \n",
" Comfort | \n",
" Openness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
" | 7 | \n",
" speaker_19_center_83.mov | \n",
" 0.510 | \n",
" 0.448 | \n",
" 0.426 | \n",
" 0.452 | \n",
" 0.448 | \n",
" Camouflage | \n",
" Comfort | \n",
" Fashion | \n",
" Openness | \n",
" Conscientiousness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 8 | \n",
" speaker_23_center_83.mov | \n",
" 0.501 | \n",
" 0.541 | \n",
" 0.309 | \n",
" 0.441 | \n",
" 0.452 | \n",
" Camouflage | \n",
" Comfort | \n",
" Fashion | \n",
" Conscientiousness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 9 | \n",
" speaker_24_center_83.mov | \n",
" 0.428 | \n",
" 0.511 | \n",
" 0.301 | \n",
" 0.434 | \n",
" 0.442 | \n",
" Camouflage | \n",
" Comfort | \n",
" Fashion | \n",
" Conscientiousness | \n",
" Openness | \n",
" Non-Neuroticism | \n",
"
\n",
" \n",
" | 10 | \n",
" speaker_27_center_83.mov | \n",
" 0.566 | \n",
" 0.659 | \n",
" 0.434 | \n",
" 0.591 | \n",
" 0.579 | \n",
" Assurance | \n",
" Individuality | \n",
" Comfort | \n",
" Openness | \n",
" Conscientiousness | \n",
" Agreeableness | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Path OPE CON EXT AGR NNEU \\\n",
"Person ID \n",
"1 speaker_01_center_83.mov 0.596 0.543 0.441 0.590 0.515 \n",
"2 speaker_06_center_83.mov 0.661 0.674 0.603 0.645 0.643 \n",
"3 speaker_07_center_83.mov 0.440 0.465 0.285 0.423 0.396 \n",
"4 speaker_10_center_83.mov 0.477 0.503 0.374 0.441 0.425 \n",
"5 speaker_11_center_83.mov 0.403 0.344 0.317 0.422 0.384 \n",
"6 speaker_15_center_83.mov 0.582 0.562 0.505 0.602 0.522 \n",
"7 speaker_19_center_83.mov 0.510 0.448 0.426 0.452 0.448 \n",
"8 speaker_23_center_83.mov 0.501 0.541 0.309 0.441 0.452 \n",
"9 speaker_24_center_83.mov 0.428 0.511 0.301 0.434 0.442 \n",
"10 speaker_27_center_83.mov 0.566 0.659 0.434 0.591 0.579 \n",
"\n",
" Priority 1 Priority 2 Priority 3 Trait importance 1 \\\n",
"Person ID \n",
"1 Comfort Camouflage Assurance Agreeableness \n",
"2 Assurance Individuality Fashion Openness \n",
"3 Camouflage Comfort Fashion Conscientiousness \n",
"4 Camouflage Comfort Fashion Conscientiousness \n",
"5 Camouflage Fashion Comfort Openness \n",
"6 Assurance Individuality Comfort Openness \n",
"7 Camouflage Comfort Fashion Openness \n",
"8 Camouflage Comfort Fashion Conscientiousness \n",
"9 Camouflage Comfort Fashion Conscientiousness \n",
"10 Assurance Individuality Comfort Openness \n",
"\n",
" Trait importance 2 Trait importance 3 \n",
"Person ID \n",
"1 Non-Neuroticism Conscientiousness \n",
"2 Extraversion Conscientiousness \n",
"3 Openness Non-Neuroticism \n",
"4 Openness Non-Neuroticism \n",
"5 Conscientiousness Non-Neuroticism \n",
"6 Conscientiousness Agreeableness \n",
"7 Conscientiousness Non-Neuroticism \n",
"8 Openness Non-Neuroticism \n",
"9 Openness Non-Neuroticism \n",
"10 Conscientiousness Agreeableness "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_b5._priority_calculation(\n",
" correlation_coefficients = df_clothing_styles,\n",
" col_name_ocean = 'Trait',\n",
" threshold = 0.55,\n",
" number_priority = 3,\n",
" number_importance_traits = 3,\n",
" out = True\n",
")\n",
"\n",
"_b5._save_logs(df = _b5.df_files_priority_, name = 'clothing_styles_priorities_mupta_en', out = True)\n",
"\n",
"# Опционно\n",
"df = _b5.df_files_priority_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})\n",
"columns_to_round = ['OPE', 'CON', 'EXT', 'AGR', 'NNEU']\n",
"df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])\n",
"df"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}