搭建完整的前后端分离架构,实现数据概览、预测分析、聚类分析等核心功能模块 详细版: feat: 初始化员工缺勤分析系统项目 - 后端:基于 Flask 搭建 RESTful API,包含数据概览、特征分析、预测模型、聚类分析四大模块 - 前端:基于 Vue.js 构建单页应用,实现 Dashboard、预测、聚类、因子分析等页面 - 模型:集成随机森林、XGBoost、LightGBM、Stacking 等多种机器学习模型 - 文档:完成需求规格说明、系统架构设计、接口设计、数据设计、UI原型设计等文档
69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
from flask import Blueprint, jsonify, request
|
|
|
|
from services.cluster_service import cluster_service
|
|
|
|
cluster_bp = Blueprint('cluster', __name__, url_prefix='/api/cluster')
|
|
|
|
|
|
@cluster_bp.route('/result', methods=['GET'])
|
|
def get_result():
|
|
try:
|
|
n_clusters = request.args.get('n_clusters', 3, type=int)
|
|
n_clusters = max(2, min(10, n_clusters))
|
|
|
|
result = cluster_service.get_cluster_result(n_clusters)
|
|
return jsonify({
|
|
'code': 200,
|
|
'message': 'success',
|
|
'data': result
|
|
})
|
|
except Exception as e:
|
|
return jsonify({
|
|
'code': 500,
|
|
'message': str(e),
|
|
'data': None
|
|
}), 500
|
|
|
|
|
|
@cluster_bp.route('/profile', methods=['GET'])
|
|
def get_profile():
|
|
try:
|
|
n_clusters = request.args.get('n_clusters', 3, type=int)
|
|
n_clusters = max(2, min(10, n_clusters))
|
|
|
|
result = cluster_service.get_cluster_profile(n_clusters)
|
|
return jsonify({
|
|
'code': 200,
|
|
'message': 'success',
|
|
'data': result
|
|
})
|
|
except Exception as e:
|
|
return jsonify({
|
|
'code': 500,
|
|
'message': str(e),
|
|
'data': None
|
|
}), 500
|
|
|
|
|
|
@cluster_bp.route('/scatter', methods=['GET'])
|
|
def get_scatter():
|
|
try:
|
|
n_clusters = request.args.get('n_clusters', 3, type=int)
|
|
x_axis = request.args.get('x_axis', 'Age')
|
|
y_axis = request.args.get('y_axis', 'Absenteeism time in hours')
|
|
|
|
n_clusters = max(2, min(10, n_clusters))
|
|
|
|
result = cluster_service.get_scatter_data(n_clusters, x_axis, y_axis)
|
|
return jsonify({
|
|
'code': 200,
|
|
'message': 'success',
|
|
'data': result
|
|
})
|
|
except Exception as e:
|
|
return jsonify({
|
|
'code': 500,
|
|
'message': str(e),
|
|
'data': None
|
|
}), 500
|