小编O.r*_*rka的帖子

使用sklearn.datasets进行PyMC3贝叶斯线性回归预测

我一直在试图实现贝叶斯线性回归使用模型PyMC3真实数据(即不是从线性函数+高斯噪声)从数据集sklearn.datasets.我选择了具有最小数量的属性(即load_diabetes())形状为的回归数据集(442, 10); 就是,442 samples10 attributes.

我相信我的模型正在运行,后面看起来还不错,可以预测并弄清楚这些东西是如何起作用的......但我意识到我不知道如何使用这些贝叶斯模型进行预测!我试图避免使用glmpatsy符号,因为我很难理解使用它时实际发生了什么.

我尝试了以下内容: 从pymc3http://pymc-devs.github.io/pymc3/posterior_predictive/中的推断参数生成预测,但我的模型在预测时非常糟糕,或者我做错了.

如果我实际上正在做正确的预测(我可能不是),那么任何人都可以帮助我优化我的模型.我不知道是否最少mean squared error,absolute error或类似的东西在贝叶斯框架中有效.理想情况下,我想得到一个number_of_rows数组=我的X_te属性/数据测试集中的行数,以及来自后验分布的样本列数.

import pymc3 as pm
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
from scipy import stats, optimize
from sklearn.datasets import load_diabetes
from sklearn.cross_validation import train_test_split
from theano …
Run Code Online (Sandbox Code Playgroud)

python statistics probability bayesian pymc3

17
推荐指数
1
解决办法
4242
查看次数

使用TensorFlow线性回归Python的属性和目标矩阵

我正在尝试按照本教程.

TensorFlow刚刚问世,我真的想要了解它.我熟悉像Lasso,Ridge和ElasticNet这样的惩罚线性回归及其在中的用法scikit-learn.

对于scikit-learnLasso回归,我需要输入回归算法的是DF_X[M×N维属性矩阵(pd.DataFrame)]和SR_y[M维目标向量(pd.Series)].VariableTensorFlow中的结构对我来说有点新鲜,我不知道如何将输入数据构建成它想要的东西.

似乎softmax回归用于分类. 如何重构我的DF_X(M×N属性矩阵)和SR_y(M维目标向量)以输入tensorflow线性回归?

我目前进行线性回归的方法使用pandas,numpy和sklearn,如下所示.我认为这个问题对于熟悉TensorFlow的人来说非常有用:

#!/usr/bin/python
import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn.linear_model import LassoCV

#Create DataFrames for attribute and target matrices
DF_X = pd.DataFrame(np.array([[0,0,1],[2,3,1],[4,5,1],[3,4,1]]),columns=["att1","att2","att3"],index=["s1","s2","s3","s4"])
SR_y = pd.Series(np.array([3,2,5,8]),index=["s1","s2","s3","s4"],name="target")

print DF_X
#att1  att2  att3
#s1     0     0     1
#s2     2     3     1
#s3     4     5     1
#s4     3     4     1

print SR_y
#s1 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning matrix scikit-learn tensorflow

16
推荐指数
1
解决办法
2937
查看次数

如何使用`networkx`中的`pos`参数创建流程图风格的Graph?(Python 3)

