sklearn和tensorflow的理解

人工智能的实现是基于机器学习,机器学习的一个方法是神经网络,以及各种机器学习算法库。

有监督学习:一般数据构成是【特征值+目标值】

无监督学习:一般数据构成是【特征值】

Scikit-learn(sklearn)的定位是通用机器学习库,传统的机器学习库。

sklearn主要适合中小型的、实用机器学习项目,尤其是那种数据量不大且需要使用者手动对数据进行处理,并选择合适模型的项目。这类项目往往在CPU上就可以完成,对硬件要求低
 

sklearn更倾向于使用者可以自行对数据进行处理,比如选择特征、压缩维度、转换格式,是传统机器学习库,SKLearn中,因为做了上层的封装,分类模型、回归模型、聚类与降维模型、预处理器等等都叫做估计器(estimator)

  • 机器学习基础知识:机器学习定义与四要素:数据、任务、性能度量和模型。机器学习概念,以便和SKLearn对应匹配上。

  • SKLearn讲解:API设计原理,SKLearn几大特点:一致性、可检验、标准类、可组合和默认值,以及SKLearn自带数据以及储存格式。

  • SKLearn三大核心API讲解:包括估计器、预测器和转换器。这个板块很重要,大家实际应用时主要是借助于核心API落地。

  • SKLearn高级API讲解:包括简化代码量的流水线(Pipeline估计器),集成模型(Ensemble估计器)、有多类别-多标签-多输出分类模型(Multiclass 和 Multioutput 估计器)和模型选择工具(Model Selection估计器)。

TensorFlow(tf)的定位主要是深度学习库,tf主要适合已经明确了解需要用深度学习,且数据处理需求不高的项目。这类项目往往数据量较大,且最终需要的精度更高,一般都需要GPU加速运算

不过小样本的也可以使用Tf的Keras来完成:一般使用流程

model = Sequential() # 定义模型
model.add(Dense(units=64, activation='relu', input_dim=100)) # 定义网络结构
model.add(Dense(units=10, activation='softmax')) # 定义网络结构
model.compile(loss='categorical_crossentropy', # 定义loss函数、优化方法、评估标准
              optimizer='sgd',
              metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, batch_size=32) # 训练模型
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128) # 评估模型
classes = model.predict(x_test, batch_size=128) # 使用训练好的数据进行预测


常用:
model.fit训练
loss,accuracy = model.evaluate模型评估计算准确率
model.predict预测

model.summary 打印模型结构
model.get_config

 DNN介绍:

深度神经网络(DNN)是一种多层无监督神经网络,并且将上一层的输出特征作为下一层的输入进行特征学习,通过逐层特征映射后,将现有空间样本的特征映射到另一个特征空间,以此来学习对现有输入具有更好的特征表达。深度神经网络具有多个非线性映射的特征变换,可以对高度复杂的函数进行拟合。如果将深层结构看作一个神经元网络,则深度神经网络的核心思想可用三个点描述如下:

(1)每层网络的预训练均采用无监督学习;

(2)无监督学习逐层训练每一层,即将上一层输出作 下一层的输入;

(3)有监督学习来微调所有层(加上一个用于分类的分类器)。

深度神经网络与传统神经网络的主要区别在于训练机制。

为了克服传统神经网络容易过拟合及训练速度慢等不足,深度神经网络整体上采用逐层预训练的训练机制,而不是采用传统神经网络的反向传播训练机制。

优点:

  • 克服了人工设计特征费时、费力的缺点;
  • 通过逐层数据预训练得到每层的初级特征;
  • 分布式数据学习更加有效(指数级);
  • 相比浅层建模方式,深层建模能更细致高效的表示实际的复杂非线性问题。

DNN模型的神经网络层分为三类,其中第一层为输入层,最后一层为输出层,中间都为隐藏层。每一层之前是完全连接的,整体上看是复杂的,但从局部来看,实质上还是感知机模型。DNN可拟合任意函数。

相关推荐

  1. sklearntensorflow理解

    2023-12-21 10:34:02       56 阅读
  2. 深入理解sklearn模型参数优化技术

    2023-12-21 10:34:02       25 阅读
  3. PyTorchTensorFlow简介

    2023-12-21 10:34:02       47 阅读
  4. TransformerTensorFlow区别

    2023-12-21 10:34:02       33 阅读
  5. TensorFlowPyTorch对比

    2023-12-21 10:34:02       21 阅读
  6. sklearn混淆矩阵计算seaborn可视化

    2023-12-21 10:34:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-21 10:34:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-21 10:34:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-21 10:34:02       82 阅读
  4. Python语言-面向对象

    2023-12-21 10:34:02       91 阅读

热门阅读

  1. 51单片机控制1602LCD输出整数和浮点数

    2023-12-21 10:34:02       61 阅读
  2. Linux 文本处理

    2023-12-21 10:34:02       61 阅读
  3. SQLite数据库的增删改查

    2023-12-21 10:34:02       61 阅读
  4. work随笔记录(实时更新)

    2023-12-21 10:34:02       60 阅读
  5. C语言第五十四弹---模拟使用strstr函数

    2023-12-21 10:34:02       60 阅读
  6. Avalonia MVVM

    2023-12-21 10:34:02       56 阅读
  7. 栈(C++)

    2023-12-21 10:34:02       42 阅读
  8. vim的使用

    2023-12-21 10:34:02       57 阅读
  9. 服务器不稳定因素

    2023-12-21 10:34:02       53 阅读
  10. js new Set()过滤重复数据

    2023-12-21 10:34:02       58 阅读
  11. Linux下修改host文件

    2023-12-21 10:34:02       59 阅读
  12. c语言突击函数

    2023-12-21 10:34:02       75 阅读