引言:主题公园运营的核心困境

主题公园作为现代娱乐产业的重要组成部分,面临着独特的运营挑战。在节假日期间,游客数量激增,导致排队时间过长、服务质量下降、安全隐患增加;而在淡季,大量设施闲置、员工冗余、运营成本高企,资源利用率低下。这种”潮汐式”的客流特征,使得精准的排期预测成为平衡供需、优化资源配置的关键。

排期预测不仅仅是简单的客流统计,它是一个融合了数据科学、运营管理和游客行为学的复杂系统工程。通过科学的预测模型,主题公园可以提前预判客流高峰,合理安排员工排班、物资采购、设施维护和营销活动,从而在保障游客体验的同时,实现经济效益最大化。

本文将深入探讨主题公园如何利用排期预测技术应对双重挑战,涵盖数据收集、预测模型构建、运营策略优化以及实际案例分析,为行业提供一套完整的解决方案。

一、主题公园客流特征分析

1.1 客流的周期性与随机性

主题公园客流呈现出明显的周期性特征,主要包括:

  • 季节性周期:夏季(6-8月)和秋季(9-10月)通常是旺季,冬季(12-2月)相对淡季
  • 周内周期:周末和节假日客流量显著高于工作日
  • 日内周期:上午10-11点和下午2-4点是入园高峰

同时,客流也受到多种随机因素影响:

  • 天气突变(暴雨、高温、寒潮)
  • 突发事件(疫情、交通管制)
  • 营销活动(新设施开业、明星见面会)
  • 社交媒体传播(网红打卡、短视频爆火)

1.2 双重挑战的具体表现

节假日人潮汹涌的表现:

  • 排队时间超过2小时,游客满意度下降30%以上
  • 餐饮、零售点排长队,服务效率降低
  • 安全事故风险增加,拥挤踩踏隐患上升
  • 设施超负荷运转,故障率提高

淡季资源闲置的表现:

  • 员工工时利用率不足50%,人力成本浪费
  • 餐饮原材料过期损耗率增加
  • 设施维护周期难以安排,影响全年运营效率
  • 营销投入产出比低,获客成本高

二、排期预测的数据基础

2.1 数据收集维度

构建精准的排期预测模型,需要多维度数据支撑:

历史运营数据:

  • 过去3-5年的每日入园人数、各时段客流分布
  • 各项目的排队时长、承载量、故障记录
  • 餐饮、零售的销售额、客单价、库存周转
  • 员工排班表、工时利用率、客户投诉数据

外部环境数据:

  • 天气数据(温度、降水、空气质量)
  • 交通数据(周边道路拥堵指数、公共交通客流量)
  • 节假日信息(法定假期、学校假期、调休安排)
  • 竞争对手动态(新园区开业、促销活动)

游客行为数据:

  • 门票预订提前期(提前1天、3天、7天、30天)
  • 游客来源地(本地/外地、国内/国际)
  • 重游率、停留时长、消费偏好
  • 社交媒体舆情数据(提及量、情感倾向)

2.2 数据预处理技术

原始数据往往存在缺失、异常和噪声,需要进行清洗和转换:

import pandas as pd
import numpy as np
from datetime import datetime, timedelta

# 示例:主题公园客流数据预处理
def preprocess_park_data(raw_data):
    """
    处理原始运营数据,生成可用于预测的特征
    """
    # 1. 处理缺失值:用前后均值填充
    raw_data['daily_visitors'] = raw_data['daily_visitors'].interpolate(method='linear')
    
    # 2. 异常值检测:使用IQR方法识别并处理
    Q1 = raw_data['daily_visitors'].quantile(0.25)
    Q3 = raw_data['daily_visitors'].quantile(0.75)
    IQR = Q3 - Q1
    outlier_threshold = Q3 + 1.5 * IQR
    
    # 将异常值替换为移动平均值
    raw_data.loc[raw_data['daily_visitors'] > outlier_threshold, 'daily_visitors'] = \
        raw_data['daily_visitors'].rolling(window=7, min_periods=1).mean()
    
    # 3. 特征工程:提取时间特征
    raw_data['date'] = pd.to_datetime(raw_data['date'])
    raw_data['day_of_week'] = raw_data['date'].dt.dayofweek
    raw_data['month'] = raw_data['date'].dt.month
    raw_data['is_weekend'] = raw_data['day_of_week'].isin([5, 6]).astype(int)
    raw_data['is_holiday'] = raw_data['is_holiday'].astype(int)
    
    # 4. 添加滞后特征(过去7天客流)
    for lag in [1, 2, 3, 7]:
        raw_data[f'visitors_lag_{lag}'] = raw_data['daily_visitors'].shift(lag)
    
    # 5. 添加移动平均特征
    raw_data['visitors_ma_7'] = raw_data['daily_visitors'].rolling(window=7).mean()
    raw_data['visitors_ma_30'] = raw_data['daily_visitors'].rolling(window=30).mean()
    
    return raw_data.dropna()

