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

如何使用Scikit Learn调整随机森林中的参数?

class sklearn.ensemble.RandomForestClassifier(n_estimators=10,
                                              criterion='gini', 
                                              max_depth=None,
                                              min_samples_split=2,
                                              min_samples_leaf=1, 
                                              min_weight_fraction_leaf=0.0, 
                                              max_features='auto', 
                                              max_leaf_nodes=None, 
                                              bootstrap=True, 
                                              oob_score=False,
                                              n_jobs=1, 
                                              random_state=None,
                                              verbose=0, 
                                              warm_start=False, 
                                              class_weight=None)
Run Code Online (Sandbox Code Playgroud)

我使用的是随机森林模型,包含9个样本和大约7000个属性.在这些样本中,我的分类器识别出3个类别.

我知道这远非理想条件,但我试图找出哪些属性在特征预测中最重要.哪些参数最适合优化功能重要性?

我尝试了不同的,n_estimators并注意到"重要特征"(即feature_importances_阵列中的非零值)的数量急剧增加.

我已经阅读了文档,但如果有任何人有这方面的经验,我想知道哪些参数最适合调整,并简要说明原因.

python parameters machine-learning random-forest scikit-learn

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

import input_data MNIST tensorflow无法正常工作

TensorFlow MNIST示例未使用fully_connected_feed.py运行

我检查了一下,意识到这input_data不是内置的.所以我从这里下载了整个文件夹.我该如何开始教程:

import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)


---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-6-a5af65173c89> in <module>()
----> 1 import input_data
      2 mnist = tf.input_data.read_data_sets("MNIST_data/", one_hot=True)

ImportError: No module named input_data
Run Code Online (Sandbox Code Playgroud)

我正在使用iPython(Jupyter)所以我需要将我的工作目录更改为我下载的这个文件夹吗?或者我可以将其添加到我的tensorflow目录中吗?如果是这样,我在哪里添加文件?我安装tensorflowpip(在我的OSX上),当前的位置是~/anaconda/lib/python2.7/site-packages/tensorflow/__init__.py

这些文件是否可以通过tensorflow类似的sklearn数据集直接访问?或者我只是想进入目录并从那里开始工作?这个例子不清楚.

python import machine-learning mnist tensorflow

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

如何在Python中重塑网络图?

因此,我创建了一种非常天真(可能效率低下)的生成哈希图的方法.

题:

我有4个维度... .p q r s

我想统一显示它(tesseract),但我不知道如何重塑它.如何在Python中重塑网络图?

我见过的人使用一些例子spring_layout()draw_circular(),但它不能在我要找的,因为他们不是统一的方式塑造.

