import os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) DATA_DIR = os.path.join(BASE_DIR, 'data') RAW_DATA_DIR = os.path.join(DATA_DIR, 'raw') PROCESSED_DATA_DIR = os.path.join(DATA_DIR, 'processed') MODELS_DIR = os.path.join(BASE_DIR, 'models') RAW_DATA_FILENAME = 'china_enterprise_absence_events.csv' RAW_DATA_PATH = os.path.join(RAW_DATA_DIR, RAW_DATA_FILENAME) CLEAN_DATA_PATH = os.path.join(PROCESSED_DATA_DIR, 'clean_data.csv') RF_MODEL_PATH = os.path.join(MODELS_DIR, 'rf_model.pkl') XGB_MODEL_PATH = os.path.join(MODELS_DIR, 'xgb_model.pkl') KMEANS_MODEL_PATH = os.path.join(MODELS_DIR, 'kmeans_model.pkl') SCALER_PATH = os.path.join(MODELS_DIR, 'scaler.pkl') ENCODER_PATH = os.path.join(MODELS_DIR, 'encoder.pkl') CSV_SEPARATOR = ',' RANDOM_STATE = 42 TEST_SIZE = 0.2 TARGET_COLUMN = '缺勤时长(小时)' EMPLOYEE_ID_COLUMN = '员工编号' COMPANY_ID_COLUMN = '企业编号' EVENT_SEQUENCE_COLUMN = '事件序号' EVENT_DATE_INDEX_COLUMN = '事件日期索引' WEEKDAY_NAMES = { 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六', 7: '周日', } SEASON_NAMES = { 1: '冬季', 2: '春季', 3: '夏季', 4: '秋季', } INDUSTRY_NAMES = [ '制造业', '互联网', '零售连锁', '物流运输', '金融服务', '医药健康', '建筑工程', ] LEAVE_TYPE_NAMES = [ '病假', '事假', '年假', '调休', '婚假', '丧假', '产检育儿假', '工伤假', '其他', ] REASON_CATEGORY_NAMES = [ '身体不适', '家庭事务', '子女照护', '交通受阻', '突发事件', '职业疲劳', '就医复查', ] FEATURE_NAME_CN = { '企业编号': '企业编号', '所属行业': '所属行业', '企业规模': '企业规模', '所在城市等级': '所在城市等级', '用工类型': '用工类型', '部门条线': '部门条线', '岗位序列': '岗位序列', '岗位级别': '岗位级别', '员工编号': '员工编号', '性别': '性别', '年龄': '年龄', '司龄年数': '司龄年数', '最高学历': '最高学历', '婚姻状态': '婚姻状态', '是否本地户籍': '是否本地户籍', '子女数量': '子女数量', '是否独生子女家庭负担': '独生子女家庭负担', '居住类型': '居住类型', '班次类型': '班次类型', '是否夜班岗位': '是否夜班岗位', '月均加班时长': '月均加班时长', '近30天出勤天数': '近30天出勤天数', '近90天缺勤次数': '近90天缺勤次数', '近180天请假总时长': '近180天请假总时长', '通勤时长分钟': '通勤时长分钟', '通勤距离公里': '通勤距离公里', '是否跨城通勤': '是否跨城通勤', '绩效等级': '绩效等级', '近12月违纪次数': '近12月违纪次数', '团队人数': '团队人数', '直属上级管理跨度': '直属上级管理跨度', 'BMI': 'BMI', '是否慢性病史': '是否慢性病史', '年度体检异常标记': '年度体检异常', '近30天睡眠时长均值': '睡眠时长', '每周运动频次': '运动频次', '是否吸烟': '是否吸烟', '是否饮酒': '是否饮酒', '心理压力等级': '心理压力等级', '是否长期久坐岗位': '是否久坐岗位', '缺勤月份': '缺勤月份', '星期几': '星期几', '是否节假日前后': '节假日前后', '季节': '季节', '请假申请渠道': '请假申请渠道', '请假类型': '请假类型', '请假原因大类': '请假原因大类', '是否提供医院证明': '医院证明', '是否临时请假': '临时请假', '是否连续缺勤': '连续缺勤', '前一工作日是否加班': '前一工作日加班', '事件日期': '事件日期', '事件日期索引': '事件日期索引', '事件序号': '事件序号', '员工历史事件数': '员工历史事件数', '缺勤时长(小时)': '缺勤时长', '加班通勤压力指数': '加班通勤压力指数', '家庭负担指数': '家庭负担指数', '健康风险指数': '健康风险指数', '岗位稳定性指数': '岗位稳定性指数', '节假日风险标记': '节假日风险标记', '排班压力标记': '排班压力标记', '缺勤历史强度': '缺勤历史强度', '生活规律指数': '生活规律指数', '管理负荷指数': '管理负荷指数', '工龄分层': '工龄分层', '年龄分层': '年龄分层', '通勤分层': '通勤分层', '加班分层': '加班分层', }