使用Keras的CNN模型和Sklearn的SVM进行二进制分类(增强或投票方法)?

时间:2020-08-01 04:04:44

标签: tensorflow machine-learning keras scikit-learn deep-learning

我正在尝试对我的二进制垃圾邮件分类模型应用Ensemble方法。 垃圾邮件图片是世界上任何不是手写或课本点击问题的图片。我的非垃圾邮件图片如下:

enter image description here

所以这些图像遵循一些有趣的模式

  1. 大多数图像都有error: non-aggregate type 'vector<City>' cannot be initialized with an initializer list vector<City> cities = { ^ ~ ,所以我提取了width>height的特征
  2. 大多数图像的背景为浅色,前景为深色,所以我计算了ratio
  3. 我基于calculate the colorfulness of image using OpenCv使用了该方法来Hasler and Süsstrunk’s 2003 paper 并发现我的大部分grayscale_image.std()(几乎97.5%)都在<= 20.0的范围内,而99.1%的范围是在<= 30的范围内。但是对于垃圾邮件图片,它最多可以增加到150张。

因此,我尝试在模型中使用这3个功能。我是第一次使用它,所以我不知道该如何使用Ensemble。让我们假设我有一个训练有素的CNN模型,其中1个密集层包含256个神经元,最后一层为Non-spam Image,其中包含1个神经元。 (或Sigmoid

Softmax with 2

所以我的2个候选人在训练后的输出将是

  1. 概率= model.predict(X_train)
  2. model2 = Model(in_,second_last)-> feat_254 = model2.predict(X_train)
  • 我应该使用最后一层的概率还是第二最后一层的256个特征?因此,这将是Series中的一种Boosting方法,其中SVM使用CNN的输出。
  • 或者我应该只将这三个特征与in_ = Input(shape) ... .... second_last = Dense(256,activation='relu')(prev_out) out_ = Dense(1,activation='sigmoid')(second_last) model = Model(in_,out_) Average Voting(根据每个模型的%f-1分数赋予每个模型的权重)用于最终概率吗? / li>

哪个应该产生更好的结果?有人可以为此提供一个伪代码吗?

0 个答案:

没有答案
相关问题