我想使用PCA进行具有CNN功能的功能选择。从PCA理论来看,数据应该是相关的。从CNN中提取功能后,功能的组织方式为[f1 f2 f3 f4 f5 f6]
,相应的标签为[L1 L1 L2 L2 L3 L3]
。如何检查我的数据是否相关?如果数据不相关,那么我该如何制作?
答案 0 :(得分:0)
对于有意义的PCA,确实应该在PCA的输入列之间存在相关性。但是,您只有一个功能向量作为PCA输入,因此无法应用相关和PCA。您可以做的一件事是计算每个特征[f1..f6]的等待与另一个特征之间的相关性。同样,您可以将PCA应用于权重矩阵。但我的感觉是,你首先尝试在功能太少的环境中应用特征减少方法(PCA)。您可以将功能从6减少到3(以对[L1..L3]进行分类),但添加具有3个节点的完全连接的层可以在更标准的方法中执行相同的操作。 以下是使用vgg16的示例。
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var DeliverySchema = new Schema({
firstName: String,
lastName: String,
email: String,
phone: String,
shippingAddress: String,
cityState: String,
zip: String,
deliveryDate: Date,
deliveryInstruction: String,
useAsBillinAddress: Boolean
}, {_id: false});
mongoose.model('Delivery', DeliverySchema);
var PaymentSchema = new Schema({
cardNumber: String,
creditCardYear: String,
creditCardMonth: String,
cws: String,
paymentType: String
}, {_id: false})
mongoose.model('Payment', PaymentSchema);
var OrderProductSchema = new Schema({
id: String,
qty: Number
}, {_id: false});
mongoose.model('OrderProduct', OrderProductSchema);
var OrderSchema = new Schema({
delivery: DeliverySchema,
payment: PaymentSchema,
orderProducts: [{OrderProductSchema}],
timestamp: {type: Date, default: Date.now}
});
var Order = mongoose.model("Order", OrderSchema, "order");
module.exports = Order;
标签1至398(自然类)的第一组分的PCA得分较高,而399至1000(人工类)的PCA得分较低。这意味着至少一些PCA组件可用于将节点分组在一起。检查权重之间的相关性揭示确实存在,最大相关性约为0.7。我希望现在更清楚了。