我发现小提琴图信息丰富且有用,我使用 python 库“seaborn”。然而,当应用于正值时,它们几乎总是在低端显示负值。我发现这确实具有误导性,尤其是在处理现实数据集时。
在seaborn的官方文档中https://seaborn.pydata.org/ generated/seaborn.violinplot.html可以看到带有“total_bill”和“tip”的示例,它们不能为负数。然而,小提琴图显示负值。例如,
import seaborn as sns
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips, palette="muted", split=True)
Run Code Online (Sandbox Code Playgroud)
我确实明白,这些负值来自高斯核。因此,我的问题是:有什么办法可以解决这个问题吗?python 中的另一个库?可以指定不同的内核吗?
使用pyspark 1.4我试图使用RegressionMetrics()进行LinearRegressionWithSGD生成的预测.
在pyspark mllib文档中给出的RegressionMetrics()的所有示例都用于"人工"预测和观察
predictionAndObservations = sc.parallelize([ (2.5, 3.0), (0.0, -0.5), (2.0, 2.0), (8.0, 7.0)])
Run Code Online (Sandbox Code Playgroud)
对于这样的"人工"(用sc.parallelize生成)RDD一切正常.但是,当用另一种方式生成的另一个RDD做同样的事情时,我得到了
TypeError: DoubleType can not accept object in type <type 'numpy.float64'>
Run Code Online (Sandbox Code Playgroud)
简短可重复的例子如下.
可能是什么问题?
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.regression import LinearRegressionWithSGD, LinearRegressionModel
from pyspark.mllib.evaluation import RegressionMetrics
dataRDD = sc.parallelize([LabeledPoint(1, [1,1]), LabeledPoint(2, [2,2]), LabeledPoint(3, [3,3])])
lrModel = LinearRegressionWithSGD.train(dataRDD)
prediObserRDD = dataRDD.map(lambda p: (lrModel.predict(p.features), p.label)).cache()
Run Code Online (Sandbox Code Playgroud)
让我们检查RDD确实是(预测,观察)对
prediObserRDD.take(4) # looks OK
Run Code Online (Sandbox Code Playgroud)
现在尝试计算指标
metrics = RegressionMetrics(prediObserRDD)
Run Code Online (Sandbox Code Playgroud)
它给出以下错误
TypeError Traceback (most recent call last)
<ipython-input-1-ca9ad8e9faf1> in <module>()
7 …Run Code Online (Sandbox Code Playgroud)