小编Hun*_*nle的帖子

`sample_weight`对`DecisionTreeClassifier`在sklearn中的工作方式有何作用?

我从这个文档中读到:

"可以通过从每个类中抽取相同数量的样本来完成类平衡,或者最好通过将每个类的样本权重(sample_weight)的总和归一化为相同的值."

但是,我仍然不清楚它是如何工作的.如果我设置sample_weight一个只有两个可能值的数组,1's和2's,这是否意味着带有2's的样本1在进行装袋时的采样频率是采样的两倍?我想不出一个实际的例子.

decision-tree random-forest scikit-learn

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

如何在PySpark中创建一个返回字符串数组的udf?

我有一个udf返回一个字符串列表.这不应该太难.我在执行udf时传入数据类型,因为它返回一个字符串数组: ArrayType(StringType).

现在,不知怎的,这不起作用:

我正在操作的数据帧是df_subsets_concat,看起来像这样:

df_subsets_concat.show(3,False)
Run Code Online (Sandbox Code Playgroud)
+----------------------+
|col1                  |
+----------------------+
|oculunt               |
|predistposed          |
|incredulous           |
+----------------------+
only showing top 3 rows
Run Code Online (Sandbox Code Playgroud)

而代码是

from pyspark.sql.types import ArrayType, FloatType, StringType

my_udf = lambda domain: ['s','n']
label_udf = udf(my_udf, ArrayType(StringType))
df_subsets_concat_with_md = df_subsets_concat.withColumn('subset', label_udf(df_subsets_concat.col1))
Run Code Online (Sandbox Code Playgroud)

结果是