有没有办法重塑我的图形并使其统一?(即将我的hasse图重塑为tesseract形状(最好使用nx.draw())

这是我目前的样子: 在此输入图像描述

这是我生成N维的哈希图的代码

#!/usr/bin/python

import networkx as nx
import matplotlib.pyplot as plt
import itertools

H = nx.DiGraph()

axis_labels = ['p','q','r','s']

D_len_node = {}

#Iterate through axis labels
for i in xrange(0,len(axis_labels)+1):
    #Create edge from empty set
    if i == 0:
        for ax in axis_labels:
            H.add_edge('O',ax)
    else:
        #Create all non-overlapping combinations
        combinations = [c for c in itertools.combinations(axis_labels,i)]
        D_len_node[i] = combinations
    #Create edge …
Run Code Online (Sandbox Code Playgroud)

python shape matplotlib nodes networkx

25
推荐指数
1
解决办法
1288
查看次数

argparse Python 2.7中一个参数的多个文件

试图在argparse中创建一个参数,在这里可以输入几个可以读取的文件名. 在这个例子中,我只是试图打印每个文件对象,以确保它正常工作,但我收到错误:

error: unrecognized arguments: f2.txt f3.txt
Run Code Online (Sandbox Code Playgroud)

.我怎样才能让它识别出所有这些?

我的命令在终端运行程序并读取多个文件

python program.py f1.txt f2.txt f3.txt
Run Code Online (Sandbox Code Playgroud)

Python脚本

import argparse

def main():
    parser = argparse.ArgumentParser()      
    parser.add_argument('file', nargs='?', type=file)
    args = parser.parse_args()

    for f in args.file:
        print f

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

我用过nargs='?'b/c我希望它是可以使用的任意数量的文件.如果我add_argument改为:

parser.add_argument('file', nargs=3)
Run Code Online (Sandbox Code Playgroud)

然后我可以打印它们作为字符串,但我不能让它与'?'一起工作

python parsing arguments file argparse

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

如何找到真实数据的概率分布和参数?(Python 3)

我有一个数据集sklearn,我绘制了load_diabetes.target数据的分布(即load_diabetes.data用于预测的回归值).

我使用它是因为它具有最少数量的回归变量/属性sklearn.datasets.

使用Python 3,我如何获得最接近类似的分布类型和分布参数?

我所知道的target价值都是积极的和倾斜的(假定倾斜/右倾斜)...Python中是否有一种方法可以提供一些分布,然后最适合target数据/向量?或者,根据给出的数据实际建议拟合?对于那些具有理论统计知识但很少将其应用于"真实数据"的人来说,这将是非常有用的.

奖金 使用这种方法来确定你的后验分布对"真实数据"的影响是否合理?如果不是,为什么不呢?

from sklearn.datasets import load_diabetes
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import pandas as pd

#Get Data
data = load_diabetes()
X, y_ = data.data, data.target

#Organize Data
SR_y = pd.Series(y_, name="y_ (Target Vector Distribution)")

#Plot Data
fig, ax = plt.subplots()
sns.distplot(SR_y, bins=25, color="g", ax=ax)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python statistics distribution machine-learning data-fitting

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

在TensorFlow中显示图表的图像?

我写了一个简单的脚本来计算1,2,5的黄金比例.有没有办法通过实际图形结构的张量流(可能借助于matplotlib或者networkx)实际产生视觉效果?张量流的文档非常类似于因子图,所以我想知道:

如何通过张量流生成图形结构的图像?

在下面的这个例子中,它将C_1, C_2, C_3作为单独的节点,然后C_1tf.sqrt操作后跟将它们组合在一起的操作.也许图形结构(节点,边缘)可以导入networkx?我看到tensor对象有一个graph属性,但我还没有找到如何实际使用它来进行成像.

#!/usr/bin/python

import tensorflow as tf
C_1 = tf.constant(5.0)
C_2 = tf.constant(1.0)
C_3 = tf.constant(2.0)

golden_ratio = (tf.sqrt(C_1) + C_2)/C_3

sess = tf.Session()
print sess.run(golden_ratio) #1.61803
sess.close()
Run Code Online (Sandbox Code Playgroud)

python structure image graph tensorflow

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

如何给sns.clustermap一个预先计算的距离矩阵?

通常当我做树形图和热图时,我使用距离矩阵并做一堆SciPy东西.我想尝试SeabornSeaborn想要我的数据是矩形的(行=样本,cols =属性,而不是距离矩阵)?

我本质上想seaborn用作后端来计算我的树形图并将其粘贴到我的热图上.这可能吗?如果没有,这可能是未来的特色.

也许有我可以调整的参数,所以它可以采用距离矩阵而不是矩形矩阵?

这是用法:

seaborn.clustermap¶
seaborn.clustermap(data, pivot_kws=None, method='average', metric='euclidean',
 z_score=None, standard_scale=None, figsize=None, cbar_kws=None, row_cluster=True,
 col_cluster=True, row_linkage=None, col_linkage=None, row_colors=None,
 col_colors=None, mask=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
DF = pd.DataFrame(X, index = ["iris_%d" % (i) for i in range(X.shape[0])], columns = iris.feature_names)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不认为我的方法在下面是正确的,因为我给它一个预先计算的距离矩阵,而不是它要求的矩形数据矩阵.没有关于如何使用相关/距离矩阵的示例,clustermap但有https://stanford.edu/~mwaskom/software/seaborn/examples/network_correlations.html,但排序没有与普通sns.heatmap功能集群.

DF_corr = DF.T.corr()
DF_dism = 1 - DF_corr
sns.clustermap(DF_dism)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python hierarchical-clustering matplotlib heatmap seaborn

21
推荐指数
1
解决办法
6442
查看次数

如何在matplotlib中调整树形图的分支长度(如在astrodendro中)?[蟒蛇]

这是我在下面得到的图,但我希望它看起来像截断的树状图,astrodendro如下所示:

在此输入图像描述

还有一个从一个非常酷的树状图看本文,我想在重新创建matplotlib.

在此输入图像描述

下面是生成iris带有噪声变量的数据集并绘制树形图的代码matplotlib.

有谁知道如何:(1)截断分支,如示例图中; 和/或(2)使用astrodendro自定义链接矩阵和标签?

import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
import astrodendro
from scipy.cluster.hierarchy import dendrogram, linkage
from scipy.spatial import distance

def iris_data(noise=None, palette="hls", desat=1):
    # Iris dataset
    X = pd.DataFrame(load_iris().data,
                     index = [*map(lambda x:f"iris_{x}", range(150))],
                     columns = [*map(lambda x: x.split(" (cm)")[0].replace(" ","_"), load_iris().feature_names)])

    y = pd.Series(load_iris().target,
                           index = X.index,
                           name = "Species")
    c = map_colors(y, mode=1, palette=palette, desat=desat)#y.map(lambda …
Run Code Online (Sandbox Code Playgroud)

python plot hierarchical-clustering matplotlib dendrogram

20
推荐指数
1
解决办法
514
查看次数

如何设置conda安装的R用于RStudio?

在此输入图像描述

我一直在尝试设置我的R使用conda(最终与Beaker笔记本一起使用),我希望能够使用RStudio我的conda安装版本R.

我的安装方法R:

conda install -c r r
conda install -c r r-essentials
conda install -c r r-rserve
conda install -c r r-devtools
conda install -c r r-rcurl
conda install -c r r-RJSONIO
conda install -c r r-jpeg
conda install -c r r-png
conda install -c r r-roxygen2
conda install --channel https://conda.anaconda.org/bioconda bioconductor-edger
Run Code Online (Sandbox Code Playgroud)

我跑了那个版本的R(我只安装了这个版本)

> version
               _                           
platform       x86_64-apple-darwin11.0.0   
arch           x86_64                      
os             darwin11.0.0                
system         x86_64, darwin11.0.0        
status                                     
major          3                           
minor          3.1 …
Run Code Online (Sandbox Code Playgroud)

r environment-variables rstudio anaconda conda

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

使用Scikit-learn(sklearn)插入整个DataFrame(所有列),而不迭代列

我想把pandas DataFrame上的所有列都归咎于...我能想到的唯一方法是逐列,如下所示...

是否有一个操作,我可以在不迭代列的情况下将整个DataFrame归咎于?

#!/usr/bin/python
from sklearn.preprocessing import Imputer
import numpy as np
import pandas as pd

#Imputer
fill_NaN = Imputer(missing_values=np.nan, strategy='mean', axis=1)

#Model 1
DF = pd.DataFrame([[0,1,np.nan],[2,np.nan,3],[np.nan,2,5]])
DF.columns = "c1.c2.c3".split(".")
DF.index = "i1.i2.i3".split(".")

#Impute Series
imputed_DF = DF
for col in DF.columns:
    imputed_column = fill_NaN.fit_transform(DF[col]).T
    #Fill in Series on DataFrame
    imputed_DF[col] = imputed_column

#DF
#c1  c2  c3
#i1   0   1 NaN
#i2   2 NaN   3
#i3 NaN   2   5

#imputed_DF
#c1   c2  c3
#i1   0  1.0   4
#i2   2  1.5 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning dataframe scikit-learn

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