小编ele*_*ora的帖子

如何探索使用scikit学习构建的决策树

我正在使用构建决策树

clf = tree.DecisionTreeClassifier()
clf = clf.fit(X_train, Y_train)
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,我如何探索决策树?

例如,如何找到X_train中的哪些条目出现在特定的叶子中?

python machine-learning decision-tree scikit-learn

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

AVX/SSE版xorshift128 +

我正在努力制作最快的高质量RNG.阅读http://xorshift.di.unimi.it/,xorshift128 +似乎是一个不错的选择.C代码是

#include <stdint.h>
uint64_t s[ 2 ];

uint64_t next(void) { 
    uint64_t s1 = s[ 0 ];
    const uint64_t s0 = s[ 1 ];
    s[ 0 ] = s0;
    s1 ^= s1 << 23; // a
    return ( s[ 1 ] = ( s1 ^ s0 ^ ( s1 >> 17 ) ^ ( s0 >> 26 ) ) ) + s0; // b, c
}
Run Code Online (Sandbox Code Playgroud)

我不是SSE/AVX专家,但我的CPU支持SSE4.1/SSE4.2/AVX/F16C/FMA3/XOP指令.你怎么能用这些来加速这段代码(假设你想要制作数十亿这样的随机数),那么在实践中这个加速的预期限制是多少?

c performance sse avx

10
推荐指数
2
解决办法
3371
查看次数

将1.2GB边的列表转换为稀疏矩阵

我在文本文件中有一个1.2GB的边缘列表.我的ubuntu PC有8GB的RAM.输入中的每一行都是如此

287111206 357850135
Run Code Online (Sandbox Code Playgroud)

我想将其转换为稀疏邻接矩阵并将其输出到文件.

我的数据的一些统计数据:

Number of edges: around 62500000
Number of vertices: around 31250000
Run Code Online (Sandbox Code Playgroud)

我之前在/sf/answers/2706735111/问了很多相同的问题并得到了很好的答案.问题是我无法让它发挥作用.

我首先尝试使用np.loadtxt加载文件,但它非常慢并且使用了大量内存.所以相反我转移到pandas.read_csv这是非常快,但这导致它自己的问题.这是我目前的代码:

import pandas
import numpy as np
from scipy import sparse

data = pandas.read_csv("edges.txt", sep=" ", header= None, dtype=np.uint32)
A = data.as_matrix()
print type(A)
k1,k2,k3=np.unique(A,return_inverse=True,return_index=True)
rows,cols=k3.reshape(A.shape).T
M=sparse.coo_matrix((np.ones(rows.shape,int),(rows,cols)))
print type(M)
Run Code Online (Sandbox Code Playgroud)

问题是pandas数据框data很大,我在A中有效地复制了一个低效的副本.然而,随着代码崩溃,事情变得更糟

<type 'instancemethod'>
Traceback (most recent call last):
  File "make-sparse-matrix.py", line 13, in <module>
    rows,cols=k3.reshape(A.shape).T
AttributeError: 'function' object has no attribute 'shape'
raph@raph-desktop:~/python$ python make-sparse-matrix.py 
<type 'numpy.ndarray'>
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python optimization numpy scipy pandas

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

没有位置参数的scipy.stats.expon.fit()

我正在使用scipy.stats.expon.fit(data) 指数分布到我的数据.这似乎返回两个值,我期望一个.在线文档似乎没有说明什么fit()返回,但查看源,我猜它是一个位置和规模参数.您可以0在进行拟合时修复位置参数吗?

python scipy statsmodels

9
推荐指数
1
解决办法
7314
查看次数

在read_csv中跳过缺少值的行

我有一个非常大的csv,我需要阅读.为了使这快速和节省RAM使用我使用read_csv并将一些列的dtype设置为np.uint32.问题是某些行缺少值,而pandas使用float来表示这些值.

  1. 是否可以简单地跳过缺少值的行?我知道在读完整个文件后我可以这样做,但这意味着我不能在那之前设置dtype,所以会使用太多RAM.
  2. 是否可以将缺失值转换为我在读取数据期间选择的其他值?

python pandas

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

在pip安装pyspark之后运行pyspark

我想安装pyspark在我的家用机器上.我做到了

pip install pyspark
pip install jupyter
Run Code Online (Sandbox Code Playgroud)

两者似乎运作良好.

但是当我试着奔跑时,pyspark我得到了

pyspark
Could not find valid SPARK_HOME while searching ['/home/user', '/home/user/.local/bin']
Run Code Online (Sandbox Code Playgroud)

