{ "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOpennessConscientiousnessExtraversionAgreeablenessNon-Neuroticism
Person ID
12d6btbaNdfo.000.mp40.6189170.6606940.4776560.6544370.601256
2300gK3CnzW0.001.mp40.4617320.4134510.4157060.4983010.431224
3300gK3CnzW0.003.mp40.4680020.4486180.3717420.5096020.453739
44vdJGgZpj4k.003.mp40.5853480.6164460.494430.6056140.587017
5be0DQawtVkE.002.mp40.6809910.566020.5539150.6465450.64246
6cLaZxEf1nE4.004.mp40.663420.5510180.5579120.5852380.587174
7g24JGYuT74A.004.mp40.5902370.3992730.4095540.5318610.507134
8JZNMxa3OKHY.000.mp40.605770.5236170.5311370.5944060.57984
9nvlqJbHk_Lc.003.mp40.5110020.4647020.3908820.4436630.438811
10_plk5k7PBEg.003.mp40.6476060.6104660.5247180.614280.606428
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpennessConscientiousnessExtraversionAgreeablenessNon-NeuroticismMean
Metrics
MAE0.07350.06310.09140.07060.06910.0735
Accuracy0.92650.93690.90860.92940.93090.9265
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitPerformanceClassic car featuresLuxury additionsFashion and attentionRecreationTechnologyFamily friendlySafe and reliablePractical and easy to useEconomical/low costBasic features
ID
1Openness0.020000-0.033333-0.030000-0.0500000.0333330.013333-0.0300000.1366670.1066670.0933330.006667
2Conscientiousness0.013333-0.193333-0.063333-0.096667-0.0966670.086667-0.0633330.2800000.1800000.1300000.143333
3Extraversion0.1333330.0600000.1066670.1233330.1266670.1200000.0900000.1366670.0433330.0733330.050000
4Agreeableness-0.036667-0.193333-0.133333-0.133333-0.0900000.046667-0.0166670.2400000.1600000.1200000.083333
5Non-Neuroticism0.016667-0.006667-0.010000-0.006667-0.0333330.046667-0.0233330.0933330.0466670.046667-0.040000
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
12d6btbaNdfo.000.mp40.6190.6610.4780.6540.601Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
2300gK3CnzW0.001.mp40.4620.4130.4160.4980.431Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
3300gK3CnzW0.003.mp40.4680.4490.3720.5100.454Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
44vdJGgZpj4k.003.mp40.5850.6160.4940.6060.587Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
5be0DQawtVkE.002.mp40.6810.5660.5540.6470.642Safe and reliablePractical and easy to useEconomical/low costAgreeablenessConscientiousnessOpenness
6cLaZxEf1nE4.004.mp40.6630.5510.5580.5850.587Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
7g24JGYuT74A.004.mp40.5900.3990.4100.5320.507Classic car featuresRecreationLuxury additionsAgreeablenessConscientiousnessNon-Neuroticism
8JZNMxa3OKHY.000.mp40.6060.5240.5310.5940.580Practical and easy to useSafe and reliableEconomical/low costAgreeablenessOpennessNon-Neuroticism
9nvlqJbHk_Lc.003.mp40.5110.4650.3910.4440.439Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
10_plk5k7PBEg.003.mp40.6480.6100.5250.6140.606Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitCommunicationGame ActionGame BoardGame CasinoGame EducationalGame SimulationGame TriviaEntertainmentFinanceHealth and FitnessMedia and VideoMusic and AudioNews and MagazinesPersonalisationTravel and LocalWeather
ID
1Openness0.1180.0560.0790.3420.0270.1040.0260.0000.0060.0020.0000.0000.0010.0040.0020.004
2Conscientiousness0.1190.0430.1070.4480.0390.0120.1190.0000.0050.0010.0000.0020.0020.0010.0010.003
3Extraversion0.2460.1820.2110.3110.1020.1650.2230.0010.0030.0000.0010.0010.0010.0040.0090.003
4Agreeableness0.2180.1040.1640.2840.1650.1220.1620.0000.0030.0010.0000.0020.0020.0010.0040.003
5Non-Neuroticism0.0460.0470.1250.5150.2720.1790.2140.0020.0300.0010.0000.0050.0030.0080.0040.007
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
12d6btbaNdfo.000.mp40.6190.6610.4780.6540.601Game CasinoGame EducationalGame TriviaNon-NeuroticismConscientiousnessAgreeableness
2300gK3CnzW0.001.mp40.4620.4130.4160.4980.431Media and VideoEntertainmentHealth and FitnessConscientiousnessAgreeablenessExtraversion
3300gK3CnzW0.003.mp40.4680.4490.3720.5100.454Media and VideoEntertainmentHealth and FitnessConscientiousnessAgreeablenessExtraversion
44vdJGgZpj4k.003.mp40.5850.6160.4940.6060.587Game CasinoGame EducationalGame TriviaNon-NeuroticismConscientiousnessAgreeableness
5be0DQawtVkE.002.mp40.6810.5660.5540.6470.642Game CasinoCommunicationGame TriviaNon-NeuroticismExtraversionAgreeableness
6cLaZxEf1nE4.004.mp40.6630.5510.5580.5850.587Game CasinoCommunicationGame TriviaNon-NeuroticismExtraversionAgreeableness
7g24JGYuT74A.004.mp40.5900.3990.4100.5320.507Health and FitnessMedia and VideoEntertainmentOpennessConscientiousnessAgreeableness
8JZNMxa3OKHY.000.mp40.6060.5240.5310.5940.580Game CasinoGame EducationalGame SimulationNon-NeuroticismAgreeablenessOpenness
9nvlqJbHk_Lc.003.mp40.5110.4650.3910.4440.439Media and VideoEntertainmentHealth and FitnessAgreeablenessConscientiousnessExtraversion
10_plk5k7PBEg.003.mp40.6480.6100.5250.6140.606Game CasinoGame EducationalGame TriviaNon-NeuroticismAgreeablenessConscientiousness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitComfortCamouflageAssuranceFashionIndividuality
ID
1Openness0.01-0.240.310.070.31
2Conscientiousness-0.03-0.240.170.090.15
3Extraversion-0.01-0.190.300.130.14
4Agreeableness0.16-0.160.15-0.09-0.05
5Non-Neuroticism0.03-0.160.010.000.06
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
12d6btbaNdfo.000.mp40.6190.6610.4780.6540.601AssuranceIndividualityComfortOpennessConscientiousnessAgreeableness
2300gK3CnzW0.001.mp40.4620.4130.4160.4980.431CamouflageFashionComfortConscientiousnessOpennessNon-Neuroticism
3300gK3CnzW0.003.mp40.4680.4490.3720.5100.454CamouflageFashionComfortConscientiousnessOpennessNon-Neuroticism
44vdJGgZpj4k.003.mp40.5850.6160.4940.6060.587AssuranceIndividualityComfortOpennessConscientiousnessAgreeableness
5be0DQawtVkE.002.mp40.6810.5660.5540.6470.642AssuranceIndividualityFashionOpennessExtraversionConscientiousness
6cLaZxEf1nE4.004.mp40.6630.5510.5580.5850.587AssuranceIndividualityFashionOpennessExtraversionConscientiousness
7g24JGYuT74A.004.mp40.5900.3990.4100.5320.507CamouflageIndividualityFashionAgreeablenessOpennessNon-Neuroticism
8JZNMxa3OKHY.000.mp40.6060.5240.5310.5940.580ComfortIndividualityAssuranceOpennessAgreeablenessNon-Neuroticism
9nvlqJbHk_Lc.003.mp40.5110.4650.3910.4440.439CamouflageComfortFashionConscientiousnessOpennessNon-Neuroticism
10_plk5k7PBEg.003.mp40.6480.6100.5250.6140.606AssuranceIndividualityComfortOpennessConscientiousnessAgreeableness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOpennessConscientiousnessExtraversionAgreeablenessNon-Neuroticism
Person ID
1speaker_01_center_83.mov0.7657450.6966370.6563090.759860.494141
2speaker_06_center_83.mov0.6865140.6594880.6118380.7497390.420672
3speaker_07_center_83.mov0.6719930.6612160.5717590.7045420.381026
4speaker_10_center_83.mov0.698280.598930.5718930.6749070.35082
5speaker_11_center_83.mov0.7183290.5989860.5735180.732010.379845
6speaker_15_center_83.mov0.6709320.6710550.6023370.7086560.399527
7speaker_19_center_83.mov0.7672610.6581670.6533670.8013660.463443
8speaker_23_center_83.mov0.6998370.6849070.6166710.8064370.447853
9speaker_24_center_83.mov0.7105660.662990.6105620.7112420.413696
10speaker_27_center_83.mov0.7594040.7125620.6583570.8305070.507612
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpennessConscientiousnessExtraversionAgreeablenessNon-NeuroticismMean
Metrics
MAE0.07060.07880.13280.10710.10020.0979
Accuracy0.92940.92120.86720.89290.89980.9021
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitPerformanceClassic car featuresLuxury additionsFashion and attentionRecreationTechnologyFamily friendlySafe and reliablePractical and easy to useEconomical/low costBasic features
ID
1Openness0.020000-0.033333-0.030000-0.0500000.0333330.013333-0.0300000.1366670.1066670.0933330.006667
2Conscientiousness0.013333-0.193333-0.063333-0.096667-0.0966670.086667-0.0633330.2800000.1800000.1300000.143333
3Extraversion0.1333330.0600000.1066670.1233330.1266670.1200000.0900000.1366670.0433330.0733330.050000
4Agreeableness-0.036667-0.193333-0.133333-0.133333-0.0900000.046667-0.0166670.2400000.1600000.1200000.083333
5Non-Neuroticism0.016667-0.006667-0.010000-0.006667-0.0333330.046667-0.0233330.0933330.0466670.046667-0.040000
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
1speaker_01_center_83.mov0.7660.6970.6560.7600.494Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
2speaker_06_center_83.mov0.6870.6590.6120.7500.421Safe and reliablePractical and easy to useEconomical/low costAgreeablenessConscientiousnessOpenness
3speaker_07_center_83.mov0.6720.6610.5720.7050.381Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
4speaker_10_center_83.mov0.6980.5990.5720.6750.351Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
5speaker_11_center_83.mov0.7180.5990.5740.7320.380Safe and reliablePractical and easy to useEconomical/low costAgreeablenessConscientiousnessOpenness
6speaker_15_center_83.mov0.6710.6710.6020.7090.400Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
7speaker_19_center_83.mov0.7670.6580.6530.8010.463Safe and reliablePractical and easy to useEconomical/low costAgreeablenessConscientiousnessOpenness
8speaker_23_center_83.mov0.7000.6850.6170.8060.448Safe and reliablePractical and easy to useEconomical/low costAgreeablenessConscientiousnessOpenness
9speaker_24_center_83.mov0.7110.6630.6110.7110.414Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
10speaker_27_center_83.mov0.7590.7130.6580.8310.508Safe and reliablePractical and easy to useEconomical/low costAgreeablenessConscientiousnessOpenness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitCommunicationGame ActionGame BoardGame CasinoGame EducationalGame SimulationGame TriviaEntertainmentFinanceHealth and FitnessMedia and VideoMusic and AudioNews and MagazinesPersonalisationTravel and LocalWeather
ID
1Openness0.1180.0560.0790.3420.0270.1040.0260.0000.0060.0020.0000.0000.0010.0040.0020.004
2Conscientiousness0.1190.0430.1070.4480.0390.0120.1190.0000.0050.0010.0000.0020.0020.0010.0010.003
3Extraversion0.2460.1820.2110.3110.1020.1650.2230.0010.0030.0000.0010.0010.0010.0040.0090.003
4Agreeableness0.2180.1040.1640.2840.1650.1220.1620.0000.0030.0010.0000.0020.0020.0010.0040.003
5Non-Neuroticism0.0460.0470.1250.5150.2720.1790.2140.0020.0300.0010.0000.0050.0030.0080.0040.007
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
1speaker_01_center_83.mov0.7660.6970.6560.7600.494Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
2speaker_06_center_83.mov0.6870.6590.6120.7500.421Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
3speaker_07_center_83.mov0.6720.6610.5720.7050.381Game CasinoCommunicationGame BoardAgreeablenessConscientiousnessExtraversion
4speaker_10_center_83.mov0.6980.5990.5720.6750.351Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
5speaker_11_center_83.mov0.7180.5990.5740.7320.380Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
6speaker_15_center_83.mov0.6710.6710.6020.7090.400Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
7speaker_19_center_83.mov0.7670.6580.6530.8010.463Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
8speaker_23_center_83.mov0.7000.6850.6170.8060.448Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
9speaker_24_center_83.mov0.7110.6630.6110.7110.414Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
10speaker_27_center_83.mov0.7590.7130.6580.8310.508Game CasinoCommunicationGame BoardAgreeablenessExtraversionConscientiousness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitComfortCamouflageAssuranceFashionIndividuality
ID
1Openness0.01-0.240.310.070.31
2Conscientiousness-0.03-0.240.170.090.15
3Extraversion-0.01-0.190.300.130.14
4Agreeableness0.16-0.160.15-0.09-0.05
5Non-Neuroticism0.03-0.160.010.000.06
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
1speaker_01_center_83.mov0.7660.6970.6560.7600.494AssuranceIndividualityFashionOpennessExtraversionConscientiousness
2speaker_06_center_83.mov0.6870.6590.6120.7500.421AssuranceIndividualityFashionOpennessExtraversionConscientiousness
3speaker_07_center_83.mov0.6720.6610.5720.7050.381AssuranceIndividualityFashionOpennessExtraversionConscientiousness
4speaker_10_center_83.mov0.6980.5990.5720.6750.351AssuranceIndividualityFashionOpennessExtraversionConscientiousness
5speaker_11_center_83.mov0.7180.5990.5740.7320.380AssuranceIndividualityFashionOpennessExtraversionConscientiousness
6speaker_15_center_83.mov0.6710.6710.6020.7090.400AssuranceIndividualityFashionOpennessExtraversionConscientiousness
7speaker_19_center_83.mov0.7670.6580.6530.8010.463AssuranceIndividualityFashionOpennessExtraversionConscientiousness
8speaker_23_center_83.mov0.7000.6850.6170.8060.448AssuranceIndividualityFashionOpennessExtraversionConscientiousness
9speaker_24_center_83.mov0.7110.6630.6110.7110.414AssuranceIndividualityFashionOpennessExtraversionConscientiousness
10speaker_27_center_83.mov0.7590.7130.6580.8310.508AssuranceIndividualityFashionOpennessExtraversionConscientiousness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOpennessConscientiousnessExtraversionAgreeablenessNon-Neuroticism
Person ID
1speaker_01_center_83.mov0.595610.5429670.4406680.5897690.515306
2speaker_06_center_83.mov0.6613470.6739730.6032080.645430.6431
3speaker_07_center_83.mov0.4398680.4650490.2845470.4225510.396058
4speaker_10_center_83.mov0.477150.5025630.3736860.4413720.424637
5speaker_11_center_83.mov0.4032920.3443590.3173040.4222280.384346
6speaker_15_center_83.mov0.5818370.5621770.5046230.6021690.522254
7speaker_19_center_83.mov0.5104440.4484680.4255990.4518610.447891
8speaker_23_center_83.mov0.5005260.5413760.3085290.4411780.452412
9speaker_24_center_83.mov0.4276770.5113550.3010780.4342810.442301
10speaker_27_center_83.mov0.5664140.6591690.4340590.591220.579172
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpennessConscientiousnessExtraversionAgreeablenessNon-NeuroticismMean
Metrics
MAE0.16320.16210.1760.25890.11220.1745
Accuracy0.83680.83790.8240.74110.88780.8255
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitPerformanceClassic car featuresLuxury additionsFashion and attentionRecreationTechnologyFamily friendlySafe and reliablePractical and easy to useEconomical/low costBasic features
ID
1Openness0.020000-0.033333-0.030000-0.0500000.0333330.013333-0.0300000.1366670.1066670.0933330.006667
2Conscientiousness0.013333-0.193333-0.063333-0.096667-0.0966670.086667-0.0633330.2800000.1800000.1300000.143333
3Extraversion0.1333330.0600000.1066670.1233330.1266670.1200000.0900000.1366670.0433330.0733330.050000
4Agreeableness-0.036667-0.193333-0.133333-0.133333-0.0900000.046667-0.0166670.2400000.1600000.1200000.083333
5Non-Neuroticism0.016667-0.006667-0.010000-0.006667-0.0333330.046667-0.0233330.0933330.0466670.046667-0.040000
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
1speaker_01_center_83.mov0.5960.5430.4410.5900.515Practical and easy to useEconomical/low costRecreationOpennessAgreeablenessNon-Neuroticism
2speaker_06_center_83.mov0.6610.6740.6030.6450.643Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
3speaker_07_center_83.mov0.4400.4650.2850.4230.396Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
4speaker_10_center_83.mov0.4770.5030.3740.4410.425Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
5speaker_11_center_83.mov0.4030.3440.3170.4220.384Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
6speaker_15_center_83.mov0.5820.5620.5050.6020.522Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
7speaker_19_center_83.mov0.5100.4480.4260.4520.448Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
8speaker_23_center_83.mov0.5010.5410.3090.4410.452Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
9speaker_24_center_83.mov0.4280.5110.3010.4340.442Classic car featuresFashion and attentionLuxury additionsAgreeablenessConscientiousnessOpenness
10speaker_27_center_83.mov0.5660.6590.4340.5910.579Safe and reliablePractical and easy to useEconomical/low costConscientiousnessAgreeablenessOpenness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitCommunicationGame ActionGame BoardGame CasinoGame EducationalGame SimulationGame TriviaEntertainmentFinanceHealth and FitnessMedia and VideoMusic and AudioNews and MagazinesPersonalisationTravel and LocalWeather
ID
1Openness0.1180.0560.0790.3420.0270.1040.0260.0000.0060.0020.0000.0000.0010.0040.0020.004
2Conscientiousness0.1190.0430.1070.4480.0390.0120.1190.0000.0050.0010.0000.0020.0020.0010.0010.003
3Extraversion0.2460.1820.2110.3110.1020.1650.2230.0010.0030.0000.0010.0010.0010.0040.0090.003
4Agreeableness0.2180.1040.1640.2840.1650.1220.1620.0000.0030.0010.0000.0020.0020.0010.0040.003
5Non-Neuroticism0.0460.0470.1250.5150.2720.1790.2140.0020.0300.0010.0000.0050.0030.0080.0040.007
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
1speaker_01_center_83.mov0.5960.5430.4410.5900.515CommunicationHealth and FitnessMedia and VideoAgreeablenessOpennessNon-Neuroticism
2speaker_06_center_83.mov0.6610.6740.6030.6450.643Game CasinoCommunicationGame TriviaNon-NeuroticismExtraversionConscientiousness
3speaker_07_center_83.mov0.4400.4650.2850.4230.396Media and VideoEntertainmentHealth and FitnessAgreeablenessConscientiousnessExtraversion
4speaker_10_center_83.mov0.4770.5030.3740.4410.425Media and VideoEntertainmentHealth and FitnessAgreeablenessConscientiousnessExtraversion
5speaker_11_center_83.mov0.4030.3440.3170.4220.384Media and VideoEntertainmentHealth and FitnessConscientiousnessAgreeablenessExtraversion
6speaker_15_center_83.mov0.5820.5620.5050.6020.522Game CasinoCommunicationGame BoardAgreeablenessConscientiousnessOpenness
7speaker_19_center_83.mov0.5100.4480.4260.4520.448Media and VideoEntertainmentHealth and FitnessConscientiousnessAgreeablenessExtraversion
8speaker_23_center_83.mov0.5010.5410.3090.4410.452Media and VideoEntertainmentHealth and FitnessAgreeablenessConscientiousnessExtraversion
9speaker_24_center_83.mov0.4280.5110.3010.4340.442Media and VideoEntertainmentHealth and FitnessAgreeablenessConscientiousnessExtraversion
10speaker_27_center_83.mov0.5660.6590.4340.5910.579Game CasinoGame EducationalGame TriviaNon-NeuroticismConscientiousnessAgreeableness
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TraitComfortCamouflageAssuranceFashionIndividuality
ID
1Openness0.01-0.240.310.070.31
2Conscientiousness-0.03-0.240.170.090.15
3Extraversion-0.01-0.190.300.130.14
4Agreeableness0.16-0.160.15-0.09-0.05
5Non-Neuroticism0.03-0.160.010.000.06
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PathOPECONEXTAGRNNEUPriority 1Priority 2Priority 3Trait importance 1Trait importance 2Trait importance 3
Person ID
1speaker_01_center_83.mov0.5960.5430.4410.5900.515ComfortCamouflageAssuranceAgreeablenessNon-NeuroticismConscientiousness
2speaker_06_center_83.mov0.6610.6740.6030.6450.643AssuranceIndividualityFashionOpennessExtraversionConscientiousness
3speaker_07_center_83.mov0.4400.4650.2850.4230.396CamouflageComfortFashionConscientiousnessOpennessNon-Neuroticism
4speaker_10_center_83.mov0.4770.5030.3740.4410.425CamouflageComfortFashionConscientiousnessOpennessNon-Neuroticism
5speaker_11_center_83.mov0.4030.3440.3170.4220.384CamouflageFashionComfortOpennessConscientiousnessNon-Neuroticism
6speaker_15_center_83.mov0.5820.5620.5050.6020.522AssuranceIndividualityComfortOpennessConscientiousnessAgreeableness
7speaker_19_center_83.mov0.5100.4480.4260.4520.448CamouflageComfortFashionOpennessConscientiousnessNon-Neuroticism
8speaker_23_center_83.mov0.5010.5410.3090.4410.452CamouflageComfortFashionConscientiousnessOpennessNon-Neuroticism
9speaker_24_center_83.mov0.4280.5110.3010.4340.442CamouflageComfortFashionConscientiousnessOpennessNon-Neuroticism
10speaker_27_center_83.mov0.5660.6590.4340.5910.579AssuranceIndividualityComfortOpennessConscientiousnessAgreeableness
\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 }