/usr/lib/spark/python/pyspark/sql/types.py in __init__(self, elementType, containsNull)
    288         False
    289         """
--> 290         assert isinstance(elementType, DataType), "elementType should be DataType"
    291         self.elementType = elementType
    292         self.containsNull = containsNull

AssertionError: elementType should be DataType
Run Code Online (Sandbox Code Playgroud)

我的理解是,这是正确的方法.以下是一些资源: pySpark Data Frames"assert …

python user-defined-functions apache-spark apache-spark-sql pyspark

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

`git rm --cached`和`git update-index --assume-unchanged`之间的区别?

我不明白之间的差别git rm --cachedgit update-index --assume-unchanged.

我知道这git rm --cached <file>将从暂存区域中删除一个文件.

而且,我知道这git update-index --assume-unchanged <file>也是这样.

我也看到这两个命令作为SO的类似问题的建议.

这两个命令中的任何一个是否会产生另一种影响?

git caching git-rm

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

如何始终从`ps aux`命令切断PID?

我想从我的流程中获取pid.我这样做,ps aux | cut -d ' ' -f 2但我注意到有时它得到了pid,有时却没有:

[user@ip ~]$ ps aux 
user  2049  0.5 10.4 6059216 1623520 ?     Sl   date   8:48 process 
user 12290  0.3  6.9 5881568 1086244 ?     Sl   date  2:30 
[user@ip ~]$ ps aux | cut -d ' ' -f 2 

12290
[user@ip ~]$ ps aux |  cut -d ' ' -f 3
2049
Run Code Online (Sandbox Code Playgroud)

请注意,第一个cut命令是将它管道,2而第二个命令是将它管道3.如何从这些中选择PID而无需知道要使用哪个号码(23)?

有人可以告诉我这些之间的区别以及为什么它拿起一个而不是另一个?

grep cut ps

8
推荐指数
3
解决办法
7029
查看次数

为什么双引号会影响linux中这些echo语句的打印?

我正在捕获输出ps aux:

current_processes=`ps aux | grep "tempdir" | tail -3`
Run Code Online (Sandbox Code Playgroud)

当我回应它时,它看起来像这样

echo $current_processes
19984 10089 17784
Run Code Online (Sandbox Code Playgroud)

当我echo加双引号时,它看起来像这样:

echo "$current_processes"
19984 
10089
17784    
Run Code Online (Sandbox Code Playgroud)

当我使用双引号但没有双引号时,为什么将它们放在新行上?

unix linux shell ps echo

8
推荐指数
1
解决办法
78
查看次数

如何使用sys.path.append在python中导入文件?

有我的桌面上两个目录,DIR1并且DIR2包含下列文件:

DIR1:
file1.py

DIR2:
file2.py  myfile.txt
Run Code Online (Sandbox Code Playgroud)

这些文件包含以下内容:

file1.py

import sys

sys.path.append('.')
sys.path.append('../DIR2')

import file2
Run Code Online (Sandbox Code Playgroud)

file2.py

import sys

sys.path.append( '.' )
sys.path.append( '../DIR2' )

MY_FILE = "myfile.txt"

myfile = open(MY_FILE) 
Run Code Online (Sandbox Code Playgroud)

myfile.txt文件

some text
Run Code Online (Sandbox Code Playgroud)

现在,有两种情况.第一个工作,第二个给出错误.

场景1

cd进入DIR2并运行file2.py它运行没有问题.

情景2

cd进入DIR1并运行file1.py它会抛出一个错误:

Traceback (most recent call last):
  File "<absolute-path>/DIR1/file1.py", line 6, in <module>
    import file2
  File "../DIR2/file2.py", line 9, in <module>
    myfile = open(MY_FILE)
IOError: [Errno 2] No such …
Run Code Online (Sandbox Code Playgroud)

python relative-path filepath sys python-2.7

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

如何在spark中使用saveAsTextFile命名文件?

在spark版本1.5.1中保存为文本文件时,我使用: rdd.saveAsTextFile('<drectory>').

但是,如果我想在该目录中找到该文件,我该如何命名它我想要的?

目前,我认为它是命名的part-00000,必须是默认的.我该如何命名?

apache-spark rdd pyspark

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

如何在PySpark中有效地按值排序?

我想用V对V,V元组进行排序,即按值排序.TakeOrdered如果你知道你需要多少,我知道这对你有好处:

b = sc.parallelize([('t',3),('b',4),('c',1)])
Run Code Online (Sandbox Code Playgroud)

运用 TakeOrdered:

b.takeOrdered(3,lambda atuple: atuple[1])
Run Code Online (Sandbox Code Playgroud)

运用 Lambda

b.map(lambda aTuple: (aTuple[1], aTuple[0])).sortByKey().map(
    lambda aTuple: (aTuple[0], aTuple[1])).collect()
Run Code Online (Sandbox Code Playgroud)

我在这里查看了这个问题,这表明后者.我发现很难相信它takeOrdered是如此简洁,但它需要与Lambda解决方案相同的操作数量.

有没有人知道更简单,更简洁的火花转换按值排序?

python sorting lambda apache-spark

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

在hive中`load data inpath`和`location`之间的区别?

在我的公司,我看到经常使用这两个命令,我想知道它们之间的差异,因为它们的功能对我来说似乎是一样的:

1

create table <mytable> 
(name string,
number double);

load data inpath '/directory-path/file.csv' into <mytable>; 
Run Code Online (Sandbox Code Playgroud)

2

create table <mytable>
(name string,
number double);

location '/directory-path/file.csv';
Run Code Online (Sandbox Code Playgroud)

它们都将数据从HDFS上的目录复制到HIVE上的表目录中.使用这些产品时是否应该注意哪些差异?谢谢.

sql hadoop hive hdfs hiveql

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

如何从pandas中的系列中获取1个n数据帧?

我有一个巨大的数据帧,我像这样索引它:

df.ix[<integer>]

根据索引,有时这只会有一行值.Pandas自动将其转换为系列,坦率地说,这很烦人,因为我无法以与df相同的方式操作它.

我怎么做:

1)停止转换pandas并将其保存为数据帧?

要么

2)轻松将结果序列转换回数据帧?

pd.DataFrame(df.ix[<integer>])不起作用,因为它不保留原始列.它将<integer>列视为列,将列视为索引.非常感激.

python series dataframe pandas

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