我正在尝试创建一个线性网络图Python(使用(尽管有matplotlib,networkx但有兴趣bokeh),在概念上类似于下面的一个.

在此输入图像描述

如何pos在Python中使用networkx?有效地构建这个图形图? 我想将它用于更复杂的示例,所以我觉得对这个简单示例的位置进行硬编码是没有用的:(.networkx有解决方案吗?

pos(字典,可选) - 以节点为键,位置为值的字典.如果未指定,则将计算弹簧布局定位.有关计算节点位置的函数,请参阅networkx.layout.

我还没有看到任何有关如何实现这一目标的教程,networkx这就是为什么我认为这个问题将成为社区的可靠资源.我已经广泛地完成了这些networkx教程,没有像这样的东西.如果networkx不仔细使用这个pos论点,那么这种网络的布局就无法解释......我相信这是我唯一的选择. https://networkx.github.io/documentation/networkx-1.9/reference/drawing.html文档中的预计算布局似乎都没有很好地处理这种类型的网络结构.

简单示例:

(A)每个外键是图中从左到右移动的迭代(例如,迭代0表示样本,迭代1具有组1-3,与迭代2相同,迭代3具有组1-2等).(B)内的字典包含在该特定迭代当前的分组,和表示当前组的前组的合并的权重(例如,iteration 3Group 1Group 2iteration 4所有的iteration 3's Group 2已进入iteration 4's Group 2iteration 3's Group 1已被划分.权重总是总和为1.

我的代码为上图的连接w /权重:

D_iter_current_previous =    {
        1: {
            "Group 1":{"sample_0":0.5, "sample_1":0.5, "sample_2":0, "sample_3":0, "sample_4":0},
            "Group 2":{"sample_0":0, "sample_1":0, …
Run Code Online (Sandbox Code Playgroud)

python plot graph matplotlib networkx

16
推荐指数
1
解决办法
3636
查看次数

Python中SciPy树形图的自定义簇颜色(link_color_func?)

我想用我用字典(即{leaf: color})形式制作的彩色地图为我的星团着色.

我试过跟随https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/,但由于某种原因颜色搞砸了.默认情节看起来不错,我只是想以不同方式分配这些颜色.我看到有一个link_color_func,但当我尝试使用我的色彩图(D_leaf_color字典)时,我得到一个错误b/c它不是一个功能.我创建D_leaf_color了自定义与特定群集关联的叶子的颜色.在我的实际数据集中,颜色意味着什么,所以我正在转向任意颜色分配.

我不想color_threshold在我的实际数据中使用b/c,我有更多的簇并SciPy重复颜色,因此这个问题...

如何使用我的叶色字典来自定义树形图簇的颜色?

我做了一个GitHub问题https://github.com/scipy/scipy/issues/6346,在那里我进一步详细阐述了解释SciPy层次聚类树形图输出的叶子着色方法 (也许发现了一个错误...)但我仍然无法弄清楚如何实际:(i)使用树状图输出用我指定的颜色字典重建我的树形图或(ii)重新格式化我的D_leaf_color字典link_color_func参数.

# Init
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

# Load data
from sklearn.datasets import load_diabetes

# Clustering
from scipy.cluster.hierarchy import dendrogram, fcluster, leaves_list
from scipy.spatial import distance
from fastcluster import linkage # You can use SciPy one too …
Run Code Online (Sandbox Code Playgroud)

python machine-learning hierarchical-clustering dendrogram scipy

15
推荐指数
2
解决办法
5600
查看次数

如何从字符串中提取所有UPPER?蟒蛇

#input
my_string = 'abcdefgABCDEFGHIJKLMNOP'
Run Code Online (Sandbox Code Playgroud)

如何从字符串中提取所有UPPER?

#output
my_upper = 'ABCDEFGHIJKLMNOP'
Run Code Online (Sandbox Code Playgroud)

python string extract lowercase uppercase

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

如何从PyMC3中的Dirichlet过程中提取无监督的聚类?

我刚刚完成了Osvaldo Martin的Python书中的贝叶斯分析(理解贝叶斯概念和一些花哨的numpy索引的好书).

我真的想将我的理解扩展到贝叶斯混合模型,用于无监督的样本聚类.我所有的谷歌搜索都让我看到了Austin Rochford的教程,这本教程非常有用.我理解发生了什么,但我不清楚它如何适应群集(特别是使用群集分配的多个属性,但这是一个不同的主题).

我知道如何分配先验,Dirichlet distribution但我无法弄清楚如何获得集群PyMC3.看起来大多数mus会聚到质心(即我从中采样的分布方式),但它们仍然是分开的components.我考虑过weights(w在模型中)截止,但这似乎不像我想象的那样工作,因为多个components具有稍微不同的平均参数mus正在收敛.

如何从此PyMC3模型中提取聚类(质心)?我给了它最多的15组件,我想收敛3.在mus似乎是在正确的位置,但权重搞砸b他们被其他集群之间分配/ C,所以我不能用一个权重阈值(除非我把它们合并,但我不认为这是事情是这样的通常做完).

import pymc3 as pm
import numpy as np
import matplotlib.pyplot as plt
import multiprocessing
import seaborn as sns
import pandas as pd
import theano.tensor as tt
%matplotlib inline

# Clip at 15 components
K = 15 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning bayesian unsupervised-learning pymc3

14
推荐指数
1
解决办法
1658
查看次数

如何在 Python 中将“边缘捆绑”与 networkx 和 matplotlib 一起使用?

我用 iris 数据集创建了一个玩具图。我的布局来自 PCA 排序,它很好地分离了节点。

我最近发现了边缘捆绑。有人知道用matplotliband做到这一点的方法networkx吗?

from sklearn.decomposition import PCA
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np


# Data
X_iris = pd.DataFrame({'sepal_length': {'iris_0': 5.1, 'iris_1': 4.9, 'iris_2': 4.7, 'iris_3': 4.6, 'iris_4': 5.0, 'iris_5': 5.4, 'iris_6': 4.6, 'iris_7': 5.0, 'iris_8': 4.4, 'iris_9': 4.9, 'iris_10': 5.4, 'iris_11': 4.8, 'iris_12': 4.8, 'iris_13': 4.3, 'iris_14': 5.8, 'iris_15': 5.7, 'iris_16': 5.4, 'iris_17': 5.1, 'iris_18': 5.7, 'iris_19': 5.1, 'iris_20': 5.4, 'iris_21': 5.1, 'iris_22': …
Run Code Online (Sandbox Code Playgroud)

python plot graph matplotlib networkx

13
推荐指数
1
解决办法
1390
查看次数

将字符串转换为列表.Python [string.split()表现得很奇怪]

temp = "['a','b','c']"
print type(temp)
#string

output = ['a','b','c']
print type(output)
#list
Run Code Online (Sandbox Code Playgroud)

所以我有这个临时字符串,它基本上是一个字符串格式的列表...我试图把它变成一个列表,但我不确定一个简单的方法来做到这一点.我知道一种方法,但我宁愿不使用正则表达式

如果我使用temp.split()我得到

temp_2 = ["['a','b','c']"]
Run Code Online (Sandbox Code Playgroud)

python string split list

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

CondaValueError:格式错误的版本字符串“〜”:无效字符

我的conda收到格式错误的版本字符串错误。我不知道如何调试此或如何检查它。

有人可以帮忙吗?GitHub讨论了这个问题,但是我还没有看到任何修复。

-bash-4.1$ conda install -c bioconda pysam
Solving environment: failed



 1. CondaValueError: Malformed version string '~': invalid character(s).
Run Code Online (Sandbox Code Playgroud)

针对以下评论:

(mage_env) -bash-4.1$ echo $PATH
/usr/local/devel/ANNOTATION/jespinoz/anaconda/envs/mage_env/bin:/usr/local/packages/jdk-8u121/bin/:/usr/local/bin:/usr/local/devel/ANNOTATION/rrichter/local/bin:/home/syooseph/utils/clustalw1.83:/usr/local/packages/gsl/bin:/usr/local/sge_current/bin/lx-amd64:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/devel/ANNOTATION/jespinoz/anaconda/bin:/usr/local/devel/ANNOTATION/jespinoz/Dropseq/:/usr/local/devel/ANNOTATION/jespinoz/Dropseq/Drop-seq_tools-1.13/
(mage_env) -bash-4.1$ conda info

     active environment : mage_env
    active env location : /usr/local/devel/ANNOTATION/jespinoz/anaconda/envs/mage_env
            shell level : 1
       user config file : /home/jespinoz/.condarc
 populated config files : /home/jespinoz/.condarc
          conda version : 4.5.11
    conda-build version : not installed
         python version : 3.6.2.final.0
       base environment : /usr/local/devel/ANNOTATION/jespinoz/anaconda  (writable)
           channel URLs : https://conda.anaconda.org/ursky/linux-64
                          https://conda.anaconda.org/ursky/noarch
                          https://conda.anaconda.org/bioconda/linux-64
                          https://conda.anaconda.org/bioconda/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64 …
Run Code Online (Sandbox Code Playgroud)

install malformed conda

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

如何将matplotlib ax对象定向为沿着时间线连续绘制(affine_transform,mtransform)?

我正在尝试为时间序列中的数据创建热图(最终创建散点图)。我想以一种显示它们在线性时间轴上的方式来定向它们。

如何使用matplotlib Affine2Dscipy.ndimage.affine_transform实现这一目标?理想情况下,我希望能够调整以下角度:(1)时间轴的角度(例如,在示例1中,其中T = 1,T = 2,T = 3);(2)热图与(1)中的线相交的角度

我发现的示例取决于im = ax.imshow我的示例不是哪种情况。

from collections import OrderedDict
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Get iris data
X_iris = pd.DataFrame({'sepal_length': {'iris_0': 5.1, 'iris_1': 4.9, 'iris_2': 4.7, 'iris_3': 4.6, 'iris_4': 5.0, 'iris_5': 5.4, 'iris_6': 4.6, 'iris_7': 5.0, 'iris_8': 4.4, 'iris_9': 4.9, 'iris_10': 5.4, 'iris_11': 4.8, 'iris_12': 4.8, 'iris_13': 4.3, 'iris_14': 5.8, 'iris_15': 5.7, 'iris_16': 5.4, 'iris_17': 5.1, 'iris_18': 5.7, 'iris_19': …
Run Code Online (Sandbox Code Playgroud)

python plot animation matplotlib

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