工作间的门没关。
陆远洲走到门口就看见了那个画面林小禾坐在新服务器前面,三个屏幕全亮着,键盘旁边堆了四个空的方便面碗。
“你中午没吃饭?”
林小禾转过头,反光的镜片后,那双眼睛亮得吓人:“吃了啊,四碗。”
“……那是泡面。”
“泡面也是面。”林小禾一把空碗推到旁边,腾出桌面上的位置,“陆哥你快来看。”
陆远洲拉了把椅子坐下。
左边屏幕跑着特征提取的运行日志,绿色的字符一行滚过去,全是“已完成”。中间那台是数据可视化面板,散点图、柱状图铺了满屏。右边是批量处理脚本的终端窗口,光标在最后一行闪着。
“五十例,从标注到特征提取到初步分类,整条流水线全跑通了。”林小禾用鼠标点开中间屏幕的汇总页面,“一个环节都没卡。”
陆远洲没急着说话。他探过身,把鼠标接过来,从第一项数据开始逐个检查。
特征提取的维度、参数分布、缺失值比例、各变量之间的相关性矩阵。
他一项项看下去,神情逐渐舒展,最终认可地点了点头。
方差比预研阶段小了将近三成。
“共线性那个问题呢?”
“解决了。”林小禾切到另一个页面,“我上周重写了一遍筛选算法,用方差膨胀因子做二次过滤,把高度共线的特征对自动剔除一个。现在保留的特征之间相关系数全在0。7以下。”
陆远洲翻到分类结果那一页。
roc曲线的弧度比上回好看了不少。auc值标在右下角0。83。
上个月预研阶段是0。78。
五个百分点。样本量从三十五扩到五十,模型的稳定性有了显著提升。
“不错。”
就两个字,但林小禾笑得跟中了奖似的。
他跟陆远洲搭档了几个月,太清楚这两个字的含金量了。陆远洲轻易不夸人,“不错”在他嘴里就约等于“牛逼”。
陆远洲把椅子往后推了一点,盯着屏幕上的特征列表想了几秒。
“目前提取的都是灰度和纹理类的。”
“对,主要是灰度共生矩阵、游程长度那几组。”
“形状信息还没加。”
林小禾抬头看他。
“肿瘤的边缘不规则度、体积比、球形度。”陆远洲用笔在桌上的草稿纸上画了个示意图,“这些形态学特征跟肿瘤的侵袭性有直接关系。恶性程度越高的肿瘤,边缘越不规则,球形度越低。”
林小禾推了推眼镜,脑子转得飞快:“计算模块不复杂,从掩膜图里提取三维形状参数,现成的开源库能做。”
“工作量呢?”
“两周,最多两周。框架是现成的,加几个函数调用的事。”
“那就加。”
两人又讨论了十几分钟细节。该用哪些形状描述子,边缘提取用什么算法,三维重建的精度要求多少。
林小禾全部记在本子上,字迹潦草得只有他自己看得懂。
“还有个事。”陆远洲切到邮箱,把陈道远上周发来的数据样本点开,“协和那一百二十例的格式问题,你看过了吧?”
“看了。”林小禾的兴奋劲儿褪了下去,表情有些苦恼,“两家医院ct的扫描参数不一样,层厚也不同。他们用的是0。625毫米薄层,咱这边大部分是1。25。重建算法也有差异。直接混一起跑肯定出问题。”
“方案?”
“数据预处理。统一重采样到同一层厚,灰度标准化,然后做批次效应校正。”林小禾打开他之前列的清单,“路径是清晰的,就是活多。大概三到四周。”
“能跟形状特征的开发同步推吗?”
林小禾算了算时间:“白天上班的事我还得干,晚上和周末全泡这。同步的话……紧是紧了点,但能扛。”
“别把自己累垮了。”
“没事。”林小禾的语气里没有勉强,“这种活干起来带劲,不费精神。跟修医院那个破办公系统比,这才叫写代码。”