from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
dtree = DecisionTreeClassifier(max_depth = 3)
iris = load_iris()
x, y = iris.data, iris.target
dtree.fit(x, y)
# 用决策树方法看特征的重要性
dtree.feature_importances_
# 画数据点和边界
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
def border_of_classifier(sklearn_cl, x, y):
"""
param sklearn_cl: sklearn的分类器
param x: np.array
param y: np.array
"""
# 1.生成网格数据
x_min, y_min = x.min(axis=0) - 1
x_max, y_max = x.max(axis=0) + 1
# 利用一组网格数据求出方程的值, 然后把边界画出来
# 生成网格点坐标矩阵。
x_values, y_values = np.meshgrid(np.arange(x_min, x_max, 0.01),
np.arange(y_min, y_max, 0.01))
# 计算处分类器对所有数据点的分类姐夫哦,生成网格采样
mesh_output = sklearn_cl.predict(np.c_[x_values.ravel(), y_values.ravel()])
mesh_output = mesh_output.reshape(x_values.shape)
fig, ax = plt.subplots(figsize=(16, 10), dpi=80)
# 根据mesh_output结果自动从cmap中选择颜色
plt.pcolormesh(x_values, y_values, mesh_output, cmap = 'rainbow')
plt.scatter(x[:, 0], x[:, 1], c=y, s=100, edgecolors='steelblue', linewidth=1, cmap=plt.cm.Spectral)
plt.xlim(x_values.min(), x_values.max())
plt.ylim(y_values.min(), y_values.max())
plt.xticks((np.arange(np.ceil(min(x[:, 0]) - 1), np.ceil(max(x[:, 0]) + 1), 1.0)))
plt.yticks((np.arange(np.ceil(min(x[:, 1]) - 1), np.ceil(max(x[:, 1]) + 1), 1.0)))
plt.show()
# SVM 支持向量机 惩罚系数
#### 1 观察支持向量机惩罚系数 C
svc_line1 = SVC(C = 0.01, kernel='rbf')
svc_line2 = SVC(C = 5.0, kernel='rbf')
svc_line3 = SVC(C = 100.0, kernel='rbf')
svc_line1.fit(x, y)
svc_line2.fit(x, y)
svc_line3.fit(x, y)
border_of_classifier(svc_line1, x, y)
border_of_classifier(svc_line2, x, y)
border_of_classifier(svc_line3, x, y)
python实现SVM以及画出分类的边界
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 摘 要 短信业务的迅猛发展在丰富了人们的沟通方式的同时,同样遭受到垃圾短信的困扰。对于运营商来说,垃圾短信造成基础...
- 基于灰度共生矩阵的图形纹理检测及路面状况的SVM分类实现 源码地址:https://github.com/Groo...