小编For*_*ner的帖子

使用python sklearn增量训练随机森林模型

我使用以下代码来保存随机森林模型.我正在使用cPickle来保存训练有素的模型.当我看到新数据时,我可以逐步训练模型吗?目前,列车组有大约2年的数据.有没有办法在另外两年训练,并且(有点)将它附加到现有的已保存模型.

rf =  RandomForestRegressor(n_estimators=100)
print ("Trying to fit the Random Forest model --> ")
if os.path.exists('rf.pkl'):
    print ("Trained model already pickled -- >")
    with open('rf.pkl', 'rb') as f:
        rf = cPickle.load(f)
else:
    df_x_train = x_train[col_feature]
    rf.fit(df_x_train,y_train)
    print ("Training for the model done ")
    with open('rf.pkl', 'wb') as f:
        cPickle.dump(rf, f)
df_x_test = x_test[col_feature]
pred = rf.predict(df_x_test)
Run Code Online (Sandbox Code Playgroud)

编辑1:我没有计算能力来同时训练模型4年的数据.

python pickle training-data random-forest

6
推荐指数
2
解决办法
5926
查看次数

为什么在Hive中使用OpenCSVSerde时所有列都创建为字符串?

我正在尝试使用OpenCSVSerde以及一些整数和日期列创建一个表。但是列将转换为String。这是预期的结果吗?解决方法是,在此步骤之后进行显式类型转换(这会使完整的运行变慢)

hive> create external table if not exists response(response_id int,lead_id int,creat_date date ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ('quoteChar' = '"', 'separatorChar' = '\,', 'serialization.encoding'='UTF-8', 'escapeChar' = '~')   location '/prod/hive/db/response' TBLPROPERTIES ("serialization.null.format"="");
OK
Time taken: 0.396 seconds
hive> describe formatted response;
OK
# col_name              data_type               comment

response_id             string                  from deserializer
lead_id                 string                  from deserializer
creat_date              string                  from deserializer
Run Code Online (Sandbox Code Playgroud)

解释将数据类型更改为字符串的源代码

hadoop hive create-table opencsv hive-serde

6
推荐指数
1
解决办法
1793
查看次数

Python - 在不同类的不同实例之间共享变量

我一直在寻找下一个答案,但可以肯定的是,我一直在寻找错误的关键字。我曾经用 C++ 开发,在对象之间传递指针作为引用。情况是,现在我正在尝试在 Python 中构建一个程序,其中“General”类的一个实例使用相同的共享变量初始化“Specific”类的不同实例。

class General():
    def __init__(self):
        self._shared_variable = 0
        self._specific1 = Specific(self._shared_variable)
        self._specific2 = Specific(self._shared_variable)

class Specific():
    def __init__(self, shared):
        self._shared = shared
    def modify_shared_variable(self):
        self._shared_variable +=1
Run Code Online (Sandbox Code Playgroud)

所以我想要做的是'shared_variable'在一般范围内共享这个,所以当一个“特定”实例修改他的内部变量时,这个变化会被另一个实例看到或反映。但是在python中情况并非如此。因此,每个特定实例都有自己的变量。我怎样才能做到这一点?

python pass-by-reference

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

使用networkx打印python图表时保留左右孩子

我正在尝试使用 python 中的networkx 库打印二叉树。

\n\n

可是,我却无法保住左右两个孩子。有没有办法告诉图表先打印左孩子,然后打印右孩子?

\n\n
import networkx as nx\nG = nx.Graph()\nG.add_edges_from([(10,20), (11,20)])\nnx.draw_networkx(G)\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述\n\xef\xbf\xbc

\n\n

编辑1:使用 pygraphwiz 时,它至少会产生一个有向图。所以,我对根节点有了更好的了解。

\n\n

下面是我正在使用的代码:

\n\n
import pygraphviz as pgv\nG = pgv.AGraph()\nG.add_node(\'20\')\nG.add_node(\'10\')\nG.add_node(\'11\')\nG.add_edge(\'20\',\'10\')\nG.add_edge(\'20\',\'11\')\nG.add_edge(\'10\',\'7\')\nG.add_edge(\'10\',\'12\')\n\nG.layout()\nG.draw(\'file1.png\')\nfrom IPython.display import Image\nImage(\'file1.png\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,这距离结构化格式还很远。接下来我将发布我发现的内容。新图如下所示(至少我们知道根):

\n\n

根到叶二叉树

\n\n

编辑2:对于那些遇到安装问题的人,请参阅这篇文章。 答案是——如果你想在 Windows 64 位上安装 pygraphviz,它非常有帮助。

\n

python tree graph networkx pygraphviz

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