相关疑难解决方法(0)

Numpy:用向量元素划分每一行

假设我有一个numpy数组:

data = np.array([[1,1,1],[2,2,2],[3,3,3]])
Run Code Online (Sandbox Code Playgroud)

我有一个相应的"矢量:"

vector = np.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)

如何对data每行进行减法或除法运算,结果如下:

sub_result = [[0,0,0], [0,0,0], [0,0,0]]
div_result = [[1,1,1], [1,1,1], [1,1,1]]
Run Code Online (Sandbox Code Playgroud)

长话短说:如何使用与每行对应的一维标量数组对2D数组的每一行执行操作?

python arrays numpy scipy

102
推荐指数
4
解决办法
7万
查看次数

Python:如何规范混淆矩阵?

我使用sklearn包中的confusion_matrix()方法为我的分类器计算了一个混淆矩阵.混淆矩阵的对角元素表示预测标签等于真实标签的点的数量,而非对角线元素是由分类器错误标记的元素.

我想将我的混淆矩阵归一化,使其仅包含0到1之间的数字.我想从矩阵中读取正确分类的样本的百分比.

我发现了几种方法如何标准化矩阵(行和列标准化),但我对数学知之甚少,并且不确定这是否是正确的方法.有人可以帮忙吗?

python normalization matrix confusion-matrix scikit-learn

20
推荐指数
7
解决办法
2万
查看次数

如何使用Tensorflow创建预测和地面真实标签的混淆矩阵?

我已经在使用TensorFlow的帮助下实现了Nueral Network模型的分类.但是,我不知道如何通过使用预测分数(准确度)来绘制混淆矩阵.我不是TensorFlow的专家,仍处于学习阶段.在这里,我粘贴了下面的代码,请告诉我如何编写代码以便从以下代码中产生混淆:

# Launch the graph
with tf.Session() as sess:
sess.run(init)

# Set logs writer into folder /tmp/tensorflow_logs
#summary_writer = tf.train.SummaryWriter('/tmp/tensorflow_logs', graph_def=sess.graph_def)

# Training cycle
for epoch in range(training_epochs):
    avg_cost = 0.
    total_batch = int(X_train.shape[0]/batch_size)

    # Loop over total length of batches
    for i in range(total_batch):  
        #picking up random batches from training set of specific size
        batch_xs, batch_ys = w2v_utils.nextBatch(X_train, y_train, batch_size)
        # Fit training using batch data
        sess.run(optimizer, feed_dict={x: batch_xs, y: batch_ys})
        # Compute average loss
        avg_cost += sess.run(cost, …
Run Code Online (Sandbox Code Playgroud)

python confusion-matrix tensorflow

4
推荐指数
1
解决办法
9388
查看次数

从两个向量构建混淆矩阵

我需要定义一个生成混淆矩阵的函数。所以我有两个向量y_labely_predict,它们的元素值为 0、1、2。该函数的目标是创建标签计数:

  | 0 | 1 | 2 |
--------------
0 |   |   |   |
--------------
1 |   |   |   |
--------------
2 |   |   |   |
--------------
Run Code Online (Sandbox Code Playgroud)

例如,cm[0,1]对于每个 i ,应该包含 y_label[i] = 0 和 y_predict[i] = 1 的元素计数。

到目前为止,这就是我所做的:

def get_confusion_matrix(y_label, y_fit):

    cm = np.ndarray([3,3])

    for i in range(3):
        for j in range(3):
            cm[i, j] = ....

    return cm
Run Code Online (Sandbox Code Playgroud)

当然,我可以轻松地进行多级for循环来计数,但是如果 Python / numpy 中有捷径,我想避免这种情况。

我也在考虑制作y_labely_predict合并成为一个元组数组,然后使用 dict-zip 技术,类似于这里: …

python numpy

3
推荐指数
2
解决办法
4082
查看次数