1.项目背景
2016 年“全面两孩”后,全国出生人口仍下滑。福建省福州市同样陷入“政策失效”:
福清市 2016 年 2.1 万 → 2023 年 1.2 万,降幅 42%;鼓楼区 2016 年 0.68 万 → 2023 年 0.41 万,降幅 30%。
县级差异显著 → 需要县级粒度预测工具辅助卫健委动态调整生育支持措施。
2.系统功能

3.算法实验日志
3.1时间序列:LSTM vs SARIMA vs Prophet

结论:LSTM 胜出,县级粒度可行
LSTM 核心代码:
点击查看代码
import pandas as pd
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
from sklearn.preprocessing import MinMaxScaler# 1. 读取数据(出生+政策+GDP)
df = pd.read_csv('fz_merged.csv') # 出生/政策/GDP
data = df[['birth', 'policy', 'GDP']].values# 2. 归一化
scaler = MinMaxScaler()
data = scaler.fit_transform(data)# 3. 构造监督学习
def make_supervised(data, seq_len=4):X, y = [], []for i in range(seq_len, len(data)):X.append(data[i-seq_len:i])y.append(data[i, 0]) # 预测出生return np.array(X), np.array(y)X, y = make_supervised(data, 4)# 4. 构建 LSTM
model = Sequential([LSTM(32, return_sequences=True, input_shape=(4, 3)),Dropout(0.2),LSTM(16),Dense(8, activation='relu'),Dense(1)
])
model.compile(optimizer='adam', loss='mse')# 5. 训练(本地 CPU 5 min)
model.fit(X, y, epochs=500, batch_size=16, verbose=1)# 6. 保存
model.save('models/fz_lstm.h5')

结论:关键词权重法胜出
关键词权重法代码:
点击查看代码
import reKEYS = {"三孩": 0.30,"育儿补贴|生育补助|一次性生育奖励": 0.25,"产假延长|增加产假": 0.20,"购房优惠|落户|契税减免": 0.15,"托育|幼儿园减免|教育优惠": 0.10
}def score_text(text: str) -> float:text = text.lower()score = 0.for k, w in KEYS.items():if re.search(k, text):score += wreturn min(score, 1.0)# 批量打分
for file in os.listdir('data/raw'):if file.endswith('.txt'):year = int(file[:4])with open(f'data/raw/{file}', encoding='utf-8') as f:txt = f.read()score = score_text(txt)print(f"{year}: {score}")
3.4动态阈值:近 5 年均值 × 0.8
点击查看代码
BIRTH_ALERT_THRESHOLD = int(city.iloc[-5:].mean() * 0.8)