小编Jan*_*ila的帖子

从numpy矩阵创建Spark数据帧

这是我第一次使用PySpark(Spark 2),我正在尝试为Logit模型创建一个玩具数据帧.我成功运行了教程,并希望将自己的数据传递给它.

我试过这个:

%pyspark
import numpy as np
from pyspark.ml.linalg import Vectors, VectorUDT
from pyspark.mllib.regression import LabeledPoint

df = np.concatenate([np.random.randint(0,2, size=(1000)), np.random.randn(1000), 3*np.random.randn(1000)+2, 6*np.random.randn(1000)-2]).reshape(1000,-1)
df = map(lambda x: LabeledPoint(x[0], Vectors.dense(x[1:])), df)

mydf = spark.createDataFrame(df,["label", "features"])
Run Code Online (Sandbox Code Playgroud)

但我无法摆脱:

TypeError: Cannot convert type <class 'pyspark.ml.linalg.DenseVector'> into Vector
Run Code Online (Sandbox Code Playgroud)

我正在使用ML库作为向量,输入是一个双数组,所以请问有什么问题?根据文档应该没问题.

非常感谢.

numpy apache-spark apache-spark-sql pyspark apache-spark-mllib

13
推荐指数
2
解决办法
8367
查看次数

绘制决策树,graphvizm pydotplus

我正在关注scikit文档的决策树教程.我有,pydotplus 2.0.2但它告诉我它没有write方法 - 错误如下.我现在一直苦苦挣扎,有什么想法,好吗?非常感谢!

from sklearn import tree
from sklearn.datasets import load_iris

iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)

from IPython.display import Image

dot_data = tree.export_graphviz(clf, out_file=None)
import pydotplus

graph = pydotplus.graphviz.graph_from_dot_data(dot_data)

Image(graph.create_png())
Run Code Online (Sandbox Code Playgroud)

而我的错误是

    /Users/air/anaconda/bin/python /Users/air/PycharmProjects/kiwi/hemr.py
Traceback (most recent call last):
  File "/Users/air/PycharmProjects/kiwi/hemr.py", line 10, in <module>
    dot_data = tree.export_graphviz(clf, out_file=None)
  File "/Users/air/anaconda/lib/python2.7/site-packages/sklearn/tree/export.py", line 375, in export_graphviz
    out_file.write('digraph Tree {\n')
AttributeError: 'NoneType' object has no attribute 'write'

Process finished with exit …
Run Code Online (Sandbox Code Playgroud)

graphviz pydot scikit-learn

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

创建元组的单个元素元组

我只是注意到,如果您想创建一个具有单个元素的元组(本身就是一个元组),则不能tuple仅使用(,)语法使用构造函数来执行此操作。这是为什么?

例:

>>> tuple(list('abc'))
('a', 'b', 'c')
>>> tuple(tuple(list('abc')))
('a', 'b', 'c')
>>> (tuple(list('abc')),)
(('a', 'b', 'c'),)
Run Code Online (Sandbox Code Playgroud)

但是,它保留了一个清单

>>> tuple([1],)
(1,)
>>> tuple([1])
(1,)
Run Code Online (Sandbox Code Playgroud)

python tuples python-3.x

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