IIS_2023_1/gordeeva_anna_lab_5/laba5.py
2023-11-18 15:39:33 +04:00

58 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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())