小编ZAW*_*AWD的帖子

如何在scikit-learn中用管道调整自定义内核函数的参数

目前我已经使用def函数成功定义了一个自定义内核函数(预先计算内核矩阵),现在我使用GridSearchCV函数来获取最佳参数.

因此,在自定义内核函数中,总共有2个参数将被调整(即下例中的gamm和sea_gamma),而且对于SVR模型,还必须调整cost c参数.但到目前为止,我可以使用GridSearchCV 调整成本c参数 - >请参考下面的第一部分:示例.

我搜索了一些类似的解决方案,例如:

是否可以在scikit-learn中使用网格搜索调整参数来定制内核?

它说:" 实现这一目标的一种方法是使用Pipeline,SVC(kernel ='precomputed')并将自定义内核函数包装为sklearn估计器(BaseEstimator和TransformerMixin的子类).)"但这仍然与我的情况不同然而,问题是,我尝试基于此解决方案解决问题,但到目前为止它没有打印任何输出,甚至是任何错误. - >请参考第二部分:管道解决方案.

第一部分:示例 - >我在网格搜索中的原始自定义内核和评分方法是:

    import numpy as np
    import pandas as pd
    import sklearn.svm as svm
    from sklearn import preprocessing,svm, datasets
    from sklearn.preprocessing import StandardScaler,  MaxAbsScaler
    from sklearn.metrics.pairwise import rbf_kernel
    from sklearn.grid_search import GridSearchCV
    from sklearn.svm import SVR
    from sklearn.pipeline import Pipeline
    from sklearn.metrics.scorer import make_scorer

    # weighting the vectors
    def distance_scale(X,Y):
        K = np.zeros((X.shape[0],Y.shape[0]))
        gamma_sea =192

        for i in range(X.shape[0]):
            for j …
Run Code Online (Sandbox Code Playgroud)

python pipeline svm scikit-learn grid-search

13
推荐指数
1
解决办法
1333
查看次数

匹配Spotfire中同一列中的组(表达式)

关于我发布的上一个问题: 计算Spotfire中特定行的相同列的差异

我有一个新问题,下面是样本:

在此输入图像描述

我想要实现的新功能是,

  • 为TYPE = 1 搜索下一个最接近的TYPE = 0
  • 如果TYPE = 1具有最接近的TYPE = 0,则在新计算列中将其标记为"T",否则为NULL

数据规则:

  • 状态列按顺序包含{1,2},空值空间的默认值与其上方最后一个最接近的状态值相同.
  • 类型列只包含0和1

输出应该是这样的:

在此输入图像描述

我试过的解决方案:

    If(([type]=1) and (first([type]) OVER (intersect(previous([type]),AllNext([status])))=0),"T",Null)
Run Code Online (Sandbox Code Playgroud)

它看起来很好,但问题出在每个状态组中,例如第一个status = 1组中的最后一个TYPE = 1(第5行),它没有接下来最接近的TYPE = 0,因此判断为Null.但基于代码,它是T!:(

有什么建议和想法吗?非常感谢'!PS:一些细节:

  • 状态的第一个Type值为NULL
  • 状态列中的其他空格可以填充如下,如果它对表达式有用:):

在此输入图像描述

expression calculated-columns spotfire

10
推荐指数
1
解决办法
747
查看次数

处理R中的日期时间值

首先,我有一个大的data.table,带有一个参数-Date,但str(Date)是chr.

date                
2015-07-01 0:15:00 
2015-07-01 0:30:00 
2015-07-01 0:45:00 
2015-07-01 0:60:00 
2015-07-01 1:15:00 
2015-07-01 1:30:00 
2015-07-01 1:45:00 
2015-07-01 1:60:00 
Run Code Online (Sandbox Code Playgroud)

我想做的是

  • 以标准格式制作,如:2015-07-01 00:15:00
  • 更正时间,例如:2015-07-01 1:60:00 - > 2015-07-01 02:00:00

对于第一个,我试图使用函数as.POSIXct()来重置格式,它应该是正确的,但问题是对于像2015-07-01 1:60:00这样的数据,转换后,它是只是NA.

有谁有想法?

这是生成测试数据的代码:

dd <- data.table(date = c("2015-07-01 0:15:00", "2015-07-01 0:30:00", 
    "2015-07-01 0:45:00","2015-07-01 0:60:00", "2015-07-01 1:15:00",
    "2015-07-01 1:30:00","2015-07-01 1:45:00","2015-07-01 1:60:00","2015-07-01 2:15:00"))
