决策树和lr关于线性和非线性的区别

# coding:utf8
import random
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import tree

X = []
Y = []
for i in range(10000):
    a = random.uniform(-1, 1)
    b = random.uniform(-1, 1)
    X.append([a, b])
    if a > 0 and b > 0:
        Y.append(1)
    elif a < 0 and b < 0:
        Y.append(1)
    else:
        Y.append(-1)
x = np.array(X)
y = np.array(Y)

clf1 = LogisticRegression()
clf1.fit(x, y)
clf2 = tree.DecisionTreeClassifier()
clf2.fit(x, y)

X_t = []
Y_t = []
for i in range(10000):
    a = random.uniform(-1, 1)
    b = random.uniform(-1, 1)
    X_t.append([a, b])
    if a > 0 and b > 0:
        Y_t.append(1)
    elif a < 0 and b < 0:
        Y_t.append(1)
    else:
        Y_t.append(-1)
x_t = np.array(X_t)
y_t = np.array(Y_t)

print clf1.score(x_t, y_t)
print clf2.score(x_t, y_t)

结果

0.5288
0.9999
构造训练数据

X = {x1, x2} 当 x1 和 x2同号时 Y 为1,异号时 Y 为0。

从结果可以看出来lr的准确率几乎等同于随机猜测,而决策树的准确率接近1。

lr为线性分类器,在本例中类似于在二维空间中画一条直线将正负样本分开。

决策树则是不停的在平面中画竖线将平面一份为二。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值