import pandas as pd import streamlit as st import statsmodels.api as sm data = pd.read_csv('data.csv') size_mapping = { '15х15': 0, '20х14': 1, '20х20': 2, '21х15': 3, '30х40': 4, '30х60': 5, '38х50': 6, '40х40': 7, '40х50': 8, '40х60': 9 } genre_mapping = { "Абстракция": 0, "Аниме": 1, "Графити и стрит-арт": 2, "Животные": 3, "Историческая живопись": 4, "Мультфильмы": 5, "Натюрморт": 6, "Пейзаж": 7, "Поп-арт": 8, "Портрет": 9, "Религия": 10, "Ретро и винтаж": 11, "Спорт": 12, "Фантастика": 13, "Фильмы": 14, "Эротика": 15 } # Преобразование категориальных значений data['Жанр'] = data['Жанр'].map(genre_mapping) data['Размер'] = data['Размер'].map(size_mapping) columns_to_check = ['Размер', 'Стоимость', 'Средняя оценка', 'Жанр'] data = data.dropna(subset=columns_to_check) data = data[['Размер', 'Стоимость', 'Средняя оценка', 'Жанр']] X = data[['Средняя оценка', 'Размер', 'Жанр']] y = data['Стоимость'] # Добавляем столбец с единичками, так как регрессия Пуассона в statsmodels не добавляет константу автоматически X = sm.add_constant(X) # Создание модели и обучение poisson_model = sm.GLM(y, X, family=sm.families.Poisson()) poisson_results = poisson_model.fit() # Вывод результатов st.write(poisson_results.summary())