我想对未标记的数据进行CNN训练,从我在Keras / Kaggle / TF文档或Reddit线程上阅读的内容来看,我似乎必须预先标记我的数据集。有没有办法在无人监督的情况下训练CNN?
我不明白如何初始化 y_train 和 y_test (其中y_train和y_test代表通常的含义)
有关我的数据集的信息如下:
对于我的模型,我需要以下条件:
我做了什么:
我能够将CSV文件中的数据检索到一个数据帧中,并将该数据帧拆分为 x_train 和 x_test 我>。但是我无法理解如何设置 y_train 和 y_test 值。
我的问题似乎与MNIST数据集非常相似,除了我没有标签。我可以训练没有标签的模型吗?
我的代码当前如下所示:
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
# Read the dataset from the CSV file into a dataframe
df = pd.read_csv("bci_dataset.csv")
# Split the dataframe into training and test dataset
train, test = train_test_split(df, test_size=0.2)
x_train = train.iloc[:, :]
x_test = test.iloc[:, :]
print(x_train.shape)
print(x_test.shape)
预先感谢您阅读本书并帮助我!
答案 0 :(得分:0)
您能告诉我们为什么要专门使用CNN吗?通常,当从特征到输出涉及一些复杂性时,将使用神经网络-人工神经元由于暴露于地面事实(即标签)而能够学习不同的行为。大多数时候,使用神经网络的研究人员甚至都不知道网络正在使用输入数据的哪些特征来得出其输出结论。
在您给我们的情况下,看起来有点像您知道哪些要素很重要(也就是说,要激活一个分区,总和必须大于0)。神经网络不需要真正学习任何东西即可完成其工作。尽管在此过程中似乎不需要使用神经网络,但鉴于输入数据的大小,对您来说自动化它确实很有意义! :)
但是,让我知道我是否误解了您的情况?
编辑:将其与MNIST数据集进行对比-因此,为了识别手写数字,网络必须学习处理一些歧义。并非每种手写都将以相同的方式呈现7。神经网络能够找出7的几个特征(即7很有可能具有从右上到左下的对角线,具体取决于您的方式书写,可能会稍微弯曲或偏移或其他任何形式),以及几个不同版本的7(有些人在其中间使用水平斜线,而其他版本的7则没有该斜线)。在这里,神经网络的用途是弄清所有歧义,并把输入概率归为7(因为它已经看到了“知道”为7s的先前图像)。但是,在您的情况下,只有一种方法可以呈现您的答案-如果子区域中有任何大于0的元素,则它是活动的!因此,您不需要训练网络就可以执行任何操作-您只需要编写一些代码即可自动实现子区域的求和。