我有一个现有的协方差矩阵,我想根据各个列所属的组将其转换为块对角线(例如,第 2 行/列是第 1 组,接下来是第 2 组等)是否有一种简单的方法这样做:
下面是我所拥有的示例:
m1 <- matrix(1:16, ncol=4, byrow=TRUE)
rownames(m1) <- colnames(m1 ) <- c('a', 'b', 'c', 'd')
a b c d
a 1 2 3 4
b 5 6 7 8
c 9 10 11 12
d 13 14 15 16
Run Code Online (Sandbox Code Playgroud)
我有2组:
第 1 组:“a”、“b”
第 2 组:“c”、“d”
我想要什么:
a b c d
a 1 2 0 0
b 5 6 0 0
c 0 0 11 12
d 0 0 15 16
Run Code Online (Sandbox Code Playgroud) 我想使用一个自定义函数,cross_validate它使用特定y_test的计算精度,这y_test与实际目标不同y_test。
我尝试了几种方法,make_scorer但我不知道如何实际通过我的替代方法y_test:
scoring = {'prec1': 'precision',
'custom_prec1': make_scorer(precision_score()}
scores = cross_validate(pipeline, X, y, cv=5,scoring= scoring)
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一种方法吗?
我的 X_test 数据帧的列的名称/顺序是否必须与我用于拟合的 X_train 相同?
下面是一个例子
我正在训练我的模型:
model.fit(X_train,y)
Run Code Online (Sandbox Code Playgroud)
在哪里X_train=data['var1','var2']
但在预测过程中,当我使用:
model.predict(X_test)
Run Code Online (Sandbox Code Playgroud)
X_test定义为:X_test=data['var1','var3']
其中var3可能是与 完全不同的变量var2。
是否predict假设 与中的第二列var3相同?var2X_test
如果什么:
X_live被定义为:X_live=data['var2','var1']
预测会知道重新排序 X 以使它们正确排列吗?
我GridSearchCV用来识别最佳参数,但我不确定如何实际使用最佳参数,也就是说,在下面的代码中,在第三行中,更改第一行后我的结果不会改变(例如,如果我更改参数空格,或用精确度替换召回率等)
cv = GridSearchCV(pipeline, parameters, cv=len(range(2014,2019)), scoring='recall', refit=True)
cv.fit(X,y)
y_pred = cross_val_predict(cv, X, y, cv=len(range(2014,2019)))
Run Code Online (Sandbox Code Playgroud)
有没有办法确保无论何时GridSearchCV我打电话时,所确定的最佳参数实际上也会被使用cv.predict?
python machine-learning scikit-learn cross-validation grid-search
我想创建一个循环,在提供时间段、第一天和最后一天返回每个月(考虑到月份在第 28-31 天结束):(“function_to_increase_month”尚未定义)
for beg in pd.date_range('2014-01-01', '2014-06-30', freq='1M'):
period_start = beg
period_end = function_to_increase_month(beg)
Run Code Online (Sandbox Code Playgroud)
第一次迭代的预期输出: period_start = '2014-01-01' period_end = '2014-01-31'
第二次迭代: period_start = '2014-02-01' period_end = '2014-02-28'
第三次迭代: period_start = '2014-03-01' period_end = '2014-03-31'
谁能建议一种方法?
我知道 sort_index() 可以让我按索引对 df 进行排序,但我想知道 sort_values() 是否也可以按索引排序(无需重置索引)?
我有一个关于MPI的基本问题,为了更好地理解它(我是MPI和多个过程的新手,所以请在这个上承担我的责任).我正在使用C++(RepastHPC)中的模拟环境,它广泛使用MPI(使用Boost库)来允许并行操作.特别是,模拟由各个类(即代理)的多个实例组成,它们应该相互交互,交换信息等.现在假设这发生在多个进程上(并且给出了我对MPI的基本理解)我所拥有的自然问题或恐惧是,不同进程的代理不再相互影响,因为它们无法连接(我知道,这与MPI的整个概念相矛盾).
阅读本手册后,我的理解是这样的:Boost.MPI的可用库(以及上面提到的包的库)负责处理所有通信并在进程之间来回发送包,即每个进程都有来自其他进程的实例(我猜这是某种形式的值调用,b/c原始实例不能从只有副本的进程中更改),然后进行更新,以确保实例的副本具有与原件相同的信息等.
这是否意味着,就模拟运行的最终结果而言,我会像在一个进程中完成整个事情一样?换句话说,多个过程只是为了加快速度而不是改变模拟的设计(因此我不必担心它)?
python ×4
scikit-learn ×2
boost ×1
c++ ×1
data-fitting ×1
date ×1
grid-search ×1
indexing ×1
loops ×1
matrix ×1
mpi ×1
pandas ×1
predict ×1
r ×1
sorting ×1