# Python预测船只阻力4种方法线性回归决策树神经网络和K最近邻

{% tabs %}
{% tab title="关键词" %}
Python | 线性回归 | 决策树 | 神经网络 | K-最近邻 KNN | 预测阻力 | Pandas | Numpy | scikit-learn&#x20;
{% endtab %}

{% tab title="梗概" %}
### **回归技术**

回归算法是用于预测连续数值的机器学习技术。他们是有监督的学习任务，这意味着他们需要标记的训练示例。

案例：

* 根据尺寸，品牌和位置预测产品的适当价格
* 根据商店位置，公共假日，星期几和最接近的竞争对手来预测每天的销售数量

以下是最常用的预测数值的算法的介绍：线性回归，决策树，神经网络和K最近邻

### **线性回归**

线性回归尝试将直的超平面拟合到最接近所有数据点的数据集中。当数据集中的变量之间存在线性关系时，这是最合适的。

优点：

* 快速计算，并可以轻松地使用新数据进行更新
* 相对容易理解和解释

可以使用正则化技术来防止过度拟合

缺点：

* 无法学习复杂的关系
* 难以捕获非线性关系（没有可能很复杂的第一个转换数据）

### **术语解释**

**hyperplane（超平面） -** 一维（1D）空间中的超平面是一个点。 在二维（2D）空间中，它是一条线。 3维（3D）空间中的超平面是一个平面，是一个平面。 为了泛化任何维度，该概念称为超平面。

**线性关系 -** 如果第一个变量的变化与第二个变量的恒定变化相对应，则关系为线性。

\*\*过度拟合 -\*\*过度拟合模型将在发现的数据中发现特定的有用功能后，对训练数据具有非常高的准确性。但是，由于无法泛化，它对测试数据的准确性较低。

**非线性关系** - 非线性关系是指第一个变量的变化不一定与第二个变量的恒定变化相对应。但是，它们可能会相互影响，但这似乎是可以预见的。

### **线性回归预测代码**

#### **决策树**

决策树学习如何最好地将数据集拆分为单独的分支，从而使其学习非线性关系。

随机森林（RF）和梯度增强树（GBT）是两种算法，可构建许多单独的树并汇总其预测。当他们使用结果集合做出最终决定时，它们被称为“整合技术”。

优点：

* 单个决策树快速训练
* 强大的抗噪能力和缺失值
* “开箱即用”的RF表现非常出色

缺点：

* 单一决策树易于过度拟合
* 复杂的树木很难解释

#### **术语解释**

**非线性关系**-非线性关系意味着第一个变量的变化不一定与第二个变量的恒定变化相对应。但是，它们可能会相互影响，但这似乎是可以预见的。

**合并**-这是一种合并数据的方法，通常通过取平均数来完成。

\*\*噪声-\*\*噪声是指数据点不正确，这可能会导致发现不正确的模式。 如果它们离群，通常会加以识别，这意味着它们与其余数据集有很大不同。 但是，请谨慎操作，因为某些异常值可能是有效的数据点，值得调查。

**过度拟合**-过度拟合模型将在发现的数据中发现特定的有用功能后，对训练数据具有非常高的准确性。但是，由于无法概括，它对测试数据的准确性较低。

#### **用决策树和随机森林预测代码**

### **神经网络**

神经网络可以使用神经元层来学习复杂的模式，而神经元层可以对数据进行数学转换。 输入和输出之间的层称为“隐藏层”。 神经网络可以学习其他算法无法轻易发现的特征之间的关系。

优点：

* 适用于许多领域的强大功能/最新技术（例如计算机视觉，语音识别）
* 甚至可以学习非常复杂的关系
* 隐藏层减少了对特征工程的需求（无需了解底层数据）

缺点：

* 需要大量数据
* 容易过拟合
* 训练时间长
* 需要大型数据集的强大计算能力（价格昂贵）
* 模型是一个“黑匣子”，无法解释

#### **术语解释**

**神经元** - 人工神经元是一种数学函数。 它需要将一个或多个输入乘以称为“权重”的值并相加在一起的值。 然后，该值将传递到称为“激活函数”的非线性函数，该函数成为输出。

**输入**-将要素作为输入传递，例如大小，品牌，位置等。

**输出**-这是目标变量，我们正在尝试预测的变量，例如一件商品的价格。

**隐藏层**-这些层是数学上可以转换数据的许多神经元。 它们被称为“隐藏”，因为用户仅关注传递要素的输入层和进行预测的输出层。

**特征工程**-特征工程是将原始数据转换为更有意义的过程的过程，通常涉及与具有领域专业知识的人员合作。

**过度拟合**-过度拟合模型将在发现的数据中发现特定的有用功能后，对训练数据具有非常高的准确性。但是，由于无法泛化，它对测试数据的准确性较低。

\*\*模型-\*\*机器学习算法经过训练后会创建一个模型，这是一个数学函数，可用于进行新的观察并计算适当的预测。

#### **神经网络预测代码**

### **K最近邻**

K最近邻（KNN）通过搜索最相似的训练观测值并合并其值来预测新观测值。

优点：

* 简单
* 强大
* 无需训练

缺点：

* 昂贵且预测新实例的速度很慢
* 在高维数据集上表现不佳

#### **术语解释**

* 观察值—观察值是一个示例，即数据中的数据点或行。
* 合并-这是一种合并数据的方法，通常通过取平均数来完成。
* 高维-高维数据意味着该数据具有大量特征。 如果您的数据以CSV，数据库或Excel文件表示，那么您将使用很多列来构建模型，则这些数据是高维的

#### **K个最近邻预测代码**
{% endtab %}
{% endtabs %}

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
