10.9学习笔记 -决策树
from sklearn.datasets import load_boston
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import DecisionTreeRegressor
from sklearn.tree import plot_tree
from sklearn.neighbors import KNeighborsRegressor
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
"""
加载数据集
"""
X,y = load_boston(return_X_y=True)
"""
切分数据集
"""
X_train, X_test, y_train, y_test = train_test_split(X,
y,
test_size=0.15,
random_state=1)
"""
使用回归树
"""
dtr = DecisionTreeRegressor(max_depth=2)
dtr.fit(X=X_train,y=y_train)
y_pred = dtr.predict(X_test)
((y_test - y_pred) **2).mean()
"""
与KNN比较
"""
knn = KNeighborsRegressor(n_neighbors=5)
knn.fit(X=X_train, y=y_train)
y_pred = knn.predict(X_test)
((y_test - y_pred) **2).mean()
"""
分类任务
加载数据
"""
X,y = load_iris(return_X_y=True)
"""
切分数据集
"""
X_train, X_test, y_train, y_test = train_test_split(X,
y,
test_size=0.15,
random_state=1)
"""
使用回归树
"""
dtc = DecisionTreeClassifier()
dtc.fit(X=X_train,y=y_train)
y_pred = dtc.predict(X_test)
(y_test == y_pred).mean()
plot_tree(decision_tree=dtr)
"""
x[12] <= 9.725 用第12个特征(最后一个特征)判断,小于9.725左拐,反之亦然
mse = 83.007 均方误差
sampls =430 样本数
"""