标签: norm

解释不同阶数的 LK Norm 对训练存在异常值的机器学习模型的影响

( RMSE和MAE都是测量两个向量之间距离的方法:预测向量和目标值向量。各种距离测量或范数都是可能的。一般来说,计算向量的大小或长度通常直接需要或作为更广泛的向量或向量矩阵运算的一部分。

尽管RMSE通常是回归任务的首选性能度量,但在某些情况下您可能更喜欢使用其他函数。例如,如果数据集中有许多异常值实例,在这种情况下,我们可以考虑使用平均绝对误差(MAE)。

更正式地说,规范指数越高,它就越关注大值而忽视小值。这就是 RMSE 比 MAE 对异常值更敏感的原因。 来源:使用 scikit learn 和 tensorflow 进行机器学习实践。

因此,理想情况下,在任何数据集中,如果我们有大量异常值,则损失函数或向量范数“代表预测与真实标签之间的绝对差异;类似于y_diff下面的代码”应该会增长,如果我们增加标准...换句话说,RMSE 应该大于 MAE。--> 如果有错请纠正<--

根据这个定义,我生成了一个随机数据集,并向其中添加了许多异常值,如下面的代码所示。我计算了残差或许多 k 值(范围从 1 到 5)的lk_normy_diff。但是,我发现 lk_norm 随着 k 值的增加而减小;然而,我期望 RMSE(又名范数 = 2)大于 MAE(又名范数 = 1)。

我很想了解当我们增加 K(又名阶数)时,LK 范数是如何减少的,​​这与上面的定义相反。

预先感谢您的任何帮助!

代码:

import numpy as np
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly import tools

num_points = 1000
num_outliers = 50

x = np.linspace(0, 10, …
Run Code Online (Sandbox Code Playgroud)

python absolute-value norm least-squares loss-function

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

如何计算没有循环的矩阵的欧氏长度?

似乎答案应该很简单,但我很难过.我有一个Nx3矩阵矩阵,其中第1和第3列是第n项的XY和Z坐标.我想计算从原点到物品的距离.在非矢量化形式中,这很容易.

距离= norm([xyz]);

要么

距离= sqrt(x ^ 2 + y ^ 2 + z ^ 2);

但是,在矢量化形式中它并非如此简单.当你传递一个矩阵来规范时,它不再返回欧几里德长度.

距离=范数(矩阵); %不起作用

distance = sqrt(x(:,1).*x(:,1)+ y(:,2).*y(:,2)+ z(:,3).*z(:,3)); %只是看起来很乱

有一个更好的方法吗?

matlab distance vectorization norm euclidean-distance

6
推荐指数
1
解决办法
2万
查看次数

具有NoRM驱动程序的MongoDb中的多态性问题

我有课

[MongoDiscriminated]
public abstract class Content
{
    public int? Id { get; set; }
    public int? ParentId { get; set; }
    public string Slug { get; set; }
    public string Path { get; set; }
    public string Title { get; set; }
}

public class Area : Content
{
}
Run Code Online (Sandbox Code Playgroud)

像这样的查询有效

var item = mongo.GetCollection<Area>().AsQueryable().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

但是当我提出类似的查询时

var item = mongo.GetCollection<Content>().AsQueryable().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

我得到一个InvalidCastException

Object must implement IConvertible.
Run Code Online (Sandbox Code Playgroud)

怎么了?将Area转换为Content应该不是问题.我真的必须制作内容才能实现IConvertible吗?

c# polymorphism mongodb norm

5
推荐指数
1
解决办法
482
查看次数

MongoDB设计 - 标签

我是MongoDB的新手.我有一个关于MongoDB性能的设计问题.假设我有类电影有两个属性,名称和导演.另外我想标记这个电影类.最好为这个类添加一个新的strings []属性,或者创建一个新的类MovieTags?我知道我会查询这个标签很多,因为我会在UI上使用自动完成功能.对于这个自动完成功能,我只需要标签,而不是Movie对象.什么选择更好?添加一个strings []的属性或引用MovieTags的集合?考虑性能......当然,在这两种情况下都会进行索引编制.

我应该使用MapReduce吗?如果我使用一个embebed string []对象,只为自动完成功能选择标签?怎么样?

谢谢!

.net mongodb norm

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

Mathematica中笛卡尔坐标系中的计算距离

分析屏幕上的眼动,我将我的原点设置到它的左下角(那时难以修改).

试图计算某些点和屏幕中心之间的距离我使用下面显示的简单公式.问题是在条件语句中使用它会变得很难看.

Sqrt[
(
(fixationX - centerX)^2 + (fixationY - centerY)^2
)
]
Run Code Online (Sandbox Code Playgroud)

有没有办法定制Norm来计算点之间的距离,而不是点和原点之间的距离?

或者在我的情况下,将原点设置为当前坐标系的"中心"?

wolfram-mathematica distance norm cartesian

5
推荐指数
1
解决办法
765
查看次数

得到numpy稀疏矩阵行的规范

我有一个稀疏矩阵,我通过使用Sklearn的TfidfVectorizer对象获得:

vect = TfidfVectorizer(sublinear_tf=True, max_df=0.5, analyzer='word', vocabulary=my_vocab, stop_words='english')
tfidf = vect.fit_transform([my_docs])
Run Code Online (Sandbox Code Playgroud)

稀疏矩阵是(取出数字的一般性):

<sparse matrix of type '<type 'numpy.float64'>'
with stored elements in Compressed Sparse Row format>]
Run Code Online (Sandbox Code Playgroud)

我试图获取每行的数值,告诉我文档有多高我要找的条件.我真的不在乎它包含哪些词,我只是想知道它包含了多少.所以我想得到每个或行*row.T的标准.但是,我很难与numpy一起工作来获得这个.

我的第一个方法是简单地做:

tfidf[i] * numpy.transpose(tfidf[i])
Run Code Online (Sandbox Code Playgroud)

但是,numpy显然不会转换少于一维的数组,因此只会对向量求平方.所以我试着这样做:

tfidf[i] * numpy.transpose(numpy.atleast_2d(tfidf[0]))
Run Code Online (Sandbox Code Playgroud)

但是numpy.transpose(numpy.atleast_2d(tfidf [0]))仍然不会转置该行.

我继续尝试获得行的标准(这种方法可能更好).我最初的方法是使用numpy.linalg.

numpy.linalg.norm(tfidf[0])
Run Code Online (Sandbox Code Playgroud)

但这给了我一个"尺寸不匹配"的错误.所以我试着手动计算规范.我开始只是设置一个变量等于稀疏矩阵的numpy数组版本并打印出第一行的len:

my_array = numpy.array(tfidf)
print my_array
print len(my_array[0])
Run Code Online (Sandbox Code Playgroud)

它正确打印出my_array,但是当我尝试访问len时它会告诉我:

IndexError: 0-d arrays can't be indexed
Run Code Online (Sandbox Code Playgroud)

我只是想获得fit_transform返回的稀疏矩阵中每一行的数值.获得常规将是最好的.这里的任何帮助非常感谢.

python arrays numpy matrix norm

5
推荐指数
2
解决办法
3444
查看次数

L1范数在Python上规范化最小二乘

L1范数正则化问题定义如下:

minimize || A*x - b ||_2^2  + || x ||_1
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,而不是通常的L1 -norm正则化最小二乘问题,我想解决这种形式的问题:

minimize || A*x - b ||_2^2  + || W*G*x ||_1
Run Code Online (Sandbox Code Playgroud)

由于我的表格W和G不具有相同的尺寸,因为AI不能改变我的变量并解决这样的问题

minimize || A*x/(W*B) - b ||_2^2  + || x ||_1
Run Code Online (Sandbox Code Playgroud)

这样我就可以使用互联网上提供的一个解算器.所以我找到了一个解决上述L1平方问题的方程式,如:

minimize || A*x - b ||_2^2  + || x ||_1
minimize    || A*x - b ||_2^2  + e'*u
subject to  -u <= x <= u
Run Code Online (Sandbox Code Playgroud)

所以,据我所知,如果我使用-u <= W G x <= ui可以解决问题.但我无法得到我将完全适应代码的东西.有人可以帮忙吗?代码如下(取自CVXOPT)

from cvxopt import matrix, spdiag, mul, div, sqrt, normal, setseed
from cvxopt import …
Run Code Online (Sandbox Code Playgroud)

python optimization norm least-squares cvxopt

5
推荐指数
1
解决办法
1231
查看次数

c#MongoDB(noRM) - 包含嵌入文档的存储库模式

我正在使用类似于Stack Overflow(问题/答案等)的 模型开发应用程序...使用C#/ ASP.net MVC建模NoSQL论坛应用程序

该模型看起来像这样(简化)

class Question
{
    public string Title { get; set; }
    public string Body { get; set; }
    public DateTime DateCreated { get; set; }

    public string UserName { get; set; }

    public List<Answer> Replies { get; set; }
}

class Answer
{
    public string Body { get; set; }
    public DateTime DateCreated { get; set; }

    public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以我的文档只是一个文档,其中嵌入了"答案"

我正在尝试为这种方法设计我的存储库.

我应该有2个独立的存储库吗?例如:

interface IQuestionRepository
{
    void PutQuestion(Question question);
    Question …
Run Code Online (Sandbox Code Playgroud)

c# mongodb norm

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

python中向量数组的范数

我有这个数组

   A = array([[-0.49740509, -0.48618909, -0.49145315],
   [-0.48959259, -0.48618909, -0.49145315],
   [-0.49740509, -0.47837659, -0.49145315],
   ..., 
   [ 0.03079315, -0.01194593, -0.06872366],
   [ 0.03054901, -0.01170179, -0.06872366],
   [ 0.03079315, -0.01170179, -0.06872366]])
Run Code Online (Sandbox Code Playgroud)

这是3D矢量的集合.我想知道我是否可以使用矢量运算来获取具有每个向量的范数的数组.

我试过norm(A)但它没有用.

python arrays numpy norm

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

规范化矩阵行,使它们的范数等于 1 (MATLAB)

我有以下问题 - 我有一个A大小为 16x22440的矩阵。

我需要做的是对这个矩阵的每一行进行归一化,使每行的范数等于 1 ( for n=1:16 norm(A(n,:))==1)

我怎样才能在matlab中实现这一目标?

编辑:此矩阵中的每一行都是由 160x140 图像创建的向量,因此必须单独考虑。需要对这些值进行归一化以创建特征脸矩阵。

matlab normalization norm

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