火爆GitHub:100天搞定机器学习编程
消息来源:baojiabao.com 作者: 发布时间:2026-05-13

问耕 栗子 发自 麦蒿寺
量子位 出品 | 公众号 QbitAI
你是想喝一辈子糖水,还是想用AI改变世界?
但怎么想是一回事,怎么做往往是另一回事。学习和健身一样,不少人都停留在口头上,有各种借口不曾付诸实施。
为此,YouTube网红Siraj Raval发起了一个挑战赛:#100DaysOfMLCode。
这个挑战赛意在号召大家行动起来,从参与活动的那天起,每天至少花费1小时的时间来学习提升或者应用编程,连续坚持100天,从而更好的理解和掌握机器学习这个强大的工具。积跬步、至千里。
而且参加这个活动,还要使用#100DaysOfMLCode这个标签,在社交平台每日“打卡”,公开记录自己的工作。
你想在这100天里学到什么,或者完成一个项目全凭自主决定。大家的选择五花八门,其中有一个小哥的学习计划,很快引发大家的关注。
这个小哥名叫Avik Jain(重名的不少),他的百天计划,是从机器学习的基础概念起步,逐层递进,内容比较适合初学者。
这个100天搞定机器学习编程的项目,现在已经是爆红GitHub,很快累积了3000多标星,在Twitter上,也有一大票人热捧这个项目。
同是百天计划,这个有什么特别之处?三点:
1、超赞的学习图片
2、配套的代码
3、相应的数据集
对这个项目的评价,多以awesome、great、fantastic、outstanding、perfect等评价,大家纷纷表示感谢(并祝楼主好人一生平安)。
项目地址在此:
https://github.com/Avik-Jain/100-Days-Of-ML-Code
请你一定收藏好。
目前作者的100天计划,已经进行到第25天,已有的内容包括:
数据预处理、线性回归、逻辑回归、K最邻近算法、支持向量机、深度学习专项课程等,最新的内容已经讲到决策树及实现等。
量子位摘录其中的部分内容,做个示例。
第一天
看上去,真是美好的一天。
第一步:导入一些库
Numpy和Pandas这两个,是非常重要的库。
Numpy里面有各种数学函数,Pandas是用来导入数据集、管理数据集的。
第二步:导入数据集
数据集通常是.csv格式。CSV文件,是把表格数据,存储成纯文本。每一行是一个数据记录 (Data Record) 。
在Pandas库里面,用read_csv的方法,来读取本地的CSV文件,每个文件是一个数据帧 (Data Frame) 。
给每个数据帧里的自变数和因变数,分别做矩阵和向量。
第三步:处理缺失数据
我们获取的数据,通常是异构数据。导致缺失数据 (Missing Data) 的原因有很多,需要处理一下,模型的表现才不会减损。
可以把缺失的数据,用整列数据的平均值或者中位数代替。拿sklearn.preprocessing里的Imputer来处理。
第四步:编码分类数据
分类数据 (Categorical Data) 里的变数,不包含数值,只包含分类标签。
比如,是/否,性别,婚姻状态,这样的变数,是没办法当成数值直接运算的。
所以,才需要把它们编码成能够运算的数值。用sklearn.preprocessing里面的LabelEncoder就可以了。
创建个虚拟变数:
第五步:分开训练集和测试集
要把数据集分成两半,一个当训练集,另一个当测试集。
一般来说,可以按80/20这样分,训练集大一些。用sklearn.crossvalidation里面的train_test_split()来分,就行了。
第六步:特征缩放
大部分机器学习算法,都会拿两个数据点之间的欧几里得距离 (Euclidean Distance) 做计算。
这样一来,如果一个特征比其他特征的范围值更大,这个特征值就会成为主导。
而我们希望其他特征,也得到同等的重视,所以用特征标准化(Feature Standardization) 来解决这个问题。
sklearn.preprocessing里面的StandardScalar,就派上用场了。
第二天
今天,要做的是简单线性回归(Simple Linear Regression) 。
就是拿已知的那些 (x,y) 数据点,做出一条线性的趋势,来预测其他x值,对应的y。
第一步:数据预处理
其实,就是把第一天做过的事情,复习一下:
· 导入一些库
· 导入数据集
· 处理缺失数据
· 把数据集分成训练集和测试集
· 特征缩放的话,交给库了
第二步:拟合训练集
要把数据集,拟合到简单线性回归模型里面去,可以用sklearn.linear_model里面的LinearRegression来解决。
在LinearRegression里面,建一个叫做regressor的对象。
然后,把regressor拟合到数据集里去,用fit()就行了。
第三步:预测结果
现在,用测试集来预测一下。
把输出存到一个向量Y_pred里面。然后,用LinearRegression里面的预测方法,来支配上一步训练过的regressor。
第四步:可视化
最后一步,就是给预测结果做个可视化。
用matplotlib.pyplot做散点图,给训练集和测试集都做一下,看看预测结果是不是接近真实。
训练集可视化:
测试集可视化:
两件需要提醒的事
总之,大概就是上面这个样子。部分已经放出的信息图集合如下,大家可以预览一下。
如果你也想入门或者提升自己的机器学习能力,不妨试试跟着这个小哥一起学习进步。虽然这个项目全是英文,但并不晦涩高深,说不定还能顺便提高一下英文水平,以后读paper也用得到~
还有两件事,需要提醒一下。
1、这个项目已经开始汉化了
@zhyongquan 在GitHub上已经开始尝试中文版,效果如下图所示。
不过目前只进行了第一天内容的汉化。如果你感兴趣,可以持续关注,或者加入汉化的行动中。地址在此:
https://github.com/Avik-Jain/100-Days-Of-ML-Code/issues/8
2、项目内容不能盲信
尽信书不如无书。这个学习项目,也不是百分百完全正确,比如第四天讲逻辑回归时的右下角配图,就被指出存在错误。
作者也承诺将更新改正这个问题。
就酱。
最后,再发一次这个项目的地址:
https://github.com/Avik-Jain/100-Days-Of-ML-Code
请你一定收藏好,如果能开始学习那就更好啦。
如果这种偏入门的内容不适合你,还有更多进阶或者具体项目实现的100天计划可供参考,希望能帮助你精进。
比方#100DaysOfMLCode挑战赛发起人Siraj Raval,就选择了在100天里,使用机器学习技术,根据气温、降水、植被变化等因素,预测每周的登革热疫情,改善防疫的研究计划和资源分配。
你也可以选择其他项目,或者在Twitter、GitHub等看看别人的100天挑战,有没有你合适跟随的,或者全新启动你的挑战。
对了Siraj Raval还在GitHub和YouTube上发布过很多其他机器学习课程,例如三个月学习机器学习,六周入门深度学习等。
相关地址在此:
https://github.com/llSourcell
总之,原则就是每天进步一点点。
加油。
—
完—
相关文章
B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因2023-03-06 19:05:55
苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓2023-02-19 15:09:54
华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?2023-02-17 23:21:27
google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元2023-02-17 18:58:09
科大讯飞同传同声翻译软件造假 浮夸不能只罚酒三杯2023-02-17 18:46:15
华为mate20pro系列手机首发上市日期价格,屏幕和电池参数配置对比2023-02-17 18:42:49
小米MAX4手机上市日期首发价格 骁龙720打造大屏标准2023-02-17 18:37:22
武汉弘芯遣散!结局是总投资1280亿项目烂尾 光刻机抵押换钱2023-02-16 15:53:18
谷歌GoogleDrive网云盘下载改名“GoogleOne” 容量提升价格优惠2023-02-16 13:34:45
巴斯夫将裁员6000人 众化工巨头裁员潮再度引发关注2023-02-13 16:49:06
人手不足 韵达快递客服回应大量包裹派送异常没有收到2023-02-07 15:25:20
资本微念与李子柒销声匿迹谁赢? 微念公司退出子柒文化股东2023-02-02 09:24:38
三星GalaxyS8 S9 S10系统恢复出厂设置一直卡在正在检查更新怎么办2023-01-24 10:10:02
华为Mate50 RS保时捷最新款顶级手机2022多少钱?1.2万元售价外观图片吊打iPhone142023-01-06 20:27:09
芯片常见的CPU芯片封装方式 QFP和QFN封装的区别?2022-12-02 17:25:17
华为暂缓招聘停止社招了吗?官方回应来了2022-11-19 11:53:50
热血江湖手游:长枪铁甲 刚猛热血 正派枪客全攻略技能介绍大全2022-11-16 16:59:09
东京把玩了尼康微单相机Z7 尼康Z7现在卖多少钱?2022-10-22 15:21:55
苹果iPhone手机灵动岛大热:安卓灵动岛App应用下载安装量超100万次2022-10-03 22:13:45
苹果美版iPhone可以在中国保修 从哪看怎么查询iPhone的生产日期?2022-09-22 10:00:07