# 示例数据
sample_data = pd.DataFrame({
    'date': pd.date_range(start='2023-01-01', periods=100),
    'daily_visitors': np.random.poisson(lam=5000, size=100) + 
                      np.sin(np.arange(100) * 0.1) * 1000,
    'is_holiday': [1 if i % 30 == 0 else 0 for i in range(100)]
})

processed_data = preprocess_park_data(sample_data)
print(processed_data.head())

代码说明:

  • 使用Pandas进行数据清洗,处理缺失值和异常值
  • 提取时间特征(星期几、月份、是否周末、是否节假日)
  • 构建滞后特征和移动平均特征,捕捉时间序列依赖关系
  • 这些特征将作为机器学习模型的输入

三、预测模型构建与实现

3.1 模型选择策略

针对主题公园客流预测,推荐采用混合模型策略:

短期预测(1-7天):

  • Prophet模型:擅长处理节假日效应和季节性
  • LSTM神经网络:捕捉非线性时序关系 中长期预测(1-3个月):
  • XGBoost/LightGBM:处理多特征融合,解释性强
  • ARIMA:经典时间序列模型,适合平稳数据

3.2 Prophet模型实战

Prophet是Facebook开源的时间序列预测工具,特别适合有明显节假日效应的数据。

from prophet import Prophet
import pandas as pd

def build_prophet_model(historical_data):
    """
    构建Prophet预测模型
    """
    # Prophet要求列名为ds(日期)和y(目标值)
    prophet_df = historical_data[['date', 'daily_visitors']].rename(
        columns={'date': 'ds', 'daily_visitors': 'y'}
    )
    
    # 初始化模型,配置节假日效应
    model = Prophet(
        yearly_seasonality=True,
        weekly_seasonality=True,
        daily_seasonality=False,
        changepoint_prior_scale=0.05,  # 控制趋势变化的灵活性
        seasonality_prior_scale=10.0   # 控制季节性的强度
    )
    
    # 添加自定义节假日(如国庆、春节、暑期)
    holidays = pd.DataFrame({
        'holiday': 'national_holiday',
        'ds': pd.to_datetime(['2023-10-01', '2023-10-02', '2023-10-03',
                              '2024-02-10', '2024-02-11', '2024-02-12']),
        'lower_window': -2,  # 节假日前后2天都受影响
        'upper_window': 2,
    })
    model.add_country_holidays(country_name='CN')  # 添加中国法定节假日
    
    # 训练模型
    model.fit(prophet_df)
    
    return model

def predict_future_visitors(model, periods=30):
    """
    预测未来客流
    """
    # 生成未来日期
    future = model.make_future_dataframe(periods=periods)
    
    # 预测
    forecast = model.predict(future)
    
    # 提取关键预测结果
    predictions = forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail(periods)
    predictions.columns = ['date', 'predicted_visitors', 'lower_bound', 'upper_bound']
    
    return predictions

# 使用示例
# model = build_prophet_model(processed_data)
# future_predictions = predict_future_visitors(model, periods=30)
# print(future_predictions.head())

模型优势:

  • 自动处理节假日效应,无需手动编码
  • 提供预测区间(yhat_lower, yhat_upper),便于风险评估
  • 可视化结果直观,便于业务人员理解

3.3 XGBoost多特征融合模型

当需要融合天气、交通等多源数据时,XGBoost表现更优。

import xgboost as xgb
from sklearn.model_selection import TimeSeriesSplit
from sklearn.metrics import mean_absolute_error, mean_squared_error

