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

Streamlit乳腺癌预测应用:滑块调整后预测结果不更新问题

乳腺癌预测Streamlit应用预测结果固定问题排查与解决

核心问题分析

无论调整侧边栏参数,预测结果始终一致,大概率是特征预处理缺失、模型配置问题或特征匹配错误导致,以下是针对性解决方案:


1. 补全训练阶段的特征预处理流程

模型训练时几乎都会对特征做标准化/归一化(如StandardScaler),如果预测时直接传入原始数据,模型无法识别输入差异,输出固定结果。

修改代码:
先基于训练数据计算均值和标准差,对输入数据做同标准的预处理:

# 基于训练特征矩阵计算标准化所需的均值和标准差
scaler_mean = np.mean(X, axis=0)
scaler_std = np.std(X, axis=0)

def predict_cancer(radius_mean, texture_mean, perimeter_mean,area_mean,smoothness_mean, compactness_mean, concavity_mean):
    input_data = np.array([[radius_mean, texture_mean, perimeter_mean,area_mean,smoothness_mean, compactness_mean, concavity_mean]])
    # 对输入数据做标准化,与训练流程一致
    input_data_scaled = (input_data - scaler_mean[:7]) / scaler_std[:7]
    
    pred = brCancer_model.predict(input_data_scaled)[0]
    pred_prob = brCancer_model.predict_proba(input_data_scaled)[0]
    
    # 修正医学术语:良性为非癌性,恶性为癌性
    if pred == 1:
        return f"该患者有 {pred_prob[1]*100:.2f}% 的概率为恶性癌症(癌性)。"
    else:
        return f"该患者有 {pred_prob[0]*100:.2f}% 的概率为良性肿瘤(非癌性)。"

2. 确保SVM模型启用概率估计

默认情况下,sklearn.svm.SVC的probability参数为False,此时调用predict_proba会用近似算法计算概率,可能导致结果异常甚至固定。

解决步骤:

  • 重新训练模型时添加probability=True参数:
from sklearn.svm import SVC
# 训练时启用概率估计
model = SVC(probability=True)
model.fit(X_train_scaled, y_train)
# 重新保存模型
pickle.dump(model, open("svm_model.sav", "wb"))
  • 替换原模型文件后重新运行Streamlit应用。

3. 验证特征顺序与维度匹配

检查features_matrix.npy的特征维度是否与输入的7个参数完全一致:

# 打印训练特征矩阵的形状
print(X.shape)

如果训练时使用了更多特征,需补充对应输入参数;若仅用前7个特征,确保输入顺序与训练时完全一致。

4. 调试输入参数传递

添加调试代码确认滑块值是否正确传递:

if st.sidebar.button("Predict"):
    # 打印当前输入参数,确认是否随滑块调整变化
    st.write("当前输入参数:", radius_mean, texture_mean, perimeter_mean, area_mean, smoothness_mean, compactness_mean, concavity_mean)
    prediction_result = predict_cancer(radius_mean, texture_mean,perimeter_mean,area_mean,smoothness_mean,compactness_mean,concavity_mean)
    st.write("预测结果:")
    st.write(prediction_result)

若参数无变化,需检查Streamlit环境配置;若参数正常变化,问题则集中在模型或预处理环节。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:05:31