如果你也是非算法背景,甚至只有一点Python基础,想用AI真正动手做点“听起来很高级”的东西,这篇应该能给你省不少时间。
01 项目背景与动机
一是好奇AI写代码到底到什么程度了。 业内都在用AI写代码,我想试试:完全靠AI,能不能把一个完整的机器学习项目跑通。
二是想补一下机器学习的基础流程。 现在数据开发岗位也在跟AI、模型沾边,招聘里越来越多要求“了解特征工程、模型训练”。二手车这个项目不大不小,刚好适合练手。
三是验证一个想法。 很多人说“AI会取代程序员”,我想自己试——AI能帮我到什么程度,哪些地方它帮不了。
我的目标很简单:跑通流程,分数控制在500以内(赛题分数越低越好)。
02 工具组合与分工
这次用了两个工具配合:
- CodeBuddy(PyCharm插件) :负责生成代码,数据探索、特征工程、模型训练这些框架代码都是它给的。
- DeepSeek:负责解释概念、给建议、帮我理解结果。不懂的术语、参数、现象,直接问。
一句话:一个负责“写”,一个负责“想”。
03 AI具体帮我做了什么
场景一:理解题目和数据
一开始我连“MAE”是什么都不知道。直接把赛题描述扔给DeepSeek,它告诉我:
“MAE是平均绝对误差,数值越小越好。这个赛题就是预测二手车价格。”
然后让CodeBuddy生成数据探索代码,跑出来发现:
- 训练集15万条,测试集5万条
- 30多个特征,v_0到v_14是匿名的
- power(功率)偏度特别高
这些基础认知,如果自己啃,可能要半天。AI帮我压缩到了半小时。
场景二:提示我做特征工程
我完全不懂“特征工程”是什么。DeepSeek解释:
“就是把原始数据变成模型更容易学习的格式。比如车龄、里程可能需要变换,或者把几个特征乘起来产生新的。”
然后我问它“二手车一般用哪些特征”,它列了车龄、里程、品牌,还特意提了一句:
“v_0到v_14虽然是匿名的,但通常很重要,可以尝试做交互特征。”
这个提示后来帮了大忙。我让CodeBuddy生成特征重要性分析,发现v_0和v_3排在前列(见下图),于是加了一个交互特征:
train_df['v0_v3_interaction'] = train_df['v_0'] * train_df['v_3']
| 特征 | 重要性排名 |
|---|---|
| v_0 | 2 |
| v_3 | 5 |
| power | 8 |
| ... | ... |
这个特征确实有效。如果自己瞎琢磨,根本想不到要去乘两个匿名特征。
场景三:理解模型和参数
第一次跑XGBoost,MAE是600多。我问DeepSeek怎么优化,它说:
“XGBoost有很多参数可以调,比如learning_rate、max_depth、n_estimators。一般先调learning_rate,再调其他。”
虽然我不完全理解这些参数,但至少知道了:调参数有顺序,不是乱试。
后来让CodeBuddy生成参数组合测试代码,发现learning_rate=0.02、max_depth=8、n_estimators=5000最稳。AI给的初始参数是0.1,调低后过拟合明显改善。
场景四:解释结果
最让我困惑的是:本地交叉验证MAE是480,提交后却变成550。
我把情况问DeepSeek,它给了几个可能原因:
- 过拟合
- 训练集和测试集分布不一致
- 特征泄露
它没直接告诉我答案,但给了排查方向。后来我自己一个个特征删掉去试,发现是creatDate这个特征在训练集和测试集分布不同,删掉后好了一些。
04 一个完整案例:我是怎么做出v0_v3交互特征的
这个例子最能说明“AI怎么帮我,我又做了什么”。
第一步:AI帮我跑特征重要性 让CodeBuddy生成代码,跑出来v_0排第2,v_3排第5。
第二步:我问AI这俩特征是什么 DeepSeek说:“v_0到v_14是匿名特征,可能代表车辆的技术参数或市场评分。你可以试试把它们做交互,比如相乘。”
第三步:我动手加特征 在特征工程代码里加了两行:
train_df['v0_v3_interaction'] = train_df['v_0'] * train_df['v_3']
test_df['v0_v3_interaction'] = test_df['v_0'] * test_df['v_3']
第四步:验证效果 重新跑模型,XGBoost单模型的MAE从500左右降到490左右。
第五步:延续这个思路 后来又加了一系列特征:
- v_0和power的对数变换
- car_age(车龄)
- v_0与power、car_age的交互
这些特征里,大部分是AI提示方向后,我自己动手加的。 代码里最终用了30多个特征,是一轮轮验证、取舍的结果。
05 双模型集成:从490到475的关键一步
单模型做到490分后,再怎么调参都难降了。我问DeepSeek下一步,它说:
“可以试试模型集成,比如XGBoost + LightGBM。两个模型结构不同,融合后往往能提升稳定性。”
我让CodeBuddy生成双模型+5折交叉验证的代码框架,然后自己试了5组权重:
| XGBoost权重 | LightGBM权重 | 5折CV MAE(均值) |
|---|---|---|
| 50% | 50% | 483 |
| 60% | 40% | 479 |
| 70% | 30% | 475 |
| 80% | 20% | 477 |
| 90% | 10% | 481 |
发现70% XGB + 30% LightGBM最稳,5折分数波动最小。
集成代码:
ensemble_val_pred = 0.70 * xgb_val_pred + 0.30 * lgb_val_pred
从单模型的490,到双模型的475,这15分的提升,是“AI给方向 + 我自己试权重”配合出来的。
06 AI能帮我什么,帮不了什么
这次跑下来,我对AI的边界有了更清晰的认识:
| AI能帮我 | AI帮不了我 |
|---|---|
| 快速生成代码框架(数据加载、特征工程、模型训练) | 业务理解(为什么v_0重要?只能靠猜) |
| 解释概念(MAE、特征工程、过拟合) | 特征合理性判断(加了特征分数变差,AI说不清为什么) |
| 提供调参方向和顺序 | 过拟合的具体定位(哪个特征导致的?得自己试) |
| 给出模型集成思路 | 判断“什么时候该停” |
总结一句话:AI让“不会写代码的人也能跑通流程”,但“做得好不好”还是取决于你对业务和数据的理解。
07 整体感受
好的方面:
- 快速入门:从完全不懂,到跑通全流程,AI压缩了入门时间
- 框架完整:数据加载、特征工程、模型训练、交叉验证,代码生成得很完整
- 随时提问:不懂的概念随时问,不用到处搜
不如预期的方面:
- 关键决策还得靠自己:选哪些特征、怎么判断过拟合,AI给不了确定答案
- 生成的代码需要调整:路径、文件读取这些细节经常要自己改
- 调试时容易卡住:代码跑不通时,不懂的人只能删了重来
最大的收获: AI是一个很好的“脚手架”——帮你快速搭起框架,让你不用从零开始。但真正“盖房子”的能力(判断什么特征合理、什么参数有效、什么结果可信),还是得自己积累。
08 如果你也想试试,可以这样做
- 选个小项目:别一上来就搞复杂的,天池、Kaggle的入门赛正合适
- 工具搭配:一个负责生成代码(CodeBuddy、GitHub Copilot),一个负责解释提问(DeepSeek、ChatGPT)
- 别迷信AI的第一次输出:路径、文件读取这些细节经常要自己改
- 多问“为什么” :不要只让它生成代码,多问“这个参数什么意思”“这个操作为什么有效”
- 自己验证效果:AI推荐的特征可以试试,但效果好不好,一定要自己跑一遍
- 设定好“停”的标准:想清楚做到什么程度就够,别被AI的建议带着无限优化下去
最后,我一个数据开发,用AI做机器学习项目,学到的是:
AI能帮你跨过“不会写代码”的门槛,但跨过之后,真正的门槛是“怎么判断”和“怎么选择”。
这些判断和经验,没法靠AI速成,只能靠自己一次次试错、一次次复盘。
工具在变,但“动手实践”这件事,从来没变过。
用时2天 / 成绩475分(排名409) 工具:CodeBuddy(PyCharm插件)+ DeepSeek / Python (XGBoost, LightGBM)
赛题链接:天池二手车价格预测学习赛 DeepSeek官网:chat.deepseek.com
你在用AI做开发/学习时遇到过什么问题?欢迎留言。