You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看逻辑回归模型分类后的特定交易样本行数据?

解决方案

你的错误确实是因为y_pred_test的长度是测试集的720条,而df是包含2880条数据的完整数据集,两者长度不匹配,无法直接用布尔索引关联。要查看分类后的样本行级信息,关键是保留测试集在原数据中的索引,这样就能对应回原数据集的具体交易记录。

方法一:拆分时保留DataFrame索引(推荐)

调整数据处理流程,先拆分数据集再做缩放,这样测试集会保留原数据的索引:

x = df[x_train_features]
y = df["y"].astype("int")

# 先拆分数据集(输入为DataFrame,会保留原索引)
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

# 仅用训练集拟合scaler,避免数据泄露
scaler = MinMaxScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 训练模型
logreg = LogisticRegression()
logreg.fit(X_train_scaled, y_train)

# 生成预测结果
y_pred_test = (logreg.predict_proba(X_test_scaled)[:, 1] >= 0.5).astype(bool)

# 获取分类为"好"(True)的交易记录
good_trades = df.loc[X_test[y_pred_test].index]

# 计算盈利(假设盈亏列名为"profit",根据实际列名修改)
total_profit = good_trades["profit"].sum()
print(f"模型分类为'好'的交易总盈利:{total_profit}")

方法二:拆分时单独保存索引

如果已经按原流程用numpy数组做了拆分,可以通过单独保存索引来关联原数据:

x = df[x_train_features]
y = df["y"].astype("int")
# 保存原数据的索引
original_indices = x.index

scaler = MinMaxScaler()
scaledx = scaler.fit_transform(x)

# 拆分时同时拆分索引
X_train, X_test, y_train, y_test, idx_train, idx_test = train_test_split(
    scaledx, y, original_indices, test_size=0.25
)

logreg = LogisticRegression()
logreg.fit(X_train, y_train)

y_pred_test = (logreg.predict_proba(X_test)[:, 1] >= 0.5).astype(bool)

# 获取分类为"好"的交易索引
good_indices = idx_test[y_pred_test]
# 从原数据集提取对应记录
good_trades = df.loc[good_indices]

# 计算盈利
total_profit = good_trades["profit"].sum()

额外:查看所有测试集的分类结果

如果想同时查看测试集的真实标签、预测标签和交易详情,可以合并成一个结果表:

# 基于方法一的X_test和y_pred_test
test_results = X_test.copy()
test_results["真实标签"] = y_test
test_results["预测标签"] = y_pred_test
# 合并原数据中的盈亏等信息
test_results = test_results.join(df[["profit"]], how="left")

# 查看分类为"好"的交易
print("分类为'好'的交易详情:")
print(test_results[test_results["预测标签"] == True])

# 查看分类为"坏"的交易
print("\n分类为'坏'的交易详情:")
print(test_results[test_results["预测标签"] == False])

内容的提问来源于stack exchange,提问作者cyrusl123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:17:08