unittest的自定义断言熊猫系列和数据帧。相似性测试,基于3.试验

smoothassert的Python项目详细描述


平滑断言

此包包含要比较的自定义断言方法熊猫系列物体。在

  1. 资产相似性
  2. Assert_Cos_Sim_系列

安装

使用pip获取包(这可能需要几分钟时间) 尝试使用以下方法之一:

 pip install pip install -i https://test.pypi.org/simple/ smoothassert

入门

导入模块

^{pr2}$

或者 直接导入要使用的方法

fromsmoothassert.smoothassertimportAssertSimilarSeries

特点

1。资产相似系列

这种方法的用途是检查左、右级数在给定的错误率下是否相等或相似。 这种方法的主要用途是在您不希望或无法生成错误率为0%的代码时使用,即:机器学习模型。因为在公共包中给定的基本断言只有AssertEqual方法,它们看起来是100%相等的。如果你有一个机器学习模型,你想要有80%的精度,那么你可以调用这个方法来测试它,除非输出流中有更多的错误,否则它不会引发断言错误。在

示例

如果我们有两个级数,在这个例子中几乎相等,它有1/5,所以20%的差异。在

importpandasaspdfromsmoothassert.smoothassertimportAssertSimilarSeriesA=pd.Series(['a','b','c','d','e'])B=pd.Series(['b','b','c','d','e'])AssertSimilarSeries(A,B)Output:AssertionError:Seriesarediferentin20.0%whiletheallowablelimitis0%

但如果我们提高误差限制:

importpandasaspdfromsmoothassert.smoothassertimportAssertSimilarSeriesA=pd.Series(['a','b','c','d','e'])B=pd.Series(['b','b','c','d','e'])AssertSimilarSeries(A,B,percent=0.2)Output:OK,errorrate:20.0

也许你会用一个unittest框架来测试你的代码,什么是完美的,它也能与它一起工作。在

2。Assert_Cos_Sim_系列

检查左右值是否在给定速率下彼此相似(需要默认1个令牌相似性)。 断言分类数据很好,或者字符串。用于例如,如果您有一个多类预测,并且您有两个类作为输出,但是如果modell没有找到所有的类,但是找到了一些类,那么它可以通过测试。在

示例

如果左序列中的每个值至少包含右序列中的一个分类/标记,则测试将通过。在

importpandasaspdfromsmoothassert.smoothassertimportAssert_Cos_Sim_Seriesout=pd.Series(['red','car','ford','red'])expected=pd.Series(['red,car,sport','car','ford,blue,1999','car,red'])Assert_Cos_Sim_Series(out,expected)Output:OK

您可以设置相似性限制,也可以将其默认为0,以便如果有任何相似性,它将通过。 您可以将其设置为:

Assert_Cos_Sim_Series(out,expected,min_sim=0.2)

文件

  1. 资产相似性 检查左、右序列是否与给定的错误率相等或相似。在
  • s1系列
  • s2系列
  • 百分比:在0和1之间浮动默认为0 系列间误差的允许限值,以百分数/100表示
  • 检查“序列”类型:bool,默认为True 是否检查序列类是否相同。在
  • check_names:bool,默认为True 是否检查序列和索引名称属性。在
  • 检查类型:bool,默认为True 是否检查序列数据类型是否相同。在
  1. Assert_Cos_Sim_系列
  • 检查两个系列元素之间的余弦相似性是否大于min_sim
  • s1系列
  • s2系列
  • min_-sim:在0和1之间浮动默认值0(这意味着每行至少有一个令牌必须相似)
  • 静音:布尔默认为真 使书面反馈静音

发展中

  • 添加检查方法
  • 添加一个可变的文本预处理程序来断言\u Cos_Sim_Series、柠檬化、词干、删除停止字词等

许可证

有关许可证信息,请参见LICENSE。在

贡献/联系信息

如果您发现错误或某些指令不再工作,请打开GitHub问题,或者最好创建一个包含所需更改的请求。在

你也可以联系我tomcsojn@gmail.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ws-consumer服务地址中的java动态属性   java如何比较整数列表,然后按升序排序?   javascript我正在使用java脚本调用一个函数,但它没有调用代码下面的方法,也没有调用secretitnames()函数   在文本窗格中多次使用Java insertIcon图标   JavaMSAL安卓。AuthenticationActivity完成,但用于身份验证请求的线程池线程仍处于等待状态   if语句中的java多范围比较   java toString()表示输出   java如何在jcstrest测试中生成指令重新排序   java我怎样才能运行它?   web应用程序中使用Hibernate和Spring的java问题   如何将字符串数据写入Java文本文件   如何在java命令提示符下运行已签名的jar文件?   java从我的菜单调用RCP应用程序   java如何等待Canvas/GraphicsContext完成任务,然后再继续执行代码块?