机器学习其实是一个特别大的范畴,高效自学机器学习有两个方面的关键要素:首先要对机器学习有一个宏观的认识,知道哪些是领域是热门且重点领域,做到抓住重点,有的放矢;其次,你需要在熟练掌握一门语言工具的前提下结合具体项目实践,增加自己的实践经验,这个地方我给python打一个广告。
下面说一些具体的东西,可能会对你有所帮助。
1: 机器学习可以解决哪些问题?
主要分为两类问题:分类问题和回归问题,其中分类问题又可以分为多分类问题和多标签多分类问题。其他还有很多进阶版本的问题,一般由多个问题复合而成,比如物体检测,实际是把图像分割和分类问题整合到了一起;
2: 机器学习算法有哪些?
我们大体可以将机器学习的算法分为传统机器学习和深度学习算法。传统机器学习算法中,常见的有SVM,决策树,随机森林等,大都在sklearn中进行了集成,可以非常方便的调用。深度学习算法主要依赖学习框架,主流的包含Tensorflow和PyTorch,各有优缺点,请自行了解做进一步选择。其次就是深度学习的网络结构又可以分为卷积神经网络,递归神经网络,自动编码器,对抗生成网络,图卷积神经网络等。目前深度学习在各个领域都取得了巨大的性能提升,是机器学习中的重点领域,另外图卷积也逐渐成为重中之重;
3: 常见的机器学习的流程是什么样的?
一个不失一般性的流程由这么几部分构成:数据集整理,数据集预处理,数据集划分(训练集,测试集,验证集,常见比例7:1:2),模型训练,模型验证,模型测试。
4: 怎么评价模型性能好坏?常见指标有哪些?
我们通常使用验证集的数据测试并选择最终的模型,然后用测试数据集来测试我们模型的性能。得到最终模型后,我们可以使用更大的独立测试数据集来进一步评估模型的性能。评估模型性能,我们就需要使用具体的性能指标。根据数据集中不同类别样本的比例,我们将数据集分为均衡数据集和非均衡数据集。均衡数据集我们可以使用准确率、损失值、马修斯系数、F1-score、ROC 曲线以及 AUC 值等指标,这类数据集的评估相对容易。对于非均衡数据集,我们需要谨慎的使用准确率来衡量模型性能,结合具体问题,我们一般更多的使用F1-score和ROC-AUC等指标。
5: 关于公共数据集。
现在网上有很多公开的且标注完备的数据集,包括图像的、序列的、文本的等等,为机器学习提供了良好的学习环境。练手阶段需要充分利用这些资源!
此外,机器学习不是万能的,很多情况下性能取决于数据和问题定义,不是每一个问题都能用机器学习解决。尤其面对现实问题,要谨慎乐观,切勿盲目跳坑!