第一幕
旁白:周启源同意了坎德拉的微信申请
场景:微信聊天(坎德拉&周启源)
周启源心想:哎,现在的人,越来越会保护自己了。明明是好心帮他,他还用个小号加我。说不定,这个号,还是刚申请的呢。怪不得等那么久才来加我。
不过,如果我能够帮助这个人,然后用心去感化这位不知名的网友,让他也和我一样,去帮助更多的人。这样,世界上不是又多了一个天使了吗?
周启源:“论文发给你了”
坎德拉:“我下载了你推荐的pycharm,这个怎么用啊?根本不像matlab好吧[捂脸笑哭]”
周启源:“我是说 Spyder 像 Maltab[笑哭],pycharm 的话,你新建一个脚本文件,随便输入一句代码,直接右键点击 run 就可以运行代码了”
坎德拉:“哦,那输入什么好呢?”
周启源:“你就输入 print('hello world')就行了”
坎德拉:“点击运行了,没作用额,是不是您代码有问题啊[腼腆]”
周启源:“你配置了 Python 没?就是 pycharm 里面,有没有配置 python 啊?”
坎德拉:“配置python?不是说一站式的吗[笑哭]?”
周启源:“我说的那个是 Anaconda,不是 pycharm [笑哭]”
坎德拉:“哦哦,那怎么配置啊?”
周启源:你看看这篇文章,[文章链接]
坎德拉:“好吧,谢谢”
落幕
第二幕
旁白:兔子啦根据周启源的建议,仍旧无法解决问题。
场景: QQ 聊天(兔子啦&周启源)
兔子啦:“我按照你的建议试过了,结果还是很差。神经网络也用了,还是不行,仍然过拟合[哭]”
周启源心想:刚刚回了坎德拉,他那么菜,是不是这位也是小白呢?我得回复得仔细一点了。
周启源:“你有没有做数据预处理啊,就是对数据归一化,或者标准化之类的”
兔子啦:“我有用过 Zscore 标准化”
周启源:“先不用标准化,因为随机森林的基模型,决策树这个东西,不用标准化也行的。毕竟。决策树就是一张图嘛”
兔子啦:“哦,那我试试”
几分钟后
兔子啦:“还是不行”
周启源:“啊,那会不会是你数据有问题?数据的来源是?”
兔子啦:“我也怀疑数据有问题”
周启源:“你这是研究生的题目,还是企业的项目啊”
兔子啦:“企业的项目啊,研究生的题目还可以问问老师[笑哭]”
周启源心想:如果是企业的项目,那么数据应该不会有什么问题才对。我得探探,看她的数据是怎么来的。
周启源:“如果你觉得数据不行,你会怎么办?”
兔子啦:“重新找”
周启源:“哦,我以为数据是公司给你的哩”
兔子啦:“什么哟。自己捞的”
周启源:“额,那数据很可能有问题哦”
兔子啦:“我进行 EDA 的时候发现,特征与目标变量的相关系数很小,区分也不明显”
周启源:“数据分析嘛,是会有很多问题的,各种各样”
兔子啦:“从来没做过实际的项目,以前总是在 Kaggle、天池上面练,就很少碰到这种实际的问题。竞赛的时候,我一套方法下来一直有用。所以一直很顺,这下好了,遇到一个项目,只有我一个人做,负责的人都没有”
“哎!赶鸭子上架呢”
周启源:“能说说以前竞赛的时候,是怎么做的吗?”
兔子啦:“就是一个固定套路啦。先是数据预处理,标准化、降维、EDA之类的,然后交叉验证筛选最好的机器学习模型,机器学习不好,就换神经网络。这个套路一直很顺的”
周启源:“固定的套路,can't fit in with broken rhythm”
兔子啦:“哎,我现在觉得我就是个菜[哭]”
周启源:“emmmm,不能帮助你解决问题,我也没资格说你呵[笑哭]”
兔子啦:“你以前是怎么解决的呢?”
周启源:“其实也跟你差不多,就是预处理、筛模型、不好就神经网络”
兔子啦:“哎,我比你更菜,至少你懂的比我多”
周启源:“别这么说自己,我觉得我们,比那些只会用神经网络,只会到网上找现有的代码,其他什么都不懂的人好多了。我觉得,这种不叫数据分析师,叫搬砖学家。跟做苦力没什么区别”
兔子啦:“是啊,老板也不知底细,不懂水有多深。看到一个家伙,会用神经网络,就直接聘用了”
周启源:“说到变通,我倒是有一个想法。”
“你的问题是,根据用户的信息,给用户的信用做一个评分是吧?也就是,回归问题咯”
(注:根据数据特征,预测连续数值型因变量即为回归问题,如线性回归等。)
兔子啦:“什么变通,是啊,怎么了?”
周启源:“那就可以了。你可以把某个一分数阶段,划分为一类。然后就这样,将回归问题转换为分类问题”
兔子啦:“哦哦哦哦,看起来是个好办法”
周启源:“不过你得问问甲方同不同意呵”
兔子啦:“嗯,只能这样了”
[第二天]
兔子啦:“Hello,甲方宽宏大量,同意让我试试,叫我算查全率、查准率”
周启源:“那就太好了,查准率、查全率就是准确率(precision)、召回率(recall)吧?”
兔子啦:“这么叫也阔以”
周启源:“灵魂问题,那么交叉验证、训练模型的时候,你要用哪个指标作为评判指标呢?”
兔子啦:“别个有个博士后带团队,他们的项目全用 F1 值,我也考虑这样。”
周启源:“我建议你不要”
兔子啦:“为什么?”
周启源:“因为这种项目,一般是宁可错杀,不能放过。就像在防盗系统中,识别攻击行为时,要求尽量不能犯二类错误。本应该被识别为攻击行为的行为却没被识别,可能会带来很大的经济损失”
兔子啦:“哦,那这个项目是根据用户的信息,然后计算其信用度,并根据信用度,考虑是否给他贷款。这个,应该是宁可把信用高的归错,也不能误给信用低的贷款咯”
周启源:“是的,所以你应该用召回率(查全率),recall,作为筛选模型的指标”
兔子啦:“(⊙o⊙)…,我灵魂都碎一地了”
周启源:“我觉得,不要认为某人是博士后,就一定要向他看齐。因为 AI 是新兴技术,他们有些故步自封,早已被淘汰。人们碍于其威望,不愿告诉他这个事实罢了。当然,我们心照不宣,不说也行”
兔子啦:“嗯嗯”
周启源:“人们总是看重资历,因为老酒醇,老姜辣。但是,他们在看重资历的时候,总无法想起岁月是一把杀猪刀。老人们比年轻人积累得多,但他们未必不会忘得比较多。老人们虽然学的东西多,但未必接受新事物的能力强于年轻人。老人们比年轻人多出一些东西,但同时年轻人也比老人多另一些东西。但事实往往是人们忽略了年轻人的东西,而看重老年人的东西。”
“特别是在 AI 这个领域,我认为年轻人的多出的东西,远远比老年人多出的东西,价值要大。可是,陈腐的观念,永远是带着放大镜,放大年轻人的缺点,老年人的优点。我真心希望,你不要戴着这种有色眼镜看待别人,看待自己。”
兔子啦:“听君一席话,胜读十年书”
周启源:“好啦,你试试用分类问题能不能解决呗”
兔子啦:“看了一下数据分布,感觉低分群体的样本量太少了,用过采样行吗?”
(注:低分群体少,意味着类别不均衡。类别不均衡,就可能导致模型效果差。比如一个样本中,类别一和类别二的样本量比值为 99:1,那么一个只会点头的模型,就有可能达到 99%的准确率。这里的过采样,就是要将类别二的样本数量增多,解决类别不均衡问题。)
周启源:“我的建议,先欠采样删样本容量多的,再过采样,加少的。类别不均衡问题的话,可以用一个叫 imblearn 的模块,里面有现成的代码”
“不过,欠采样、过采样也要好多方法的额。。你有得学了”
兔子啦:“[哭]他们什么破服务器哟,不让联外网,pip install 用不起”
(注:pip install 用来安装 Python 模块的命令,需要联网)
周启源:“用清华源呀”
兔子啦:“这个不用连网?”
周启源:“不用连外网,但联网还是要的”
兔子啦:“[哭]连不起”
周启源:“真的假的,这么不自由,连网都不然上!(*@ο@*)哇~”
兔子啦:“不然我为毛要用 sklearn,第一次用 sklearn 就踩了好多坑”
(注:sklearn 是 Python 中的一个模块,可以用来实现机器学习)
周启源:“sklearn 好像没有什么欠采样的模块额.....”
兔子啦:“唉,只有手动写个了”
周启源:“你可以给样本设置权重......”
兔子啦:“嗯,我先试试吧”
落幕