草庐IT

Scikit-Learn-Keras

全部标签

python - 如何在 Scikit-Learn 的随机森林分类器中设置子样本大小?特别是对于不平衡数据

目前,我正在Sklearn中为我的不平衡数据实现RandomForestClassifier。我不太清楚RF在Sklearn中究竟是如何工作的。以下是我的担忧:根据文档,似乎没有办法为每个树学习器设置子样本大小(即小于原始数据大小)。但实际上,在随机森林算法中,我们需要得到每棵树的样本子集和特征子集。我不确定我们能否通过Sklearn实现这一目标?如果是,如何?下面是Sklearn中对RandomForestClassifier的描述。“随机森林是一种元估计器,它在数据集的各种子样本上拟合多个决策树分类器,并使用平均来提高预测准确性和控制过度拟合。子样本大小为始终与原始输入样本大小相同

python - scikit-learn,将特征添加到向量化的文档集

我从scikit-learn开始,我正在尝试将一组文档转换为我可以应用聚类和分类的格式。我已经看到了有关矢量化方法的详细信息,以及用于加载文件和索引其词汇表的tfidf转换。但是,我有每个文档的额外元数据,例如作者、负责的部门、主题列表等。如何向向量化函数生成的每个文档向量添加特征? 最佳答案 您可以使用DictVectorizer获取额外的分类数据,然后使用scipy.sparse.hstack将它们结合起来。 关于python-scikit-learn,将特征添加到向量化的文档集,我

python - 如何有效地序列化 scikit-learn 分类器

序列化scikit-learn分类器的最有效方法是什么?我目前正在使用Python的标准Pickle模块来序列化textclassifier,但这会导致pickle大得惊人。序列化的对象可以是100MB甚至更大,这看起来太大了并且需要一段时间来生成和存储。我用Weka做过类似的工作,等效的序列化分类器通常只有几MB。scikit-learn是否可能在pickle中缓存训练数据或其他无关信息?如果是这样,我怎样才能加快和减少序列化scikit-learn分类器的大小?classifier=Pipeline([('vectorizer',CountVectorizer(ngram_rang

python - 在 scikit-learn 中查找和利用来自 PCA 的特征值和特征向量

我一直在使用在scikit-learn中实现的PCA。但是,我想找到拟合训练数据集后产生的特征值和特征向量。文档中没有提及两者。其次,这些特征值和特征向量本身是否可以用作分类目的的特征? 最佳答案 我在这里假设特征向量是指协方差矩阵的特征向量。假设您在p维空间中有n个数据点,X是您的点的pxn矩阵,那么主成分的方向是协方差矩阵XXT的特征向量。您可以通过访问PCA对象的components_属性从sklearn获取这些特征向量的方向。这可以按如下方式完成:fromsklearn.decompositionimportPCAimpor

python - 在keras中拆分图层的输出

比如说,我有一个输出dims(4,x,y)的层。我想将其拆分为4个独立的(1,x,y)张量,我可以将其用作其他4个层的输入。我主要寻找的是Merge层的反面。我知道在keras中没有分割层,但是在keras中有没有简单的方法来做到这一点? 最佳答案 你在找这样的东西吗?importkeras.backendasKimportnumpyasnpval=np.random.random((4,2,3))t=K.variable(value=val)t1=t[0,:,:]t2=t[1,:,:]t3=t[2,:,:]t4=t[3,:,:]p

python - 使用 Pandas 为 Scikit-Learn 准备 CSV 文件数据?

我有一个没有标题的csv文件,我正在使用pandas将其导入python。最后一列是目标类,其余列是图像的像素值。我如何继续使用pandas(80/20)将此数据集拆分为训练集和测试集?此外,一旦完成,我将如何拆分这些集合中的每一个,以便我可以定义x(除最后一列之外的所有列)和y(最后一列)?我使用以下方法导入了我的文件:dataset=pd.read_csv('example.csv',header=None,sep=',')谢谢 最佳答案 我建议使用sklearn的train_test_splitfromsklearn.mode

python - 我需要 Keras VGG16 的预训练权重吗?

作为上下文,我对机器学习的世界还比较陌生,我正在尝试一个项目,目标是对NBA比赛中的比赛进行分类。我的输入是NBA比赛中每场比赛的40帧序列,我的标签是给定比赛的11个包罗万象的分类。计划是获取每个帧序列并将每个帧传递到CNN中以提取一组特征。然后,来自给定视频的每个特征序列都将传递到RNN。我目前在大部分实现中使用Keras,我选择为我的CNN使用VGG16模型。下面是一些相关代码:video=keras.Input(shape=(None,255,255,3),name='video')cnn=keras.applications.VGG16(include_top=False,w

python - 如何合并具有相同输入的keras顺序模型?

我正在尝试在keras中创建我的第一个集成模型。我的数据集中有3个输入值和一个输出值。fromkeras.optimizersimportSGD,Adamfromkeras.layersimportDense,Mergefromkeras.modelsimportSequentialmodel1=Sequential()model1.add(Dense(3,input_dim=3,activation='relu'))model1.add(Dense(2,activation='relu'))model1.add(Dense(2,activation='tanh'))model1.co

python - Keras 提前停止 : Which min_delta and patience to use?

我是深度学习和Keras的新手,我尝试对我的模型训练过程进行的改进之一是利用Keras的keras.callbacks.EarlyStopping回调函数。根据训练我的模型的输出,将以下参数用于EarlyStopping似乎合理吗?EarlyStopping(monitor='val_loss',min_delta=0.0001,patience=5,verbose=0,mode='auto')此外,如果要等待5个连续的时期,其中val_loss的差异小于min_delta0.0001?训练LSTM模型时的输出(没有EarlyStop)运行所有100个epochEpoch1/10010

python - 在有条件的keras中实现自定义损失函数

我需要一些关于keras损失函数的帮助。我一直在使用Tensorflow后端在keras上实现自定义损失函数。我已经在numpy中实现了自定义损失函数,但如果能将其转换为keras损失函数就更好了。损失函数采用数据框和一系列用户ID。如果user_id不同,则同一user_id的欧氏距离为正和负。该函数返回数据帧的标量距离总和。defcustom_loss_numpy(encodings,user_id):#user_id:apandasseriesofusers#encodings:apandasdataframeofencodingsbatch_dist=0foriinrange(