我正在阅读有关 NN 的内容,并且还想同时生成我的第一个 NN(以补充我的阅读内容)。
我有一个这样的数据集:
DNA_seq Sample1Name Sample1Name ConcOfDNAInSample DNASeqFoundInProcessCat
AGGAG cat_0 cat_1 0.1 found_in_0
AGGAG cat_1 cat_2 0.4 found_in_3
ACCCC cat_1 cat_7 0.1 found_in_2
AGAGAGA cat_2 cat_10 1.9 found_in_1
ADAS cat_332 cat_103 8.9 found_in_1
列:
DNASeq -> 一串 DNA 序列(即“序列”)
Sample1Name -> 分类值,解释 DNASeq 所在溶液的化学性质。
Sample2Name -> 分类值,解释 DNASeq 所在溶液的化学性质。
ConcOfDNAInSample -> Sample2SName 中 DNA 浓度的定量值。
DNASeqFoundInProcessCat -> 这是我要预测的标签。它是一个具有四个类别(found_in_0 -> found_in_3)的分类值。这是我对每个 DNASeq 进行三个测试以查看我是否操纵原始解决方案(即 found_in_0)的输出,DNASeq 是否仍然存在。
我的问题:对于一组看不见的序列,我希望输出标签集是“found_in_1”、“found_in_2”、“found_in_3”的多类概率。
即,如果上面的示例是我的测试集的输出,那么我的输出理想情况下应该是这样的:
DNA_seq Sample1Name Sample1Name ConcOfDNAInSample DNASeqFoundInProcessCat
AGGAG cat_0 cat_1 0.1 (0.9,0.5,0.1)
AGGAG cat_1 cat_2 0.4 (0.8,0.7,0.3)
ACCCC cat_1 cat_7 0.1 (0.2,0.5,0.3)
AGAGAGA cat_2 cat_10 1.9 (0.7,0.2,0.9)
ADAS cat_332 cat_103 8.9 (0.6,0.8,0.7)
有一些注意事项:
有可能因为我正在做的过程,一些序列不能在原始解决方案中(found_in_0),但是因为 DNA 位可以粘在一起,它们随后可以在其他类中(found_in_1、found_in_2、found_in_3 )
我只对found_in_1、found_in_2 和found_in_3 类的输出感兴趣(即我想要最后的三类概率,而不是found_in_0 的四类概率)。
我能够从 DNA 序列中生成其他特征,这只是一个例子。
从我的数据可以看出,我的数据集是不平衡的,found_in_3中的数据量明显低于其他(我的完整训练数据大约80000行;但是其中只有大约10000行是found_in_3;其他的都是found_in_0、found_in_1 或 found_in_2)。
我要解决的是算法,特别是针对一个特定点。我的想法是:
1.读入数据。
df = pd.read_csv('data')
2.将数据集拆分为训练和测试
import sklearn
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,y,test_size=0.2,random_state=42)
3.了解数据集(即我在上面第 4 点中看到的代表性不足的地方)。我有一系列的功能......所以假设我有一个标准化的数据集,即上表。
所以我知道我想为我的数据复制一组类似的步骤,并且我正在尝试解决如何做到这一点,我无法理解的是我是否必须使用 tf.nn.sigmoid_cross_entropy_with_logits 来解决这个问题(因为每个输入都可以属于移动而不是一个标签,即可以存在于found_in_1、found_in_2和found_in_3中,这可以产生每个类的概率输出?)
或者我可以只使用这样的softmax函数吗?
幕布斯6054654
慕盖茨4494581
蓝山帝景
相关分类