人工智能(Artifical Intelligence) 和 机器学习(Machine Learning)行业正以前所未有的方式蓬勃发展。截至 2021 年,人工智能商业案例的市场规模增加到了 2.9 万亿美元。人工智能已经使全球许多行业实现了自动化,并改变了它们的运作方式。大多数大公司都将人工智能纳入其工作流程以最大限度地提高生产力,特别是营销、医疗保健等行业由于人工智能的整合带来了了革命性的转变。
2015 - 2018,这短短的3年,与人工智能及机器学习相关的招聘职位几乎增加了 100%。自那以后,这个数字一直在增长,预计本年度(2022)还会继续增加。
如果你打算进入机器学习行业,好消息是工作机会众多,越来越多的公司需要一支能够引领向机器学习转变的优秀员工队伍。坏消息是,你必须具备足够的理论基础及项目实践经验。
您还需要迟疑么?一个可供您参考的消息——目前已经有超过 400 万学员参加了 Andrew Ng 的机器学习在线课程。
然而,不幸的是,参加在线课程或参加机器学习训练营确实可以帮助您学习理论概念,但无法帮助您提升行业经验。在学习了理论之后,还有更多的动手工作要做。
假设您已了解机器学习算法的基础知识——您了解回归和分类模型的工作原理,并且您了解不同类型的聚类方法。你将如何练习使用你所学的机器学习技能来解决现实生活中的问题?答案是 - 实践、实践再实践。
一旦你完成了理论概念的学习,你应该着手开始研究人工智能和机器学习相关项目。这些项目将为您提供磨练该领域技能所需的实践,完善您的行业实践履历。
事不宜迟,让我们开始吧。本文将针对学生、有抱负的机器学习从业者和非机器学习科班出生人员提供一些最佳机器学习项目的精选实践项目列表。无论您的背景如何,只要您具备一些编码和机器学习领域的基本知识,您都可以学习这些项目并将这些项目经验用于项目实践。
本文将主要着手于 Kaggle 项目库,分别针对机器学习初学者和高级人员给出推荐列表。
如果您是机器学习或者数据行业的新手并且对实际项目几乎没有经验,请先从初学者级别开始,然后再转向更具挑战性的高阶项目。
面向初学者的机器学习项目
1. Kaggle 泰坦尼克号预测
本项目最适合初学的您,适合机器学习以及数据专业初学者。
该数据集是乘坐泰坦尼克号的乘客信息,包含乘客年龄、票价、舱位和性别等详细信息。根据这些信息,您需要预测这些乘客是否能够生还。
这是一个简单的二元分类问题,您需要做的就是预测特定乘客是否幸存。这个数据集最好的一点是所有的数据预处理工作都已经为你完成了,你有一个漂亮、干净的数据集来训练你的机器学习模型。
由于这是一个分类问题,您可以选择使用逻辑回归、决策树和随机森林等算法来构建预测模型。您还可以为这个初学者级别的机器学习项目选择梯度提升模型,例如 XGBoost 分类器,以获得更好的结果。
Kaggle Titanic 数据集下载:
2. 房价预测
如果您是机器学习的初学者,房价数据也是很好的起点。该项目将使用 Kaggle 上提供的房价数据集。此数据集中的目标变量是特定房屋的价格,您需要使用房屋面积、卧室数量、浴室数量和公用设施等信息进行房价预测。
这是一个回归问题,您可以使用线性回归等技术来构建模型。您同样可以采用更高级的方法并使用随机森林回归器或梯度提升来预测房价。
该数据集有 80 列,不包括目标变量。您将需要使用一些降维技术来手工挑选特征,因为添加太多变量会使您的模型表现不佳。
数据集中还有许多分类变量,因此您需要使用 one-hot encoding 或 label-encoding 等技术正确处理它们。
构建模型后,您可以将预测提交给 Kaggle 的房价竞赛项目,此项目仍然开放。竞争对手取得的最佳 RMSE 为 0,许多人在回归和梯度提升技术的帮助下取得了 0.15 之类的好结果。
3. 酒质预测
葡萄酒质量预测数据集在数据行业的初学者中也很受欢迎。在这个项目中,您将使用固定酸度、挥发性酸度、酒精度和密度来预测红酒的品质。
这可以被视为分类或回归问题。您需要在数据集中预测的葡萄酒质量变量范围为 0-10,因此您可以建立回归模型进行预测。您可以采取的另一种方法是将值(从 0 到 10)分解为离散区间并将它们转换为分类变量对应三个类别,例如:低、中和高。
然后,您可以构建决策树分类器或任何分类模型来进行预测。它是一个相对干净的数据集,用于训练回归和分类机器学习模型。
Kaggle 红酒质量数据集下载:
4. 心脏病预测
如果您想探索医疗保健行业的数据集,这是一个很好的初学者级数据集。该数据集用于预测 CHD(冠心病)的 10 年风险。该数据集中的因变量是心脏病的危险因素,包括糖尿病、吸烟、高血压和高胆固醇水平。自变量是冠心病的 10 年风险。
这是一个二元分类问题,对于从未患过心脏病的患者,目标变量为 0 或 1-0,对于患过心脏病的患者,目标变量为 1。您可以在此数据集上执行一些特征选择,以识别最容易导致心脏病风险的特征。然后,您可以将分类模型拟合到自变量上。
该数据集高度不平衡,因为该数据集中的许多患者没有患心脏病。需要使用正确的特征工程技术(例如过采样、权重调整或欠采样)来处理不平衡的数据集。如果处理不当,您最终获得的模型将只能预测每个数据点的多数类别,而无法识别确实患有心脏病的患者。这是一个很好的数据集,供您练习特征工程和机器学习技能。
Kaggle 心脏病数据集下载:
5. MNIST 数字分类
MNIST数据集是您进入深度学习(Deep Learning)领域的垫脚石。该数据集包含从 0 到 9 的手写数字的灰度图像。您的任务是使用深度学习算法识别数字。这是一个多类分类问题,有十个可能的输出类。您可以使用 卷积神经网络(CNN)来执行此分类。
MNIST 数据集是在 Python 的 Keras 库中构建的。您需要做的就是安装 Keras、导入库并加载数据集。该数据集包含大约 60000 张图像,因此您可以将其中大约 80% 的图像用于训练,另外 20% 用于测试。
Kaggle MNIST 数字分类数据集下载:
6. Twitter 数据情绪分析
Kaggle 上有许多 Twitter 情绪分析数据集。最流行的数据集之一称为 Sentiment140,其中包含 160 万条预处理推文。如果您不熟悉情绪分析,这是一个很好的开端。
这些推文已经过注释,目标变量是情绪,列中的唯一值是 0(负)、2(中性)和 4(正)。
在对这些推文进行预处理并将它们转换为向量之后,您可以使用分类模型来进行训练。您可以为此任务使用逻辑回归、决策树分类器或 XGBoost 分类器等算法。
另一种选择是使用像 LSTM(Long short-term memory) 这样的深度学习模型来进行情绪预测,这是一种特殊的RNN。但是,这是一种更具挑战性的方法,属于高级项目类别。
您还可以将此标记的数据集用作未来情绪分析任务的基础。如果您有任何想要收集和执行情感分析的推文,您可以使用先前已在情感 140 上训练过的模型来进行预测。
Kaggle Sentiment140 数据集:
7. Pima 印度糖尿病预测
Pima Indian Diabetes Dataset 用于根据诊断测量来预测患者是否患有糖尿病,基于 BMI、年龄和胰岛素等变量。
该数据集有九个变量——八个自变量和一个目标变量。目标变量是糖尿病预测结果,数值 1 表示存在糖尿病或 0 表示不存在糖尿病。
这是一个分类问题,用于试验逻辑回归、决策树分类器或随机森林分类器等模型。
这个数据集中的所有自变量都是数字,所以如果您是位新手,这是一个很好的数据集。
Kaggle Pima 印度糖尿病数据集:
8. 乳腺癌分类
Kaggle 上的乳腺癌分类数据集是练习机器学习和 AI 技能的另一种绝佳方式。
现实世界中大多数有监督的机器学习问题都是这样的分类问题。乳腺癌鉴定的一个关键挑战是无法区分良性和恶性肿瘤。该数据集具有肿瘤的“radius_mean”和“area_mean”等变量,您需要根据这些特征来对肿瘤是否为恶性来进行分类。
该数据集相对易于使用,因为不需要进行任何数据预处理。它也是一个平衡良好的数据集,它将使您的任务更易于管理,因为您不需要做太多的特征工程。
在这个数据集上训练一个简单的逻辑回归分类器可以给你高达90%的准确率。
Kaggle 乳腺癌分类数据集:
9. TMDB票房预测
这个 Kaggle 数据集适用于练习回归技能。它由大约 7000 部电影组成,您需要使用存在的变量来预测电影的收入。
存在的数据点包括演员、工作人员、预算、语言和电影发布日期。数据集中有 23 个变量,其中一个是目标变量。
一个基本的线性回归模型可以为您提供超过 0.60 的 R 平方,因此您可以将其用作基线预测模型,然后尝试使用 XGBoost 回归或 Light GBM 等技术来打破这个分数。
此数据集比前一个数据集稍微复杂一些,因为某些列的数据存在于嵌套字典中。所以,你需要做一些额外的预处理来提取这些数据,以便在其上训练模型。
收入预测可以为投资策略提供高的参考价值,同时也被广泛用于电影行业以外的各种商业领域价值预测。
Kaggle TMDB 票房预测数据集:
10. Python 中的客户细分
Kaggle 上的客户细分数据集是开始进入无监督机器学习的好入口。该数据集包含客户详细信息,例如年龄、性别、年收入和支出分数。
您需要使用这些变量来构建客户群。相似的客户应该被分组到相似的集群中。您可以为此任务使用 K-Means 聚类或层次聚类等算法。客户细分模型可以提供商业价值。
公司通常希望将他们的客户区分开来,为每种客户类型提供不同的营销技术。
该数据集的主要目标包括:
- 使用机器学习技术实现客户细分
- 为不同的营销策略确定您的目标客户
- 了解营销策略如何在现实世界中发挥作用
为此任务构建聚类模型可以帮助您的投资组合脱颖而出,如果您希望在营销行业获得与 AI 相关的工作,那么客户分类是一项很棒的常用技能。
Kaggle Mall 客户细分数据集:
中级/高级机器学习项目
一旦你掌握了上面列出的入门机器学习项目,你便可以继续进入更具挑战性的项目。
1. 销售预测
时间序列预测是业界经常使用的机器学习技术。使用过去的数据来预测未来的销售有大量的实用案例。Kaggle 需求预测数据集可以用来练习这类项目。
该数据集包含 5 年的销售数据,您需要预测未来三个月的销售情况。数据集中列出了十个不同的商店,每个商店有 50 个商品。
要预测销售额,您可以尝试各种方法——ARIMA、向量自回归或深度学习。您可以用于此项目的一种方法是测量每个月的销售额增长并记录下来。然后,根据上月和当月销售额之间的差异构建模型。考虑假期和季节性等因素可以提高机器学习模型的性能。
Kaggle 商店商品需求预测:
2.客服机器人
客户服务聊天机器人使用人工智能和机器学习技术来回复客户,扮演人类客服角色。聊天机器人应该能够回答简单的问题以满足客户的需求。
目前,您可以构建三种聊天机器人:
- 基于规则的聊天机器人——这些聊天机器人并不智能。他们被提供一组预定义的规则,并且仅根据这些规则回复用户。一些聊天机器人还提供了一组预定义的问题和答案,并且无法回答超出此域的查询。
- 独立聊天机器人——独立聊天机器人利用机器学习来处理和分析用户的请求并相应地提供响应。
- NLP 机器人——这些聊天机器人可以理解单词中的模式并区分不同的单词组合。它们是所有三种聊天机器人类型中最先进的,因为它们可以根据训练过的单词模式想出接下来要说什么(上下文联想)。
NLP 聊天机器人是一个有趣的机器学习项目案例。您将需要一个现有的词库来训练您的模型,并且您可以轻松找到 Python 库来执行此操作。您还可以拥有一个预定义的字典,其中包含您想要训练模型的问答对列表。
3. 野生动物识别系统
如果您居住在经常看到野生动物的地区,那么实施对象检测来识别它们分别哪种动物将是个有趣的实践。
您可以按照以下步骤构建这样的系统:
- 在您要监控的区域安装摄像头。
- 下载所有视频片段并保存。
- 创建一个 Python 应用程序来分析传入的图像并识别野生动物。
微软使用从野生动物相机收集的数据构建了一个图像识别 API。为此,他们发布了一个开源的预训练模型,称为 MegaDetector。
您可以在 Python 应用程序中使用此预训练模型从收集的图像中识别野生动物。它是迄今为止提到的最令人兴奋的 ML 项目之一,由于为此目的提供了预训练模型,因此实现起来非常简单。
API:
4. Spotify 音乐推荐系统
Spotify 使用人工智能向用户推荐音乐。您可以尝试根据 Spotify 上的公开数据构建推荐系统。
Spotify 有一个 API,您可以使用它来检索音频数据——包含发布年份、密钥、流行度和艺术家等信息。要在 Python 中访问此 API,您可以使用名为 Spotipy 的库。
您还可以在 Kaggle 上使用大约 60万 行的 Spotify 数据集。通过使用这些数据集,您可以为每个用户喜欢的艺术家推荐最佳替代人物。您还可以根据每个用户喜欢的内容和流派进行歌曲推荐。
这个推荐系统可以使用 K-Means 聚类来构建——相似的数据点将被分组,您可以向最终用户推荐它们之间具有最小集群内距离的歌曲。
构建推荐系统后,您还可以将其转换为简单的 Python 应用程序并进行部署。您可以让用户在 Spotify 上输入他们最喜欢的歌曲,然后在屏幕上显示与他们喜欢的歌曲相似度最高的推荐歌曲。
Kaggle Spotify 数据集:
5. 市场篮子分析
市场购物篮分析是零售商用来识别可以一起销售的商品的流行技术。
例如:
几年前,一位研究分析师发现啤酒和尿布的销量之间存在相关性。大多数时候,每当顾客走进商店买啤酒时,他们也会一起买尿布。
因此,商店开始在同一条过道上同时销售啤酒和尿布,作为增加销售额的营销策略。它奏效了。
假设啤酒和尿布具有高度相关性,因为男性经常一起购买它们。男人会走进商店为他们的家人购买啤酒以及其他一些家居用品(包括尿布)。
这似乎是一个非常不可能的相关性,但它确实发生了。
购物篮分析可以帮助公司识别经常一起购买的商品之间隐藏的相关性。然后,这些商店可以以一种让人们更容易找到它们的方式放置它们的物品。
您可以使用 Kaggle 上的 Market Basket Optimization 数据集来构建和训练您的模型。通常,用于执行市场篮子分析的最常用算法是 Apriori 算法。
Kaggle 市场篮子优化数据集:
6. 纽约出租车行程时间预测
该数据集的变量包括出租车行程的开始和结束坐标、时间和乘客数量。这个 ML 项目的目标是使用所有这些变量来预测行程持续时间。这是一个回归问题。
时间和坐标等变量需要进行适当的预处理并转换为可理解的格式。这个项目并不像看起来那么简单。该数据集还有一些异常值,使预测更加复杂,因此您需要使用特征工程技术来处理这个问题。
本次纽约出租车旅行 Kaggle 比赛的评估标准是 RMSLE 或均方根对数误差。Kaggle 上的最高提交获得了 0.29 的 RMSLE 分数,而 Kaggle 的基线模型的 RMSLE 为 0.89。
你可以使用任何回归算法来实现这个 Kaggle 项目,但是这个挑战中表现最好的竞争对手要么使用了梯度提升模型,要么使用了深度学习技术。
Kaggle 纽约出租车行程时间数据集:
7. 实时垃圾邮件检测与分类
在这个项目中,您可以使用机器学习技术来区分垃圾邮件和正常邮件。
为此,您可以使用 Kaggle SMS Spam Collection 数据集。该数据集包含一组大约 5000 条被标记为垃圾邮件或非正常邮件的消息。
您可以采取以下步骤来构建实时垃圾邮件检测系统:
- 使用 Kaggle 的 SMS Spam Collection 数据集来训练机器学习模型。
- 用 Python 创建一个简单的聊天室服务器。
- 在您的聊天室服务器上部署机器学习模型,并确保所有传入流量都通过该模型。
- 仅当邮件被归类为 ham 时才允许邮件通过。如果它们是垃圾邮件,将被标记返回错误消息。
要构建机器学习模型,您首先需要预处理 Kaggle 的 SMS Spam Collection 数据集中存在的文本消息。然后,将这些消息转换成一个词包,以便它们可以轻松地传递到您的分类模型中进行预测。
Kaggle SMS 垃圾邮件数据集:
8. Myers-Briggs 人格预测
您可以创建一个应用程序来根据用户所说的话来预测用户的性格类型。
Myers-Briggs 类型指标将个人分为 16 种不同的人格类型——它是世界上最受欢迎的性格测试之一。
如果您尝试在 Internet 上查找您的性格类型,您会发现许多在线测验。在回答了大约 20-30 个问题后,您将被分配到一种性格类型。
但是,在本项目中,您可以使用机器学习仅根据一句话来预测任何人的性格类型。
您可以通过以下步骤来构建系统:
- 构建多类分类模型并在 Kaggle 上的 Myers-Briggs 数据集上对其进行训练。这涉及数据预处理(去除停用词和不必要的字符)和一些特征工程。为此,您可以使用逻辑回归等浅层学习模型或 LSTM 等深度学习模型。
- 您可以创建一个应用程序,允许用户输入他们选择的任何句子。
- 保存您的机器学习模型权重并将模型与您的应用程序集成。最终模型能够根据用户输入的一句话做出预测,在屏幕上显示他们的性格类型。
Kaggle MBTI 类型数据集:
9. 情绪识别系统 + 推荐系统
你是否曾经悲伤过,觉得需要看一些有趣的东西来振作起来?或者您是否曾经感到如此沮丧,以至于需要观看一些放松的节目?
该项目是两个较小项目的组合。
您可以构建一个应用程序,该应用程序可以根据实时网络镜头和基于用户表情的电影建议来识别用户的情绪。
要构建它,您可以采取以下步骤:
- 创建一个可以接收实时视频源的应用程序。
- 使用 Python 的面部识别 API 来检测视频源中对象的面部和情绪。
- 将这些情绪分类为各种类别后,开始构建推荐系统。这可以是每种情绪的一组硬编码值,这意味着您不需要针对推荐进行机器学习。
- 完成应用程序的构建后,您可以将其部署在 Heroku、Dash 或 Web 服务器上。
API:
10. YouTube 评论情绪分析
在这个项目中,您可以创建一个仪表板来分析 YouTube 用户的整体情绪。
超过 20 亿用户每月至少观看一次 YouTube 视频。受欢迎的 YouTube 用户通过他们的内容获得了数千亿的观看次数。然而,这些影响者中的许多人由于过去的争议而受到抨击,公众的看法也在不断变化。
您可以构建情绪分析模型并创建仪表板来可视化名人周围的情绪随着时间推移产生的变化。
要构建它,您可以采取以下步骤:
- 抓取您要分析的 YouTube 用户对视频的评论。
- 使用预训练的情感分析模型对每条评论进行预测。
- 在仪表板上可视化模型的预测。您甚至可以使用 Dash (Python) 或 Shiny (R) 等库创建仪表板应用程序。
- 您可以通过允许用户按时间范围、YouTuber 名称和视频类型过滤情绪来使仪表板具有交互性。
API:
机器学习行业庞大且充满机遇。如果您想在没有科班教育背景的情况下进入该行业,那么唯一的途径就是通过自学并进行项目实践。
上面所列出的大多数项目的机器学习方面都非常简单,希望能够对您有所帮助。
通常,机器学习项目最棘手部分是数据收集、预处理和部署,而大多数算法的构建都会非常简单。例如创建销售预测模型可能只需一两天,但您将需要花费大部分时间用于寻找合适的数据源对模型进行训练,最后再将模型投入生产环境以获取商业价值。