小编zer*_*r03的帖子

可以在任何文本分类上应用PCA吗?

我正在尝试使用python进行分类.我正在使用Naive Bayes MultinomialNB分类器用于网页(从网络检索数据到文本,稍后我将此文本分类为:web分类).

现在,我正在尝试对这些数据应用PCA,但是python会给出一些错误.

我的朴素贝叶斯分类代码:

from sklearn import PCA
from sklearn import RandomizedPCA
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
vectorizer = CountVectorizer()
classifer = MultinomialNB(alpha=.01)

x_train = vectorizer.fit_transform(temizdata)
classifer.fit(x_train, y_train)
Run Code Online (Sandbox Code Playgroud)

这种天真的贝叶斯分类给出了输出:

>>> x_train
<43x4429 sparse matrix of type '<class 'numpy.int64'>'
    with 6302 stored elements in Compressed Sparse Row format>

>>> print(x_train)
(0, 2966)   1
(0, 1974)   1
(0, 3296)   1
..
..
(42, 1629)  1
(42, 2833)  1
(42, 876)   1
Run Code Online (Sandbox Code Playgroud)

比我尝试在我的数据上应用PCA(temizdata):

>>> v_temizdata = vectorizer.fit_transform(temizdata) …
Run Code Online (Sandbox Code Playgroud)

python pca scikit-learn naivebayes

11
推荐指数
2
解决办法
7687
查看次数

我如何使用 keras 创建 3d 输入/3d 输出卷积模型?

我有一个我无法解决的问题。

我想将具有完全连接的 MLP 的 CNN 模型实现到我的具有 2589 个蛋白质的蛋白质数据库。每个蛋白质有 1287 行 69 列作为输入和 1287 行和 8 列作为输出。实际上有 1287x1 的输出,但我使用了一种热编码作为类标签,以便在我的模型中使用交叉熵损失。

我也想要

如果我们认为图像我有一个 3d 矩阵 ** X_train = (2589, 1287, 69) for input** 和y_train =(2589, 1287, 8) output,我的意思是输出也是矩阵。

在我的 keras 代码下面:

model = Sequential()
model.add(Conv2D(64, kernel_size=3, activation="relu", input_shape=(X_train.shape[1],X_train.shape[2])))
model.add(Conv2D(32, kernel_size=3, activation="relu"))
model.add(Flatten())
model.add(Dense((8), activation="softmax"))
Run Code Online (Sandbox Code Playgroud)

但是我遇到了关于密集层的错误:

ValueError: Error when checking target: expected dense_1 to have 2 dimensions, but got array with shape (2589, 1287, 8)
Run Code Online (Sandbox Code Playgroud)

好的,我知道 Dense 应该采用正整数单位(Keras 文档中的解释。)。但是我如何实现矩阵输出到我的模型?

我试过了:

model.add(Dense((1287,8), activation="softmax")) …
Run Code Online (Sandbox Code Playgroud)

3d conv-neural-network keras keras-layer

0
推荐指数
1
解决办法
1973
查看次数