sklearn感知器分类

文章目录

感知器

感知器堪称最简单的神经网络,其特点如下

  • 不需要学习率
  • 不需要正则化
  • 仅根据误差更新模型

sklearn的linear_model中提供了感知器模型,其构造函数如下

Perceptron(*, penalty=None, alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, eta0=1.0, n_jobs=None, random_state=0, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, class_weight=None, warm_start=False)

参数含义为

  • penalty 可选 l 2 l2 l2, l 1 l1 l1, elasticnet
  • alpha 当使用正则化时的正则化系数
  • l1_ratio Elastic Net的混合参数。
  • fit_intercept 如果为False,则假定数据已经中心化。
  • max_iter 最大迭代次数
  • tol 当损失小于tol时,就会停止迭代。
  • shuffle 为True时,在每个epoch训练之后打乱顺序。
  • verbose 为0时,为不在标准输出流输出日志信息;为1时,为输出进度条记录;为2时,为每个epoch输出一行记录
  • eta0 学习率,决定梯度下降时每次参数变化的幅度
  • n_jobs 调用的CPU数目
  • random_state 随机数种子
  • n_iter_no_change, validation_fraction, early_stopping用于控制是否提前终止训练,简单起见,这三个参数分别记作 n n n_n nn, v f v_f vf e s e_s es。当 e s e_s es为True时,若连续 n n n_n nn次得分不再提高,且已经完成了所有epoch的 v f v_f vf,则提前终止训练。
  • class_weight 可输入balanced或者如下格式的字典:{class_label: weight},用于预设类的拟合参数。
  • warm_start 暖启动,当设为True时,将使用上一次优化的结果。

测试

为了验证Perceptron的分类能力,下面生成生成1000组样本,每个样本有两个特征数,无冗余信息,且信息特征个数为1,每个类别由一组聚类组成。并且从生成样本中分别抽取一些数据,作为训练集和测试集。

from sklearn.datasets import make_classification

x,y = make_classification(n_samples=1000, n_features=2,n_redundant=0,n_informative=1,n_clusters_per_class=1)

xTrain, xTest = x[:800,:], x[800:,:]
yTrain, yTest = y[:800],   y[800:]

接下来构造Perceptron,并且进行训练

from sklearn.linear_model import Perceptron

clf = Perceptron(fit_intercept=False,shuffle=False)
clf.fit(xTrain,yTrain)  # 训练

print(clf.coef_)        #得到训练结果,权重矩阵
print(clf.intercept_)   #超平面的截距,此处输出为:[0.]

acc = clf.score(xTest,yTest)  # 利用测试集进行验证
print(acc)                    # 得到的输出结果为0.955

最后,绘图验证分割结果

from matplotlib import pyplot as plt
import numpy as np
plt.scatter(x[:,0], x[:,1], c=y)

#画出超平面
X = np.arange(-4,4)
k = -clf.coef_[0][0] / clf.coef_[0][1]
Y = k*X - clf.intercept_
plt.plot(X,Y)
plt.show()

效果如下

在这里插入图片描述

相关推荐

  1. 什么是感知 怎么学习感知

    2024-01-16 17:04:04       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-16 17:04:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-16 17:04:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-16 17:04:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-16 17:04:04       20 阅读

热门阅读

  1. WebGIS开发者入门

    2024-01-16 17:04:04       27 阅读
  2. 中国X射线管行业研究与投资预测报告(2024版)

    2024-01-16 17:04:04       33 阅读
  3. Neonode触摸传感器模块之I2C鼠标和键盘

    2024-01-16 17:04:04       31 阅读
  4. 子进程 子线程的关闭

    2024-01-16 17:04:04       36 阅读
  5. Matlab 建文件夹保存本次仿真图表数据和参数

    2024-01-16 17:04:04       34 阅读
  6. 【JVM】字节码文件的组成

    2024-01-16 17:04:04       36 阅读