转自:https://ask.julyedu.com/question/88729
基础知识:
常见算法的推导和特点、常见的特征提取方法、处理过拟合的方法、模型评估、模型集成、常见的网络结构、优化方法、梯度消失和爆炸都必须熟悉。这些都是课上讲到过的,只要多温习几遍也就熟悉了。如果有难点确实没理解的,可以拿时间专门攻克,这样可以增强信心。也可以直接请教别人。
项目方面:
重要的是理解算法原理和思想,能够将现实问题转化为机器学习的问题,不是编程经验。
注意知识的系统性和自己的优势
面试的时候,抓住自己熟悉的问题一定要说透,把相关的都说。这样也能把面试官的注意力吸引过来。同时占用了时间,被问到不熟悉领域的机会就少了。
比如问到xgboost,就从决策树(熵)到xgboost都说,同时还要说boost集成的方法,还可以扩展到其他的集成方法(bagging,stacking),还可以对比各种集成的特点,甚至还可以扩展到神经网络,因为神经网络也可以看作是一种集成。
比如问到词向量或嵌入,就从w2v,glove,elmo,到bert都说一遍。如果时间充裕,可以研究各种表示方法,很有意思的。
比如问到关键词提取,就把tf-idf,textrank,lda,都说一遍。如果还知道其他的关键词提取方法就更好。
总之,要让面试官看到你是系统的理解和掌握了,不是零碎的知识。
总结
传统机器学习一定要掌握:svm、lr、决策树、随机森林、GBDT、xgboost和朴素贝叶斯这些基础知识,最好能手推。
深度学习基本都是:CNN以及卷积的意义、RNN以及RNN的初始化、LSTM、常用激活函数(tanh、relu等)这些原理。
自然语言处理方面:一定要把tfidf、word2vec、注意力机制、transformer都熟悉掌握。最好自己去运行几次