def build_xgboost_model(X, y):
    """
    构建XGBoost预测模型
    """
    # 时间序列交叉验证(防止数据泄露)
    tscv = TimeSeriesSplit(n_splits=5)
    
    # 模型参数
    params = {
        'objective': 'reg:squarederror',
        'max_depth': 6,
        'learning_rate': 0.1,
        'n_estimators': 500,
        'subsample': 0.8,
        'colsample_bytree': 0.8,
        'random_state': 42
    }
    
    model = xgb.XGBRegressor(**params)
    
    # 交叉验证评估
    mae_scores = []
    for train_idx, val_idx in tscv.split(X):
        X_train, X_val = X.iloc[train_idx], X.iloc[val_idx]
        y_train, y_val = y.iloc[train_idx], y.iloc[val_idx]
        
        model.fit(X_train, y_train,
                  eval_set=[(X_val, y_val)],
                  early_stopping_rounds=50,
                  verbose=False)
        
        y_pred = model.predict(X_val)
        mae = mean_absolute_error(y_val, y_pred)
        mae_scores.append(mae)
    
    print(f"交叉验证MAE: {np.mean(mae_scores):.2f} ± {np.std(mae_scores):.2f}")
    
    # 在全量数据上重新训练
    model.fit(X, y)
    
    return model

def prepare_features_for_xgboost(data):
    """
    为XGBoost准备特征矩阵
    """
    features = data.copy()
    
    # 时间特征
    features['day_of_week'] = features['date'].dt.dayofweek
    features['month'] = features['date'].dt.month
    features['is_weekend'] = features['day_of_week'].isin([5, 6]).astype(int)
    
    # 滞后特征
    for lag in [1, 2, 3, 7, 14]:
        features[f'visitors_lag_{lag}'] = features['daily_visitors'].shift(lag)
    
    # 滚动统计
    features['visitors_rolling_mean_7'] = features['daily_visitors'].rolling(7).mean()
    features['visitors_rolling_std_7'] = features['daily_visitors'].rolling(7).std()
    
    # 外部特征(示例)
    features['temperature'] = np.random.normal(25, 5, len(features))  # 模拟温度
    features['is_rainy'] = (features['temperature'] < 20).astype(int)  # 模拟雨天
    
    # 删除包含NaN的行
    features = features.dropna()
    
    X = features.drop(['date', 'daily_visitors'], axis=1)
    y = features['daily_visitors']
    
    return X, y

# 使用示例
# X, y = prepare_features_for_xgboost(processed_data)
# xgb_model = build_xgboost_model(X, y)

代码说明:

  • 使用时间序列交叉验证避免未来数据泄露
  • 构建丰富的特征集:时间、滞后、滚动统计、外部数据
  • XGBoost自动特征重要性排序,帮助识别关键驱动因素

3.4 模型融合与评估

def ensemble_predictions(prophet_model, xgb_model, X_future, future_dates):
    """
    融合Prophet和XGBoost的预测结果
    """
    # Prophet预测
    prophet_forecast = prophet_model.predict(
        pd.DataFrame({'ds': future_dates})
    )
    prophet_pred = prophet_forecast['yhat'].values
    
    # XGBoost预测
    xgb_pred = xgb_model.predict(X_future)
    
    # 简单加权平均(可根据模型表现调整权重)
    ensemble_pred = 0.6 * xgb_pred + 0.4 * prophet_pred
    
    return ensemble_pred

def evaluate_model(y_true, y_pred):
    """
    评估预测模型性能
    """
    mae = mean_absolute_error(y_true, y_pred)
    rmse = np.sqrt(mean_squared_error(y_true, y_pred))
    mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100
    
    print(f"MAE: {mae:.2f}")
    print(f"RMSE: {rmse:.2f}")
    print(f"MAPE: {mape:.2f}%")
    
    return mae, rmse, mape

四、基于预测的运营策略优化

4.1 节假日高峰期应对策略

4.1.1 动态定价与分流

预测驱动的门票动态定价:

