<commit_before>---
layout:     post
title:      "机器学习"
subtitle:   "机器学习面试要点"
date:       2016-09-01
author:     "attitudechunfeng"
header-img: "img/home-bg.jpg"
---

### 					机器学习面试要点总结

------

##### [1] 常见聚类方法有哪些类？ 

答：基于划分的聚类(K-means聚类)，层次聚类，基于密度的聚类（DBSCAN）,基于网格的聚类算法和基于模型的聚类算法。

- K-means优缺点：

  K-means算法缺点主要是：对异常值敏感；需要提前确定k值；对簇的形状敏感。优点：计算时间短，速度快；容易解释；聚类效果还不错。


- 层次聚类不用确定k值，对簇形状不敏感。大数据下运算慢。


- 基于密度的聚类对噪声点的容忍性非常好；对簇的形状不敏感。缺点是需要用户输入参数，对参数敏感。

评价聚类效果：总体思想为一个cluster聚类内的数据点聚集在一起的密度越高，圈子越小，离centroid中心点越近，那么这个聚类的总体质量相对来说就会越好。

------

**[2] 决策树中，ID3和C4.5分别如何选择属性？**

答：ID3通过计算属性的信息增益来进行属性选择，ID3算法的所选的分类属性偏向于特征值数目多的分类属性。C4.5通过计算属性的信息增益率来进行属性选择。当决策树不能继续进行分裂，但是其中又含有不止一个类别的数据时，则一般是通过选择该节点中，同类最多的数据的属性作为该节点的属性。

------

**[3] 决策树优缺点**： 
优点： 

1) 可以生成可以理解的规则。 

2) 计算量相对来说不是很大。 

3) 可以处理连续和种类字段。 

4) 决策树可以清晰的显示哪些字段比较重要 

缺点： 

1) 对连续性的字段比较难预测。 

2) 对有时间顺序的数据，需要很多预处理的工作。 

3) 当类别太多时，错误可能就会增加的比较快。 

4) 一般的算法分类的时候，只是根据一个字段来分类。

------

**[4] L1正则和L2正则化的区别：**

答：L1优点是能够获得sparse模型，得到稀疏的权值，对于large-scale的问题来说这一点很重要，因为可以减少存储空间。缺点是加入L1后目标函数在原点不可导，需要做特殊处理。
L2优点是实现简单，能够起到正则化的作用，得到平滑的权值。缺点就是L1的优点：无法获得sparse模型。
实际上L1也是一种妥协的做法，要获得真正sparse的模型，要用L0正则化。

------

**[5] 线性回归（Linear Regression）**：

损失函数：
$$
J(\theta)=\frac{1}{2}\sum_{i=1}^{m}{({h}_{\theta}({x}^{(i)})-{y}^{(i)})}^{2}
$$
梯度计算：
$$
\frac{\partial}{{\partial\theta}_{j}}J(\theta)=\sum_{i=1}^{m}({h}_{\theta}({x}^{(i)})-{y}^{(i)})x_{j}^{(i)}<commit_msg>update machine learning<commit_after>---
layout:     post
title:      "机器学习"
subtitle:   "机器学习面试要点"
date:       2016-09-01
author:     "attitudechunfeng"
header-img: "img/home-bg.jpg"
---

### 					机器学习面试要点总结

------

##### [1] 常见聚类方法有哪些类？ 

答：基于划分的聚类(K-means聚类)，层次聚类，基于密度的聚类（DBSCAN）,基于网格的聚类算法和基于模型的聚类算法。

- K-means优缺点：

  K-means算法缺点主要是：对异常值敏感；需要提前确定k值；对簇的形状敏感。优点：计算时间短，速度快；容易解释；聚类效果还不错。


- 层次聚类不用确定k值，对簇形状不敏感。大数据下运算慢。


- 基于密度的聚类对噪声点的容忍性非常好；对簇的形状不敏感。缺点是需要用户输入参数，对参数敏感。

评价聚类效果：总体思想为一个cluster聚类内的数据点聚集在一起的密度越高，圈子越小，离centroid中心点越近，那么这个聚类的总体质量相对来说就会越好。

------

**[2] 决策树中，ID3和C4.5分别如何选择属性？**

答：ID3通过计算属性的信息增益来进行属性选择，ID3算法的所选的分类属性偏向于特征值数目多的分类属性。C4.5通过计算属性的信息增益率来进行属性选择。当决策树不能继续进行分裂，但是其中又含有不止一个类别的数据时，则一般是通过选择该节点中，同类最多的数据的属性作为该节点的属性。

------

**[3] 决策树优缺点**： 
优点： 

1) 可以生成可以理解的规则。 

2) 计算量相对来说不是很大。 

3) 可以处理连续和种类字段。 

4) 决策树可以清晰的显示哪些字段比较重要 

缺点： 

1) 对连续性的字段比较难预测。 

2) 对有时间顺序的数据，需要很多预处理的工作。 

3) 当类别太多时，错误可能就会增加的比较快。 

4) 一般的算法分类的时候，只是根据一个字段来分类。

------

**[4] L1正则和L2正则化的区别：**

答：L1优点是能够获得sparse模型，得到稀疏的权值，对于large-scale的问题来说这一点很重要，因为可以减少存储空间。缺点是加入L1后目标函数在原点不可导，需要做特殊处理。
L2优点是实现简单，能够起到正则化的作用，得到平滑的权值。缺点就是L1的优点：无法获得sparse模型。
实际上L1也是一种妥协的做法，要获得真正sparse的模型，要用L0正则化。

------

**[5] 线性回归（Linear Regression）**：

损失函数：
$$
J(\theta)=\frac{1}{2}\sum_{i=1}^{m}{({h}_{\theta}({x}^{(i)})-{y}^{(i)})}^{2}
$$
梯度计算：
$$
\frac{\partial}{\partial\theta}_{j}J(\theta)=\sum_{i=1}^{m}({h}_{\theta}({x}^{(i)})-{y}^{(i)})x_{j}^{(i)}
{'fraction_non_alphanumeric': 0.2059659090909091, 'fraction_numerical': 0.02911931818181818, 'mean_word_length': 5.854014598540146, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6591845', 'n_tokens_mistral': 2240, 'n_tokens_neox': 2544, 'n_words': 115}