IIS_2023_1/savenkov_alexander_lab_4/app.py

49 lines
1.8 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.

from flask import Flask, render_template
import pandas as pd
from scipy.cluster.hierarchy import linkage, dendrogram
import seaborn as sns
import io
import base64
app = Flask(__name__)
# Загрузка данных из файла games.csv
data = pd.read_csv('games.csv')
# Загрузка данных из файла games.csv
data = pd.read_csv('games.csv')
# Реализация кластеризации dendrogram
def generate_dendrogram_image():
# Выбираем интересующие нас переменные для кластеризации
features = data[['genres', 'price', 'platform', 'developer']]
# Преобразовываем категориальные переменные в числовые (например, с помощью One-Hot Encoding)
features = pd.get_dummies(features, columns=['genres', 'price', 'platform', 'developer'])
# Вычисляем матрицу расстояний и строим dendrogram с использованием seaborn
linkage_matrix = linkage(features, method='ward')
dendrogram_data = dendrogram(linkage_matrix, no_plot=True)
# Создаем изображение dendrogram с использованием seaborn
sns.set(style='white')
g = sns.clustermap(features, row_linkage=linkage_matrix, col_cluster=False, figsize=(24, 16))
# Сохраняем изображение в буфер
img_buffer = io.BytesIO()
g.savefig(img_buffer, format='png')
img_buffer.seek(0)
# Преобразуем изображение в base64 строку
img_base64 = base64.b64encode(img_buffer.read()).decode()
return img_base64
@app.route('/')
def index():
dendrogram_image = generate_dendrogram_image()
return render_template('dendrogram.html', dendrogram_image=dendrogram_image)
if __name__ == '__main__':
app.run(port=5000)