zoukankan      html  css  js  c++  java
  • 算法问题

    1.无监督和有监督算法的区别?代表性算法有哪些?

    有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。
    无监督学习:对未标记的样本进行训练学习,以发现这些样本中的结构知识。

    2. 什么是线性回归、逻辑回归、朴素贝叶斯

    注意:逻辑回归和朴素贝叶斯是重点,线性回归更多用于数据分析岗位。

    逻辑回归要点:逻辑回归是通过sigmoid函数使损失函数达到最小或者是似然函数达到最大通过相应的优化算法求出其中的参数值实现分类。(什么优化算法:了解过梯度下降的原理实现,sklearn包里solver中有个可以设置选择哪个优化算法:lbfs、liblinear……)

    朴素贝叶斯要点:贝叶斯算法是通过先验概率去得出后验概率的过程,先验即经验或者说是通过历史的大量数据得出的相关概率值,最终得到后验概率做出分类。

    3.  LR和线性回归的区别和联系?

    逻辑回归以线性回归为理论支持。但线性回归模型无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。

    逻辑回归:迭代求解

    线性回归:直接求解

    4.LR和朴素贝叶斯有什么联系和区别?为什么朴素贝叶斯如此“朴素”?

    都可以处理分类问题,但是LR是让损失函数最小求解参数值,可用于推荐,朴素贝叶斯是基于特征之间相互独立的假设,更多用于文本分类。且数据量小的时候更多用朴素贝叶斯

    因为它假定所有的特征在数据集中的作用是同样重要和独立的。正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素”

    5. 什么是梯度下降?

    要点:一种优化算法,通过迭代的方式使得目标函数或损失函数最小时求解相关参数值

    涉及到的梯度下降相关知识:

    (1)随机梯度下降

    优点:可以一定程度上解决局部最优解的问题

    缺点:收敛速度较慢

    (2)批量梯度下降

    优点:容易陷入局部最优解

    缺点:收敛速度较快

    (3)mini_batch梯度下降

    综合随即梯度下降和批量梯度下降的优缺点,提取的一个中和的方法。

    6.如何处理缺失值数据:

    要点:处理的方法有两种,一种是删除整行或者整列的数据,另一种则是使用其他值去填充这些缺失值。

    在Pandas库,有两种很有用的函数用于处理缺失值:isnull()和dropna()函数能帮助我们找到数据中的缺失值并且删除它们。如果你想用其他值去填充这些缺失值,则可以是用fillna()函数。

    7.什么是数据标准化,为什么要进行数据标准化?

    要点:数据标准化是预处理步骤,将数据标准化到一个特定的范围。

    (将该值将去平均值后再除以标准差)。

    要点:数据标准化可以使得每个特征的重要性更加均衡。

    如果不进行数据标准化,有些特征(值很大)将会对损失函数影响更大(就算这个特别大的特征只是改变了1%,但是他对损失函数的影响还是很大,并会使得其他值比较小的特征变得不重要了)。

    8.你有一些和机器学习相关的项目吗

    对于这个问题,你可以从你做过的研究与他们公司的业务之间的联系上作答。 你所学到的技能是否有一些可能与他们公司的业务或你申请的职位有关? 不需要是100%相吻合的,只要以某种方式相关就可以。这样有助于让他们认为你可以在这个职位上所产生的更大价值。

    9.接触过推荐吗?知道推荐系统主要分为那两个方面吗?

    基于内容的推荐和协同过滤推荐。

    10.过拟合和欠拟合是什么?如何解决过拟合?

    underfitting和overfitting的成因都是模型的复杂度和分类的关系。 如果模型很简单,但是要分的类型很多就会产生欠拟合。比如要求用一条直线将数据分成10类。 反之如果模型很复杂,但是分类很简单,就容易产生过拟合。(比如,有一个复杂度很高的非线性分类器,用来分类猫和狗。训练久了以后,可能会出现有几个长得像狗的猫和长得像猫的狗的个例都能被正确分类了。这时候你的模型很可能已经过拟合了,因为训练成这样的模型在遇到新的数据的时候,将样本错误分类的可能性很大。)

    重点是过拟合

    所谓过拟合(Overfit),是这样一种现   象:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据。此时我们就叫这个假设出现了overfit的现象。

    过拟合产生的原因:出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。

    解决方法:

    1、 增大数据量

    2、 减少feature个数(人工定义留多少个feature或者算法选取这些feature)

    3、 正则化(留下所有的feature,但对于部分feature定义其parameter非常小)

    4、 交叉验证,重采样评价模型效能,K折交叉验证

    5、保留一个验证数据集检验

    10.  tf-idf用过吗?它的公式?

    要点:TFIDF实际上是:TF * IDF,一个TF,一个IDF

    词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的频率(一词语出现的次数除以该文件的总词语数)。

    逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目。

    假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是3/100=0.03。一个计算文件频率 (IDF) 的方法是文件集里包含的文件总数除以测定有多少份文件出现过“母牛”一词。所以,如果“母牛”一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是 lg(10,000,000 / 1,000)=4。最后的TF-IDF的分数为0.03 * 4=0.12。

    11. LRSVM的区别和联系?

    要点:联系,都是分类算法,

    如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。

    要点:损失函数不同

    SVM 只考虑局部的边界线附近的点,LR 考虑全局,远离的点对边界线的确定也起作用

    在解决非线性问题时,SVM 采用核函数的机制,而 LR 通常不采用核函数的方法

    线性 SVM 依赖数据表达的距离测度,所以需要先对数据做 normalization, LR 则不受影响。

    12.对于处理的数据如何进行分词?

    使用Jieba进行中文分词
    Jieba分词支持三种分词模式:
    精确模式,试图将句子最精确地切开,适合文本分析;
    全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
    搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
    使用停用词库屏蔽停用词。

  • 相关阅读:
    Java for LeetCode 229 Majority Element II
    Java for LeetCode 228 Summary Ranges
    Java for LeetCode 227 Basic Calculator II
    Java for LintCode 颜色分类
    Java for LintCode 链表插入排序
    Java for LintCode 颠倒整数
    Java for LintCode 验证二叉查找树
    Java for LeetCode 226 Invert Binary Tree
    Java for LeetCode 225 Implement Stack using Queues
    Java for LeetCode 224 Basic Calculator
  • 原文地址:https://www.cnblogs.com/weigaojie/p/10513773.html
Copyright © 2011-2022 走看看