登录/注册

机器学习边界代码大全

更多

机器学习决策边界可视化代码大全

以下是常用分类算法的决策边界可视化代码(使用Python + Matplotlib),包含线性/非线性模型的典型示例:

基础准备代码

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 通用绘图函数
def plot_decision_boundary(clf, X, y, title):
    cmap_light = ListedColormap(['#FFAAAA', '#AAAAFF', '#AAFFAA'])
    cmap_bold = ListedColormap(['#FF0000', '#0000FF', '#00FF00'])

    # 生成网格点
    h = 0.02  # 网格步长
    x_min, x_max = X[:, 0].min()-1, X[:, 0].max()+1
    y_min, y_max = X[:, 1].min()-1, X[:, 1].max()+1
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
                         np.arange(y_min, y_max, h))

    # 预测并绘制
    Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)

    plt.figure(figsize=(10, 6))
    plt.pcolormesh(xx, yy, Z, cmap=cmap_light)
    plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor='k', s=20)
    plt.title(title)
    plt.show()

# 创建测试数据集
from sklearn import datasets
X, y = datasets.make_moons(n_samples=200, noise=0.2, random_state=42)
plt.scatter(X[:,0], X[:,1], c=y)
plt.title("原始数据集")
plt.show()

1. 逻辑回归(线性边界)

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression()
lr.fit(X, y)
plot_decision_boundary(lr, X, y, "逻辑回归决策边界")

2. SVM线性分类(线性边界)

from sklearn.svm import SVC

svm_linear = SVC(kernel='linear')
svm_linear.fit(X, y)
plot_decision_boundary(svm_linear, X, y, "SVM线性决策边界")

3. SVM高斯核(非线性边界)

svm_rbf = SVC(kernel='rbf', gamma=1.0, C=1.0)
svm_rbf.fit(X, y)
plot_decision_boundary(svm_rbf, X, y, "SVM高斯核决策边界")

4. 决策树(非线性阶梯边界)

from sklearn.tree import DecisionTreeClassifier

tree = DecisionTreeClassifier(max_depth=5)
tree.fit(X, y)
plot_decision_boundary(tree, X, y, "决策树决策边界")

5. K近邻(KNN非线性边界)

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X, y)
plot_decision_boundary(knn, X, y, "KNN决策边界 (k=5)")

6. 随机森林(非线性边界)

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier(n_estimators=100)
rf.fit(X, y)
plot_decision_boundary(rf, X, y, "随机森林决策边界")

7. 神经网络(非线性边界)

from sklearn.neural_network import MLPClassifier

nn = MLPClassifier(hidden_layer_sizes=(10,10), max_iter=10000)
nn.fit(X, y)
plot_decision_boundary(nn, X, y, "神经网络决策边界")

特殊边界案例代码

1. 线性不可分数据集(圆形边界)

# 创建环形数据集
X_circle, y_circle = datasets.make_circles(n_samples=200, noise=0.1, factor=0.5)

# 使用高斯核SVM
svm_circle = SVC(kernel='rbf', gamma=10)
svm_circle.fit(X_circle, y_circle)
plot_decision_boundary(svm_circle, X_circle, y_circle, "高斯SVM解决圆形边界")

2. 过拟合 vs 欠拟合对比

# 过拟合决策树
tree_overfit = DecisionTreeClassifier(max_depth=None)
tree_overfit.fit(X, y)
plot_decision_boundary(tree_overfit, X, y, "过拟合决策树")

# 欠拟合决策树
tree_underfit = DecisionTreeClassifier(max_depth=1)
tree_underfit.fit(X, y)
plot_decision_boundary(tree_underfit, X, y, "欠拟合决策树")

3. 正则化影响对比 (SVM)

# 强正则化
svm_highC = SVC(C=0.01, kernel='rbf')
svm_highC.fit(X, y)
plot_decision_boundary(svm_highC, X, y, "高正则化SVM边界")

# 弱正则化
svm_lowC = SVC(C=1000, kernel='rbf')
svm_lowC.fit(X, y)
plot_decision_boundary(svm_lowC, X, y, "低正则化SVM边界")

使用技巧

  1. 调整边界平滑度:修改SVM的gamma值或KNN的n_neighbors
  2. 处理非平衡数据:添加class_weight参数
  3. 高维可视化:通过PCA降维后再绘制边界
  4. 3D决策面:对于3维数据使用plot_surface

所有代码需要安装:pip install numpy matplotlib scikit-learn

什么是机器学习? 机器学习基础入门

本文旨在为硬件和嵌入式工程师提供机器学习(ML)的背景,它是什么,它是如何工作的,它为什么重要,以及 TinyML 是如何适应的机器

2022-06-21 11:06:37

机器学习的基础内容汇总

人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习

2022-02-28 06:12:58

C++ Socket网络编程大全代码下载

C++ Socket网络编程大全源代码下载

资料下载 佚名 2021-06-21 09:36:12

机器学习必学的Python代码示例集

机器学习必学的Python代码示例集

资料下载 鸭子定律_ 2021-06-21 09:35:46

基于机器学习的恶意代码检测分类

基于特征码匹配的静态分析方法提取的特征滞后于病毒发展,且不能检测出未知病毒。为此,从病毒反编译文件及其灰度图出发进行特征提取及融合,采用机器学习中的随机森林(RF)算法对恶意

资料下载 佚名 2021-06-10 11:03:15

结合动态行为和机器学习的恶意代码检测方法

目前恶意代码出现频繁且抗识别性加强,现有基于签名的恶意代码检测方法无法识别未知与隐藏的恶意代码。提出一种结合动态行为和

资料下载 佚名 2021-03-23 16:24:19

机器学习实战的源代码资料合集

本文档机器学习实战的源代码资料合集

资料下载 佚名 2021-03-01 09:28:00

机器学习的基础内容介绍

学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy

2022-01-12 08:12:18

机器学习的基础内容大合集

,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了

2022-01-07 06:35:58

机器学习的基础内容

学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy

2021-08-20 08:07:49

推荐这十个用于机器学习的优秀软件,可用于运行ML代码

在本文中,我们将研究用于机器学习的优秀软件。这些软件非常适合运行您的ML代码。行业中有无数的软件和工具。我们将在

2020-10-08 14:17:00

Android开发范例代码大全(第2版)

Android 开发范例代码大全(第2版)

2020-03-28 22:03:30

Swift for TensorFlow:无边界机器学习,值得大家期待

据资料显示,Swift for TensorFlow:无边界机器学习简介主要是——Swift for TensorFlow 是为下一代

2019-09-20 14:20:50

智能小车机器人制作大全

《智能小车机器人制作大全》汇集了多位创客在智能小车机器人方面的丰硕成果,不仅为刚接触机

2019-05-05 13:19:44
7天热门专题 换一换
相关标签