def dynamic_pricing_strategy(predicted_visitors, base_price=300):
    """
    根据预测客流动态调整门票价格
    """
    # 定义价格区间
    if predicted_visitors > 8000:  # 超高峰
        price_multiplier = 1.5
        message = "高峰日,建议提前预约"
    elif predicted_visitors > 6000:  # 高峰
        price_multiplier = 1.2
        message = "热门日期,建议错峰出行"
    elif predicted_visitors > 4000:  # 正常
        price_multiplier = 1.0
        message = "正常日期"
    else:  # 低谷
        price_multiplier = 0.8
        message = "错峰优惠,体验更佳"
    
    final_price = base_price * price_multiplier
    
    return {
        'predicted_visitors': predicted_visitors,
        'price': final_price,
        'message': message,
        'price_multiplier': price_multiplier
    }

# 示例:预测未来7天价格
future_prices = []
for visitors in [8500, 7200, 4500, 3200, 9000, 6800, 3800]:
    pricing = dynamic_pricing_strategy(visitors)
    future_prices.append(pricing)

print("未来7天动态定价策略:")
for i, p in enumerate(future_prices, 1):
    print(f"第{i}天: {p['message']} - ¥{p['price']:.0f}")

输出示例:

未来7天动态定价策略:
第1天: 高峰日,建议提前预约 - ¥450
第2天: 热门日期,建议错峰出行 - ¥360
第3天: 正常日期 - ¥300
第4天: 错峰优惠,体验更佳 - ¥240
第5天: 高峰日,建议提前预约 - ¥450
第6天: 热门日期,建议错峰出行 - ¥360
第7天: 错峰优惠,体验更佳 - ¥240

4.1.2 智能排队与项目分流

实时排队预测与推荐系统:

class QueueManagementSystem:
    def __init__(self, project_capacity, project_count):
        self.project_capacity = project_capacity  # 各项目每小时承载量
        self.project_count = project_count        # 项目数量
        self.current_queue = {p: 0 for p in project_capacity.keys()}
    
    def predict_wait_time(self, project_name, current_visitors):
        """
        预测某项目的排队时间
        """
        capacity = self.project_capacity[project_name]
        queue_length = self.current_queue[project_name]
        
        # 简单排队模型:等待时间 = 队列长度 / 容量
        wait_time = (queue_length + current_visitors) / capacity * 60  # 转换为分钟
        
        return min(wait_time, 180)  # 最多显示180分钟
    
    def recommend_alternative(self, current_project, predicted_wait):
        """
        当排队过长时,推荐替代项目
        """
        if predicted_wait < 30:
            return None
        
        # 按等待时间排序,推荐等待时间最短的项目
        wait_times = {}
        for project in self.project_capacity.keys():
            if project != current_project:
                wait = self.predict_wait_time(project, 0)
                wait_times[project] = wait
        
        # 返回等待时间最短的3个项目
        recommendations = sorted(wait_times.items(), key=lambda x: x[1])[:3]
        
        return recommendations

# 使用示例
queue_system = QueueManagementSystem(
    project_capacity={
        '过山车': 200, '旋转木马': 300, '激流勇进': 150,
        '4D影院': 400, '鬼屋': 100, '摩天轮': 250
    },
    project_count=6
)

# 模拟高峰期预测
current_project = '过山车'
predicted_wait = queue_system.predict_wait_time(current_project, 150)
print(f"{current_project}当前预测等待时间: {predicted_wait:.0f}分钟")

if predicted_wait > 45:
    alternatives = queue_system.recommend_alternative(current_project, predicted_wait)
    print(f"建议前往: {alternatives}")

4.1.3 员工弹性排班

基于预测的智能排班系统:

import numpy as np
from datetime import datetime, timedelta

def generate_staff_schedule(predicted_visitors, base_staff=100, peak_threshold=6000):
    """
    根据预测客流生成员工排班计划
    """
    schedule = {}
    
    for date, visitors in predicted_visitors.items():
        # 计算所需员工数(基础员工 + 客流增量)
        if visitors > peak_threshold:
            # 超高峰:增加50%员工,延长工作时间
            required_staff = int(base_staff * 1.5)
            shift_hours = 10
            note = "超高峰配置"
        elif visitors > 4000:
            # 高峰:增加30%员工
            required_staff = int(base_staff * 1.3)
            shift_hours = 9
            note = "高峰配置"
        elif visitors > 2000:
            # 正常:基础配置
            required_staff = base_staff
            shift_hours = 8
            note = "正常配置"
        else:
            # 低谷:减少20%员工,可安排轮休
            required_staff = int(base_staff * 0.8)
            shift_hours = 7
            note = "低谷配置(可轮休)"
        
        schedule[date] = {
            'required_staff': required_staff,
            'shift_hours': shift_hours,
            'note': note,
            'estimated_cost': required_staff * shift_hours * 50  # 假设时薪50元
        }
    
    return schedule