Run Code Online (Sandbox Code Playgroud)

注意:此表只有一天,表的最后一个值是

2015-07-01 23:60:00
Run Code Online (Sandbox Code Playgroud)

对于任何不明确的点,请随时告诉我,谢谢!

time r date data.table

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

如何按键重新创建表格?

我认为这可能是一个非常简单的问题,但我真的是R的新手.

我有一个data.table带键和许多行,其中两个可以设置为键.我想通过Key重新创建表.

例如,简单的数据.在这种情况下,关键是IDAct,在这里我们总共可以得到4组.

ID  ValueDate Act Volume
1 2015-01-01 EUR     21
1 2015-02-01 EUR     22
1 2015-01-01 MAD     12
1 2015-02-01 MAD     11
2 2015-01-01 EUR      5
2 2015-02-01 EUR      7
3 2015-01-01 EUR      4
3 2015-02-01 EUR      2
3 2015-03-01 EUR      6
Run Code Online (Sandbox Code Playgroud)

这是生成测试数据的代码:

dd <- data.table(ID = c(1,1,1,1,2,2,3,3,3), 
             ValueDate = c("2015-01-01", "2015-02-01", "2015-01-01","2015-02-01", "2015-01-01","2015-02-01","2015-01-01","2015-02-01","2015-03-01"),
             Act = c("EUR","EUR","MAD","MAD","EUR","EUR","EUR","EUR","EUR"),
             Volume=c(21,22,12,11,5,7,4,2,6))
Run Code Online (Sandbox Code Playgroud)

更改后,每列应显示一个由Key(IDAct)定义的特定组.

结果如下:

 ValueDate ID1_EUR D1_MAD D2_EUR D3_EUR
 2015-01-01      21     12      5 …
Run Code Online (Sandbox Code Playgroud)

r data.table

3
推荐指数
1
解决办法
64
查看次数

HTCondor Shadow 异常:[Errno 8] Exec 格式错误

我是 HTcondor 的新手,在我通过 Putty 提交作业后,该作业被搁置,日志文件显示以下错误:

007 (274036.000.000) 06/28 23:12:08 Shadow exception!
    Error from slot1@hana-******: Failed to execute '/var/lib/condor/execute/dir_107122/condor_exec.exe': (errno=8: 'Exec format error')
     0  -  Run Bytes Sent By Job
     16520  -  Run Bytes Received By Job
     ...

012 (274036.000.000) 06/28 23:12:08 Job was held.
     Error from slot1@hana-2.*******: Failed to execute'/var/lib/condor/execute/dir_107122/condor_exec.exe': (errno=8: 'Exec format error')
     Code 6 Subcode 8
     ...
Run Code Online (Sandbox Code Playgroud)

下面是我提交的描述文件:

# defining the programm
cmd = /***/my_prog.ipynb
# defining the parameters

#args = /***/model_1/data_1.csv
#args = /***/model_2/data_2.csv
#args = /***/model_3/data_3.csv …
Run Code Online (Sandbox Code Playgroud)

python format condor

3
推荐指数
1
解决办法
1388
查看次数

计算 Spotfire 中特定行的同一列的差异

我在 Spotfire 中使用计算列进行行差异计算时遇到问题。

我想知道是否可以创建一个计算列来计算当前行与具有不同属性的下一行之间的差异。示例表可能是这样的:

在此输入图像描述

结果可能是这样的:

在此输入图像描述

基本行是:

  1. 类型=1 时,计算其当前与其下一个最接近的类型=0 的行之间的差值,然后将结果添加到新的计算列中。
  2. 顺便说一句,价值总是增加:)
  3. 例如,对于第一个结果2,当前值为 20,下一行是与 0 最接近的类型,下一行的值为 22,则结果为 2
  4. 但对于下一个 type=1,当前值为 25,并且最接近的 type=0 在第六行,因此结果可能是 29-25=4

我尝试过的方法:

  1. 我添加了一个新的 RowID 列
  2. 然后尝试代码:

    if([type]=1),[value] - Sum([value]) OVER (PreviousPeriod([RowID])),null)
    
    Run Code Online (Sandbox Code Playgroud)

但它只是显示类型 1、无类型 1 和类型 0 之间的区别:(

任何帮助或建议将不胜感激:)

谢谢!

calculated-columns difference spotfire

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