生成数据集以适合LogisticRegression,但不适用于DecisionTreeClassifier

时间:2018-02-24 12:14:29

标签: python numpy scikit-learn logistic-regression decision-tree

有研究案例,需要一些帮助。 我有2个分类器,LogisticRegression和DecisionTreeClassifier,深度为3.需要在每个类中生成3个数据集1000x2,500个对象。第一个数据集的分数应该> 0.9与LR和得分< 0.7与树木,第二个数据集应该相反。第三应该有分数&lt;两者均为0.7。对于这个问题,可以忽略过度拟合。有什么想法吗?

&arr[0]

2 个答案:

答案 0 :(得分:1)

我可以根据我的理解给你一些方法,但不能给你代码:D

Logistic回归与决策树之间的主要区别: 1)逻辑回归绘制直线来区分2个类,其中当不可能用直线区分2个类时,决策树可能是有用的。您可以在此场景中使用决策树,因为它可以提供非线性边界来区分类。

方法: - 尝试从python的随机模块生成数据集并使用matplotlib绘制它(根据您的决策变量Y使用2种不同的颜色进行分类)。 - 如果您发现无法通过直线区分2个类,则决策树的性能优于Logistic回归,反之亦然。

找出Logistic回归比决策树表现更好的情况要困难得多。

当数据随机分布时,两者都会表现最差,并且也不可能通过直线/多项式度曲线将其分开。

答案 1 :(得分:0)

这是一个简单的解决方案:

x1 = np.linspace(0,1,2000)
x1[1000:] = np.linspace(0,1,1000)
x1[1500:] = np.linspace(0,1,500)
x1 = x1.reshape((1000,2))

x2 = np.ones((2000, 1))
x2[500:] = np.full((1500,1), -3)
x2[1000:] = np.full((1000,1), -1)
x2 = x2.reshape(1000,2)

x3 = np.random.randint(0,100,2000).reshape(1000,2)

给出:

LogReg 1.0
DT 0.627
LogReg 0.5
DT 1.0
LogReg 0.518
DT 0.555