数据采集综合实践_第八组_严涛
项目名称:福育未来
小组名称:来财
项目背景:
全球正经历深刻的人口结构转型,核心特征为生育率普遍下降与"人口红利"窗口收窄。发达国家面临老龄化与劳动力萎缩的挑战,而许多发展中国家,包括传统高生育率地区,生育率也出现显著下降趋势。
聚焦福建省福州市,其人口变化呈现总体下降且区域差异显著的特点。2016至2023年间,全市出生人口从10.3万降至9.1万,但不同区县降幅悬殊。例如,核心城区鼓楼区降幅约为30%,而县级市福清市降幅高达42%。这种巨大差异表明,驱动生育行为的社会经济文化因素(如房价、教育压力、职业发展、侨乡经济、文化传统等)具有强烈的空间异质性。
项目目标:开发一套新系统,能够在县级粒度上实现高精度人口预测,并能科学融合多源数据、量化分析各类政策及区域性因素对生育决策的复杂影响。
技术路线:前端:React + React Router + ECharts 后端:Flask + MySQL + Redis 算法:本地 Qwen2.5-7B + LoRA + 4-bit 量化。系统部署在本机。
团队成员学号:
102302124严涛,102302126李坤铭,102302138林楚涵,102302136林伟杰,102302116田自豪,102302114比山布·努尔兰
项目目标:
- 出生人口预测 以 2015-2023 年福州市 13 区县为样本,构建"出生+政策+GDP"多变量 LSTM 模型; 县级出生人口预测 MAPE ≤ 7%,单县预测响应 < 200 ms。
- 政策强度量化 以 2015-2023 年政策文本为语料,关键词权重法量化政策强度(0-1); 政策-出生人口相关系数 ≥ 0.80,可解释、无 API 依赖。
- 经济-人口双向分析 人口 → GDP:每增加 1 万人,GDP 增加 1.83 亿元(线性回归); GDP → 出生:GDP 增速每 +1%,下年出生增加 1715 人(滞后 1-3 年)。
- 动态阈值警报 近 5 年出生均值 × 0.8,每年自动刷新; 警报响应 < 200 ms,公网可点。
其他参考文献
- 福州市统计局. (2015-2023). 福州统计年鉴[EB/OL]. https://tjj.fuzhou.gov.cn
福建省统计局. (2015-2023). 福建省国民经济和社会发展统计公报[EB/OL]. https://tjj.fujian.gov.cn - 福州市卫生健康委员会. (2015-2023). 福州市卫生健康统计公报[EB/OL]. https://wjw.fuzhou.gov.cn
码云链接
https://gitee.com/yan-tao2380465352/2025_crawl_project/tree/数据采集综合实践/
1..系统功能

2..算法实验日志
2.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 re
KEYS = {
"三孩": 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 += w
return 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}")
2.4动态阈值:近 5 年均值 × 0.8
点击查看代码
BIRTH_ALERT_THRESHOLD = int(city.iloc[-5:].mean() * 0.8)

浙公网安备 33010602011771号