应该SPARK_HOME设置什么?

pip pyspark

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

在小于O(n ^ 2m)的时间内找到最小汉明距离

如果您有n二进制字符串,每个长度m,是否有更快的方法来确定任何一对之间的最小汉明距离,而不是比较所有O(n^2)对和每个以计算其汉明距离?

那可以在不到一定的O(n^2m)时间内完成吗?

除了其他任何东西,如下所述,汉明距离是一个适当的距离函数,因此满足三角不等式,这让我觉得应该有一个更快的解决方案.

string algorithm hamming-distance

9
推荐指数
1
解决办法
498
查看次数

从昂贵的搜索到整数编程或约束编程?

考虑m乘n矩阵M,其所有条目都是0或1.对于给定的M,问题是是否存在非零向量v,其所有条目都是-1,0或1,其中Mv = 0.例如,

      [0 1 1 1]
M_1 = [1 0 1 1]
      [1 1 0 1]
Run Code Online (Sandbox Code Playgroud)

在这个例子中,没有这样的向量v.

      [1 0 0 0]
M_2 = [0 1 0 0]
      [0 0 1 0]
Run Code Online (Sandbox Code Playgroud)

在此示例中,向量(0,0,0,1)给出M_2v = 0.

给定m和n,我想找到是否存在这样的M,使得不存在非零v,使得Mv = 0.

如果m = 3n = 4那么答案是肯定的,因为我们可以在上面看到.

我目前通过尝试所有不同的M和v来解决这个问题,这是非常昂贵的.

但是,是否可以将问题表达为整数编程问题或约束编程问题,因此我可以使用现有的软件包,例如SCIP,这可能更有效.

math constraint-programming integer-programming

8
推荐指数
2
解决办法
245
查看次数

如何帮助gcc矢量化C代码

我有以下C代码.第一部分只是从标准中读入一个复数的矩阵,称为矩阵M.有趣的部分是第二部分.

#include <stdio.h>
#include <complex.h>
#include <stdlib.h>
#include <assert.h>
#include <math.h>

int main() {
    int n, m, c, d;
    float re, im;

    scanf("%d %d", &n, &m);
    assert(n==m);
    complex float M[n][n];

    for(c=0; c<n; c++) {
      for(d=0; d<n; d++) {
    scanf("%f%fi", &re, &im);
    M[c][d] = re + im * I;
      }
    }

    for(c=0; c<n; c++) {
      for(d=0; d<n; d++) {
        printf("%.2f%+.2fi ", creal(M[c][d]), cimag(M[c][d]));
      }
      printf("\n");
    }
/*
Example:input   
2 3
1+2i 2+3i 74-4i
3+4i 4+5i -7-8i
*/
    /* Part …
Run Code Online (Sandbox Code Playgroud)

c gcc auto-vectorization

8
推荐指数
2
解决办法
2899
查看次数

如何将相关系数指定为keras中的损失函数

我第一次使用keras + tensorflow.我想指定相关系数作为损失函数.对它进行平方是有意义的,它是0到1之间的数字,其中0表示不好,1表示良好.

我的基本代码目前看起来像:

def baseline_model():
        model = Sequential()
        model.add(Dense(4000, input_dim=n**2, kernel_initializer='normal', activation='relu'))
        model.add(Dense(1, kernel_initializer='normal'))
        # Compile model
        model.compile(loss='mean_squared_error', optimizer='adam')
        return model

estimators = []
estimators.append(('standardize', StandardScaler()))
estimators.append(('mlp', KerasRegressor(build_fn=baseline_model, epochs=100, batch_size=32, verbose=2)))
pipeline = Pipeline(estimators)
kfold = KFold(n_splits=10, random_state=0)
results = cross_val_score(pipeline, X, Y, cv=kfold)
print("Standardized: %.2f (%.2f) MSE" % (results.mean(), results.std()))
Run Code Online (Sandbox Code Playgroud)

如何更改此值以便优化以最小化平方相关系数?


我尝试了以下方法:

def correlation_coefficient(y_true, y_pred):
    pearson_r, _ = tf.contrib.metrics.streaming_pearson_correlation(y_pred, y_true)
    return 1-pearson_r**2

def baseline_model():
# create model
        model = Sequential()
        model.add(Dense(4000, input_dim=n**2, kernel_initializer='normal', activation='relu'))
#        model.add(Dense(2000, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras tensorflow

8
推荐指数
2
解决办法
8131
查看次数