我目前正在使用以下代码查看决策树.有没有办法我们可以将一些计算字段输出为输出?
例如,是有可能在树的叶子在每个节点显示输入属性的总和,特征1的从"X"的数据数组,即总和.
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data[:]
y = iris.target
#%%
from sklearn.tree import DecisionTreeClassifier
alg=DecisionTreeClassifier( max_depth=5,min_samples_leaf=2, max_leaf_nodes = 10)
alg.fit(X,y)
#%%
## View tree
import graphviz
from sklearn import tree
dot_data = tree.export_graphviz(alg,out_file=None, node_ids = True, proportion = True, class_names = True, filled = True, rounded = True)
graph = graphviz.Source(dot_data)
graph
Run Code Online (Sandbox Code Playgroud)
是否有任何现有的 python 函数可以从训练数据中获取四分位数切割并应用于测试数据。
import pandas as pd
import numpy as np
d = {'col1': np.arange(1, 100, 1)}
train = pd.DataFrame(data=d)
d1 = {'col1': np.arange(1, 200, 2)}
test = pd.DataFrame(data = d1)
Run Code Online (Sandbox Code Playgroud)
我在训练和测试中都有大约 1000 列。pandas qcut 函数可以用于使其可扩展吗?或者还有其他现有的 sklearn 函数吗?
我期望根据火车上的垃圾箱获得测试数据的四分位数(1、2、3 或 4)。
我在 excel 中有很多行,这些行在空行之后填充了垃圾值。有没有办法使用 Python pandas 仅读取 excel 中第一个空行之前的记录。
我试图a从DataFrame 计算列中每个值的百分位数x.
有没有更好的方法来编写以下代码?
x["pcta"] = [stats.percentileofscore(x["a"].values, i)
for i in x["a"].values]
Run Code Online (Sandbox Code Playgroud)
我希望看到更好的表现.
我尝试通过函数修改数据框并返回修改后的数据框。不知何故,它没有反映出来。在下面的代码中,我将数据帧“ding”传递给函数“test”并创建一个新列“C”并返回修改后的数据帧。我预计 test_ding df 有 3 列,但只能看到两列。非常感谢任何帮助。
s1 = pd.Series([1,3,5,6,8,10,1,1,1,1,1,1])
s2 = pd.Series([4,5,6,8,10,1,7,1,6,5,4,3])
ding=pd.DataFrame({'A':s1,'B':s2})
def test(ding):
ding.C=ding.A+ding.B
return ding
test_ding=test(ding)
Run Code Online (Sandbox Code Playgroud) python ×5
pandas ×4
python-2.7 ×3
scikit-learn ×2
dataframe ×1
excel ×1
function ×1
numpy ×1
percentile ×1
performance ×1
pygraphviz ×1
scipy ×1