草庐IT

Scikit-Learn-Keras

全部标签

python - 如何在 Scikit 中计算多类分类的混淆矩阵?

我有一个多类分类任务。当我基于scikitexample运行我的脚本时如下:classifier=OneVsRestClassifier(GradientBoostingClassifier(n_estimators=70,max_depth=3,learning_rate=.02))y_pred=classifier.fit(X_train,y_train).predict(X_test)cnf_matrix=confusion_matrix(y_test,y_pred)我收到这个错误:File"C:\ProgramData\Anaconda2\lib\site-packages\s

python - keras BatchNormalization 轴说明

kerasBatchNormalizationlayer使用axis=-1作为默认值,并说明特征轴通常是归一化的。为什么会这样?我想这很令人惊讶,因为我更熟悉使用类似StandardScaler的东西,这相当于使用axis=0。这将单独规范化特征。在keras中默认单独标准化样本(即axis=-1)而不是特征是否有原因?编辑:具体示例通常会转换数据,使每个特征都具有零均值和单位方差。让我们只考虑这个模拟数据集的“零均值”部分,其中每一行都是一个样本:>>>data=np.array([[1,10,100,1000],[2,20,200,2000],[3,30,300,3000]])>>

python - Tensorflow——keras model.save() 引发 NotImplementedError

importtensorflowastfmnist=tf.keras.datasets.mnist(x_train,y_train),(x_test,y_test)=mnist.load_data()x_train=tf.keras.utils.normalize(x_train,axis=1)x_test=tf.keras.utils.normalize(x_test,axis=1)model=tf.keras.models.Sequential()model.add(tf.keras.layers.Flatten())model.add(tf.keras.layers.Dense(

python - 使用 scikit learn 训练逻辑回归以进行多类分类

根据scikitmulticlassclassification逻辑回归可以通过设置用于多类分类multi_class=multinomial在构造函数中。但是这样做会出错:代码:text_clf=Pipeline([('vect',TfidfVectorizer()),('clf',LogisticRegression(multi_class='multinomial')),])text_clf=text_clf.fit(X_train,Y_train)错误:ValueError:求解器liblinear不支持多项式后端。你能告诉我这里出了什么问题吗?注意:将multi_class保

python - Scikit-learn:preprocessing.scale() 与 preprocessing.StandardScaler()

我理解缩放意味着以均值(mean=0)为中心并使单位方差(variance=1)。但是,scikit-learn中的preprocessing.scale(x)和preprocessing.StandardScalar()有什么区别? 最佳答案 它们做的完全一样,但是:preprocessing.scale(x)只是一个函数,它转换一些数据preprocessing.StandardScaler()是一个支持TransformerAPI的类我会一直使用后者,即使我不需要inverse_transform和co。由StandardSc

python - 这条消息是什么意思?从 : can't read/var/mail/ex48 (Learn Python the Hard Way ex49)

这个问题在这里已经有了答案:GettingPythonerror"from:can'tread/var/mail/Bio"(7个答案)关闭6个月前。在ex49中,我们被告知使用以下命令调用在ex48中创建的lexicon.py文件。当我尝试使用以下命令导入词典文件时>>>fromex48importlexicon它返回以下内容:from:can'tread/var/mail/ex48我试过查找这个。这是什么意思?文件放错地方了吗?

python - 如何在 Keras 中正确设置 steps_per_epoch 和 validation_steps?

我已经在Keras中训练了多个模型。我的训练集中有39、592个样本,验证集中有9、899个样本。我使用的批量大小为2。当我检查我的代码时,我突然想到我的生成器可能丢失了一些批处理的数据。这是我的生成器的代码:train_datagen=ImageDataGenerator(rescale=1./255,shear_range=0.2,zoom_range=0.2,horizontal_flip=True)val_datagen=ImageDataGenerator(rescale=1./255)train_generator=train_datagen.flow_from_direc

python - 了解 scikit 学习预测的随机森林内存要求

我有一组2000棵经过训练的随机回归树(来自scikitlearn的随机森林回归器,n_estimators=1)。使用multiprocessing和共享内存在大型数据集(~100000*700000=70GB@8位)上并行训练树(50个核心),效果非常好。请注意,我没有使用RF的内置多核支持,因为我事先进行了功能选择。问题:并行测试大型矩阵(~20000*700000)时,我总是内存不足(我可以访问具有500GBRAM的服务器)。我的策略是将测试矩阵保存在内存中并在所有进程之间共享。根据statementbyoneofthedevelopers测试的内存要求是2*n_jobs*si

python - 如何使用 scikit-learn 获取每个 k-means 集群的惯性值?

我正在使用scikitlearn进行聚类(k-means)。当我使用详细选项运行代码时,它会打印每次迭代的惯性。算法完成后,我想获得每个形成的簇的惯性(k个惯性值)。我怎样才能做到这一点? 最佳答案 我设法使用fit_transform方法获取该信息,他们获取每个样本与其簇之间的距离。model=cluster.MiniBatchKMeans(n_clusters=n)distances=model.fit_transform(trainSamples)variance=0i=0forlabelinmodel.labels_:var

python - 自动编码器的正则化太强(Keras 自动编码器教程代码)

我正在使用这个关于自动编码器的教程:https://blog.keras.io/building-autoencoders-in-keras.html所有代码都可以正常工作,但是当我为正则化参数(教程代码中定义的参数)设置10e-5时,性能非常差(结果模糊)。事实上,我需要将正则化降低到10e-8以获得正确的输出。我的问题如下:为什么结果和教程差别这么大?同样的数据,同样的参数,没想到差别这么大。我怀疑Keras函数的默认行为已从2016年5月14日起更改(在所有情况下都执行自动批归一化?)。输出使用10e-5正则化(模糊);val_loss在50个时期后为0.2967,在100个时期