2025年9月1日 星期一 晴转多云
早上八点五十,我攥着工牌在科创大厦19楼的玻璃门前站了三分钟,反复确认手机里的入职通知——"AI实验室-算法工程师 林舟"。电梯间的镜面映出我衬衫领口的褶皱,和口袋里露出来的《Python科学计算》书角,昨天熬夜背的NumPy函数还在脑子里打转转。
带我的导师叫张磊,工位上摆着半杯冷掉的美式,显示器上密密麻麻的代码界面里,穿插着用红色标注的"数据校验点"。他没太多寒暄,把一个存有数据集的U盘递给我时,指尖沾着淡淡的咖啡渍:"先熟悉下用户行为数据,明天给个基础的特征统计报告。"
打开Jupyter Notebook的瞬间,我昨天在宿舍里练得滚瓜烂熟的代码突然卡壳了。课本里的数据集永远是规整的——缺失值会明确标注,分类变量格式统一,甚至连异常值都带着友好的提示。但眼前的CSV文件里,"用户浏览时长"列混着字符串和浮点数,"设备型号"有的写"iPhone15",有的是一串乱码,最离谱的是,近三成的"用户性别"数据是空的。
我试着用Pandas的dropna()函数删除缺失值,结果数据集直接缩水了一半。张磊路过时扫了一眼屏幕,没说话,只是把他的代码笔记推过来。我看见他处理缺失值时,先用value_counts()统计了非空值的分布,对"用户性别"这样的分类变量,用众数填充而非简单删除;对"浏览时长"的异常值,他用IQR方法计算合理区间,而不是一刀切地剔除。
"AI工程师不是做数据搬运工,"他给我的咖啡续了点热水,"你看到的每一个缺失值、每一条乱码,背后都是真实的用户行为。数据是模型的原料,你对原料的态度,决定了模型的上限。"我低头看着自己写砸的代码,突然明白为什么面试时他反复问"如何评估数据质量"——那些当时觉得抽象的问题,此刻都变成了眼前的具体难题。
下午六点,同事们陆续下班,我终于用张磊教的方法完成了初步的数据清洗。当Matplotlib画出的用户活跃时段分布图在屏幕上显示时,那些原本杂乱无章的数据突然有了规律——晚上八点到十点是明显的峰值,周末的活跃时间比工作日延长两小时。这些藏在数据里的规律,比课本上的公式更让我觉得兴奋。
离开办公室时,电梯里遇到张磊,他看了眼我手机备忘录里记满的笔记,笑了笑:"明天我们聊聊特征工程,记住,好的特征比复杂的模型更重要。"走出科创大厦,晚风带着初秋的凉意,我抬头看见写字楼的灯光一盏盏亮起,突然觉得那些曾经让我仰望的AI技术,正在这些数据和代码里,慢慢向我展开它的模样。
今晚的任务:把特征工程的基础概念再啃一遍,明天不能再让代码在数据里"迷路"了。