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可拟合任意函数。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值