# 示例:未来7天排班
future_visitors = {
    '2024-01-15': 8500, '2024-01-16': 7200, '2024-01-17': 4500,
    '2024-01-18': 3200, '2024-01-19': 9000, '2024-01-20': 6800,
    '2024-01-21': 3800
}

staff_schedule = generate_staff_schedule(future_visitors)
print("员工排班计划:")
for date, plan in staff_schedule.items():
    print(f"{date}: {plan['required_staff']}人, {plan['shift_hours']}小时, {plan['note']}")

4.2 淡季资源优化策略

4.2.1 精准营销与预售

淡季促销定价模型:

def off_season_promotion_strategy(predicted_visitors, base_price=300):
    """
    淡季促销策略:通过价格杠杆刺激需求
    """
    if predicted_visitors < 2000:
        # 极度淡季:大幅折扣 + 捆绑销售
        discount = 0.5  # 5折
        bundle = "门票+餐饮套餐"
        marketing_budget = 50000  # 增加营销投入
    elif predicted_visitors < 3000:
        # 淡季:中等折扣
        discount = 0.7  # 7折
        bundle = "门票+快速通行证"
        marketing_budget = 30000
    else:
        # 正常:小幅优惠
        discount = 0.9  # 9折
        bundle = None
        marketing_budget = 10000
    
    final_price = base_price * discount
    
    return {
        'discount': discount,
        'final_price': final_price,
        'bundle': bundle,
        'marketing_budget': marketing_budget,
        'expected_uplift': (1/discount - 1) * 0.5  # 价格弹性系数0.5
    }

# 示例:淡季促销
for visitors in [1500, 2500, 3500]:
    promo = off_season_promotion_strategy(visitors)
    print(f"客流{visitors}人: ¥{promo['final_price']:.0f}, 营销预算¥{promo['marketing_budget']}, 预期提升{promo['expected_uplift']:.1%}")

4.2.2 设施维护与升级计划

预测驱动的维护排程:

def maintenance_scheduling(predicted_visitors, maintenance_tasks):
    """
    在淡季安排设施维护,避免影响运营
    """
    # 按预测客流排序,选择最淡的日期进行维护
    sorted_dates = sorted(predicted_visitors.items(), key=lambda x: x[1])
    
    schedule = []
    for i, (date, visitors) in enumerate(sorted_dates[:len(maintenance_tasks)]):
        task = maintenance_tasks[i]
        schedule.append({
            'date': date,
            'visitors': visitors,
            'task': task,
            'impact': '低' if visitors < 2500 else '中'
        })
    
    return schedule

# 示例维护任务
tasks = ['过山车大修', '4D影院升级', '管道检修', '园区翻新']
future_visitors_dict = {
    '2024-02-01': 1800, '2024-02-02': 2200, '2024-02-03': 3500,
    '2024-02-04': 1600, '2024-02-05': 2800
}

maintenance_plan = maintenance_scheduling(future_visitors_dict, tasks)
print("维护排程:")
for item in maintenance_plan:
    print(f"{item['date']}: {item['task']} (客流{item['visitors']}, 影响{item['impact']})")

4.2.3 员工培训与多技能发展

淡季员工发展计划:

def staff_development_plan(predicted_visitors, total_staff=100):
    """
    淡季员工培训与轮岗计划
    """
    min_visitors = min(predicted_visitors.values())
    max_visitors = max(predicted_visitors.values())
    
    # 计算淡季冗余人力
    base_need = 80  # 基础运营需求
    redundant_staff = total_staff - base_need
    
    if redundant_staff > 0:
        # 制定培训计划
        plan = {
            'cross_training': {
                'duration': '2周',
                'participants': redundant_staff,
                'content': ['设施操作', '急救技能', '客户服务', '销售技巧'],
                'budget': redundant_staff * 500  # 培训成本
            },
            'maintenance_assistance': {
                'participants': redundant_staff // 2,
                'description': '协助设施维护,学习设备知识'
            },
            'project_work': {
                'participants': redundant_staff // 3,
                'description': '参与园区优化项目'
            }
        }
        
        roi = (max_visitors - min_visitors) * 50  # 假设每游客价值50元
        plan['expected_roi'] = roi - plan['cross_training']['budget']
        
        return plan
    else:
        return "人力充足,无需额外安排"

