datawhale第三期机器学习- 用户新增预测挑战赛教程 任务三

理论

问题一

要加入新的特征观察模型F1是否发生变化,首先需要知道原始的特征工程部分对应的模型评估指标,例如准确率、召回率、F1值等。
假设模型评估指标是F1值,那么可以按照以下步骤进行:
加入新的特征,可以选择与目标变量相关性较高的特征,或者通过领域知识选择与问题相关的特征。
根据新的特征,修改数据处理和分析部分的代码以提取新特征。
使用修改后的特征工程进行训练,并计算模型的F1值。
比较加入新特征后的模型F1值与原始模型F1值,观察是否发生变化。

问题二

在这里插入图片描述

实践代码


# 修改后的特征工程代码
def feature_engineering(df):
    # 特征处理代码...

    # 添加新特征
    df['key_sum'] = df[['key1','key2','key3','key4','key5','key6','key7','key8','key9']].sum(axis=1)
    df['eid_freq_log'] = np.log(df['eid_freq'])
    encoded_hour = pd.get_dummies(df['common_ts_hour'], prefix='hour')
    df = pd.concat([df, encoded_hour], axis=1)
    return df


# 模型评估指标计算代码
def evaluate_model(y_true, y_pred):
    predicted_labels = [1 if pred >= 0.5 else 0 for pred in y_pred]  # 假设是二分类模型,阈值为0.5

    # 计算模型的 F1 值
    f1 = f1_score(y_true, predicted_labels)

    return f1_value


# 原始特征工程部分的代码
processed_data = feature_engineering(data)
model = train_model(processed_data)
predictions = model.predict(processed_data)
f1_score = evaluate_model(true_labels, predictions)

# 加入新特征后的特征工程部分的代码
processed_data_with_new_feature = feature_engineering(data)
model_with_new_feature = train_model(processed_data_with_new_feature)
predictions_with_new_feature = model_with_new_feature.predict(processed_data_with_new_feature)
f1_score_with_new_feature = evaluate_model(true_labels, predictions_with_new_feature)

# 输出比较结果
print("原始模型的 F1 值:", f1_score)
print("加入新特征后的模型的 F1 值:", f1_score_with_new_feature)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值