# 示例
staff_plan = staff_development_plan(future_visitors_dict, total_staff=100)
print("淡季员工发展计划:")
print(staff_plan)

五、实际案例分析

5.1 案例:某大型主题公园的排期预测实践

背景: 某年接待游客300万的主题公园,面临节假日拥堵严重、淡季闲置率高的问题。

实施方案:

  1. 数据整合:整合了3年历史数据、天气、交通、社交媒体数据
  2. 模型部署:采用Prophet + XGBoost融合模型,每日更新预测
  3. 系统建设:开发了实时客流监测与预测平台

关键成果:

  • 预测准确率:MAPE从25%降至8%,节假日预测准确率达92%
  • 运营优化
    • 节假日:动态定价使收入提升18%,同时游客满意度提升12%
    • 淡季:预售+促销使淡季客流提升35%,资源利用率从45%提升至68%
    • 员工排班:人力成本降低15%,员工满意度提升(减少无效加班)

技术细节:

# 实际部署的预测流程(简化版)
def daily_prediction_pipeline():
    """
    每日预测流程
    """
    # 1. 获取最新数据
    recent_data = fetch_recent_data(days=30)
    
    # 2. 特征工程
    features = prepare_features(recent_data)
    
    # 3. 模型预测
    prophet_pred = prophet_model.predict(future_dates)
    xgb_pred = xgb_model.predict(future_features)
    
    # 4. 融合与校准
    final_pred = ensemble_predictions(prophet_pred, xgb_pred)
    
    # 5. 生成运营建议
    ops_recommendations = generate_ops_plan(final_pred)
    
    # 6. 推送至各部门
    send_to_ops_team(ops_recommendations)
    
    return final_pred, ops_recommendiations

5.2 关键成功因素

  1. 数据质量优先:投入30%项目时间在数据清洗和特征工程
  2. 业务深度结合:预测团队与运营团队每周同步,确保模型可落地
  3. 持续迭代:每月评估模型表现,每季度更新模型
  4. 技术+管理双轮驱动:技术解决预测问题,管理解决执行问题

六、实施路线图与挑战应对

6.1 分阶段实施建议

第一阶段(1-3个月):数据基础建设

  • 梳理历史数据,建立数据仓库
  • 开发基础预测模型(Prophet)
  • 试点节假日预测

第二阶段(4-6个月):系统开发

  • 开发实时监测平台
  • 部署XGBoost融合模型
  • 实现动态定价和排班建议

第三阶段(7-12个月):全面优化

  • 全园推广预测系统
  • 建立反馈闭环
  • 持续模型优化

6.2 常见挑战与应对

挑战1:数据孤岛

  • 应对:建立统一数据中台,API对接各系统

挑战2:模型可解释性

  • 应对:使用SHAP值解释XGBoost预测,提供业务洞察

挑战3:组织变革阻力

  • 应对:从小范围试点开始,用数据证明价值,逐步推广

挑战4:突发事件影响

  • 应对:建立应急预案库,模型实时更新,人工干预机制

七、未来展望

随着AI技术发展,主题公园排期预测将向更智能化方向演进:

  1. 实时动态预测:分钟级更新,结合物联网传感器数据
  2. 游客个性化分流:基于游客画像的精准推荐,实现”千人千面”的游园体验
  3. 数字孪生技术:在虚拟环境中模拟不同运营策略的效果
  4. 生成式AI应用:自动生成营销文案、排班方案、应急预案

结语

排期预测不是简单的数字游戏,而是连接数据科学与运营艺术的桥梁。通过精准的预测,主题公园可以将节假日的人潮转化为收益,将淡季的闲置转化为机遇,最终实现全年均衡发展。成功的关键在于:数据驱动、业务融合、持续迭代

对于正在考虑引入排期预测的主题公园,建议从一个小切口开始(如节假日客流预测),用实际效果证明价值,再逐步扩展到全场景。记住,最好的预测模型不是最复杂的,而是最能被运营团队理解和使用的。