基于sklearn的感知机python3

sklearn中的感知机模型perceptron from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import Perceptron import numpy as np #加... 阅读详情

首先,本文还是选用python里面自带的digits数据集

from sklearn.datasets import load_digits
digits=load_digits()

大家都知道这个数据集是一些图片,我们对数据进行处理:

#数据标准化
from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
scaler.fit(digits.data)
x_scaled=scaler.transform(digits.data)

将数据和类别分别赋予x,y:

x=x_scaled
y=digits.target

划分训练集、测试集:

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y)

调用sklearn,使用感知机预测:

from sklearn.neural_network import MLPClassifier
mlp=MLPClassifier(hidden_layer_sizes=(30,30,30),activation='logistic',max_iter=100)
mlp.fit(x_train,y_train)

进行预测,并观察效果:


from sklearn.metrics import classification_report
predicted=mlp.predict(x_test)
print(classification_report(y_test, predicted))
预测效果
下面我们进行调参,并观察参数改变对预测效果的影响:

from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV
if __name__ == '__main__':
    pipeline = Pipeline([
        ('mlp',MLPClassifier(hidden_layer_sizes=(30,30,30),max_iter=100))
    ])
    parameters = {
        'mlp__activation': ('identity','logistic','tanh','relu'),
         'mlp__solver': ('lbfgs','sgd','adam')
    }
    grid_search = GridSearchCV(pipeline, parameters,verbose=1,n_jobs=-1)
    grid_search.fit(x_train, y_train)
    print('最佳效果:%0.3f' % grid_search.best_score_)
    print('最优参数:')
    best_parameters = grid_search.best_estimator_.get_params()
    for param_name in sorted(parameters.keys()):
        print('\t%s: %r' % (param_name, best_parameters[param_name]))

    predictions = grid_search.predict(x_test)
    print(classification_report(y_test, predictions))

参数结果
可以看到预测效果有显著提升!

【机器学习】——感知机学习算法 1.感知机:根据输入实例的特征向量X对其进行二分类的线性分类模型 2.目标:感知机模型从输入空间到输出空间的映射可表示为y=f(x)=sign(w*x+b),感知机学习的目的就是学得一个使训练样本正例与负例完全正确分开的超平面wx+b=0,也就是学习参数w和b 3.损失函数:用分类错误的点到超平面的距离表示。 点到平面的距离公式为:因此一个分类错误的点到超平面的距离为: 因为在函数y=f(x)=sign(wx+b)中sign为符号函数,因此当wx+b≥0时,y=1;当w*x+b≤ 0时,y=-1;因此对于任 阅读详情

相关推荐

感知机模型自编程和sklearn实现(二)

感知机 1.感知机是根据输入实例的特征向量对其进行二类分类的线性分类模型: 感知机模型对应于输入空间(特征空间)中的分离超平面: 2.感知机学习的策略是极小化损失函数: 损失函数对应于误分类点到分离超平面的总距离。 3.感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式。算法简单且易于实现。原始形式中,首先任意选取一个超平面,然后用梯度下降法不断极小化目标函数。...

qq_38888209的博客 454

利用sklearn实现感知机(perceptron)算法

一、感知机(perceptron)感知机简介:感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面。感知机是一种线性分类模型。感知机实际上表示为输入空间到输出空间的映射函数,如下所示:           其中,和称为感知机的模型参数,叫做权值(weight)或权值向量(weight v...

飘过的春风 1万+

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 954

感知机原理 + python代码实现

​ 感知机是神经网络的前身,学习神经网络,当燃不可避免的要先从感知机开始啦!网络对感知机原理进行讲解的博文数不胜数。有的文章图文结合,旁征博引,引经据典。令人赞叹。笔者也不认为能够写得比别人好。因此,本文仅介绍简单的原理过程和转化为代码实现的过程。如果想看详细、严谨的引入推导等等,请移步其他博文。

sdksdf的博客 1817

从扇束到平行束:等角重排算法在CT重建中的核心原理与MATLAB实践

本文深入解析了CT图像重建中等角扇束重排算法的核心原理与MATLAB实现。通过将实际采集的扇束投影数据,利用几何映射和两次关键插值,转换为适用于经典滤波反投影算法的平行束数据,打通了高效重建的关键路径。文章结合Shepp-Logan模型仿真,提供了完整的MATLAB代码实践,并分析了源-物距、采样率等关键参数对重建质量的影响。

cnn8visionary的博客 647

CESM笔记——CESM1.0-CESM1.2.2-CESM2.1.3三个版本模式工作流对比

最近测试了CESM1.0,CESM1.2.2和CESM2.1.3三个版本,不同版本在workflow上有一些区别,来做点笔记。 CESM1.0 测试compset:B_2000,F_2000 workflow: 1. create_newcase -case ~/CESM/cesm1_0/script/B_2000 -compset B_2000 -res f19_g16 -mach tianhe 2. cd B_2000 (optional) env_mach_pes.xml ##修改核数,

砍柴姑娘Jourosy的博客 4944

sklearn感知机(perceptron)

简介:学习机器学习已经半年时间了,在读了李航博士的《统计学习方法》后受益匪浅,一扫学习初期头脑中的阴云。然而,纸上得来终觉浅,不亲身实践亲手操作一下怎么能号称自己入了机器学习的门呢。本系列分享将会使用python的sklearn库,将《统计学习方法》书中讲解的各个算法进行实现,希望加深自己理解的同时和其他人一同学习交流。

顺其自然~专栏 606

【强化学习的数学原理-赵世钰】课程笔记(一)基本概念

在B站上学习强化学习的课程笔记,笔记非常详细清晰,会持续更新

qq_64671439的博客 1万+

Python算法设计 - 感知机

Python算法设计 - 感知机

小鸿的博客 357

Windows下用Anaconda安装d2l库避坑指南(附PermissionError解决方案)

本文详细介绍了在Windows系统下使用Anaconda安装d2l库的完整指南,特别针对常见的PermissionError问题提供了多种解决方案。从环境准备到库安装,再到VSCode配置和数据路径处理,帮助读者顺利搭建深度学习环境并运行《动手学深度学习》的代码示例。

3a9bq4r8t2y的博客 225

如何理解下一代ERP 即:华为MetaERP

如何理解下一代ERP 即:华为MetaERP 华为的 MetaERP核心定位: 华为MetaERP是华为公司自主研发的下一代企业核心商业管理系统。它不仅仅是一个传统的ERP(企业资源规划)系统,更是一个面向未来、基于云原生、AI驱动、安全可信的企业核心管理平台。

金牌架构师 1142

python 实现感知机(perceptron)

文章目录一、基本原理二、实现思路三、源代码四、代码运行结果 一、基本原理 感知机(perceptron)是一个二类分类的线性分类模型,其几何意义是寻找一个超平面将点(特征空间)划分为正类和负类。本文以二维平面为例,实现一个简单的感知机模型。 二、实现思路 在二维平面中,感知机的训练过程即寻找一条直线,这条直线可以将平面中线性可分的点分离开,代码实现思路如下: 生成训练数据: 为了保证数据是线性可分的,在生成数据前确定两个点(如:(2, 2)、(6, 6)),在这两个点的周围随机生成数据,分别给这两个点周围

Walker-C 3315

【系统分析师】第6章-基础知识:企业信息化(核心总结)

企业信息化是数字化转型的核心,涵盖战略规划、技术应用和实施路径等方面。关键内容包括ERP、CRM、SCM等系统的定义与实施,以及数据仓库、商业智能等技术的应用。备考系统分析师需掌握信息化战略规划方法(如BSP、SDP)、系统建模工具,并能分析解决信息孤岛等问题。论文可围绕ERP实施、数据仓库应用等主题展开。企业信息化面临组织变革、技术选型等挑战,但能显著提升运营效率和竞争力。

数据知道的博客 6933

感知机python代码实现

目录1、数据集准备1.1 导入包1.2 加载数据1.3 原始数据可视化 1.4划分数据集和标签 本文使用sklearn的鸢尾花数据。 sklearn.datasets.load_iris(*, return_X_y=False, as_frame=False) Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性(分别

maggieyiyi的博客 5706

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

基于 sklearn 的多层感知机 Python 实现与可视化

声明:本文作为自己的学习笔记,有些乱,欢迎大家于本人学习交流,转载请注明出处 本文参考 作者:周志华书名:《机器学习》出版社:清华大学出版社> https://www.lagou.com/lgeduarticle/3162.html 感谢此文章和书籍原创者 如果本文有侵犯您的知识产权和版权问题,请通知本人,本人会立即做出处理并删除文章 电子邮件:louhergetup@163.com ...

LouHerGetUp的博客 3039

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【感知机】—— 感知机算法原理及Python实现

文章目录感知机(Perceptron)感知机的原始形式感知机的对偶形式Perceptron算法实现scikit-learn实现Perceptron 感知机(Perceptron) 二分类模型、线性分类模型、判别模型 输入:为实例的特征向量 输出:实例的类别,取+1和-1 感知机的原始形式 模型:寻找能够将训练数据进行线性划分的分离超平面 感知机模型: f(x)=sign(w∗x...

seven的博客 1960

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

感知机(perceptron):原理、python实现及sklearn.linear_model.Perceptron参数详解

机器学习之感知机(perceptron) 1.感知机模型介绍 感知机是一个二分类的线性分类模型,二分类是指输出YYY的分类只有两个值,取+1和-1,线性分类是指模型将训练数据集用一个线性超平面(如果特征空间XXX⊆\sube⊆RnR^nRn,那么该线性超平面就是n-1维)。 感知机模型属于判别模型,即通过输入的样本直接学习到fff(xxx),而没有学习到XXX 与YYY的联合分布函数FFF(XXX,YYY) 感知机模型的形式:f(x)=sign(w⋅x+b)f(x) = sign(w \centerdot

zero33325的博客 9655

【机器学习笔记】——感知机(Perceptron)

目 录 1 感知机(Perceptron)1.1 定义1.2 几何解释1.3 学习策略1.4 算法1.4.1 原始形式1.4.2 对偶形式2 算法实现2.1 实现原始形式算法2.2 实现对偶形式算法2.3 sklearn练习——自定义数据二分类2.4 对比练习——鸢尾花数据分类鸢2.4.1 尾花数据集2.4.2 数据预处理与特征选择2.4.3 对比手写模型与sklearn效果2.4.3.1 准备...

孙悟充的博客 2万+

利用sklearn载入iris数据集并利用感知机进行分类(三个类别)

** 利用python中的sklearn模块输入特征进行鸢尾花的分类,最终实现三种鸢尾花的分类 ** import sklearn from sklearn import datasets import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import accur...

知识转化中心 1万+

感知机python实现鸢尾花分类

本文使用sklearn的鸢尾花数据。Iris数据集是常用的分类实验数据集,由Fisher,1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性(分别是花萼长度,花萼宽度,花瓣长度,花瓣宽度)。可通过这4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类的鸢尾花中的哪一类。Iris里有两个属性iris.data,iris.target。...

maggieyiyi的博客 7170

感知机算法python实现

感知机(perceptron)是二分类的线性分类模型,其中输入是实例的特征向量,输出是类别,类别取+1和-1二值。感知机的目标是求出一个超平面将训练数据进行线性划分。 下面基于鸢尾花数据进行实现感知机算法。 简单介绍下鸢尾花数据:iris数据集的中文名是安德森鸢尾花卉数据集,英文全称是Anderson’s Iris data set。iris数据集是一个150行5列的二维表。具体来说是150个样本,每个样本是数据集中的每行数据,每个样本有4个特征(前4列),1个标签(第五列)。4个特征分别是花萼长度、花

sendiae的博客 3445

基于感知机Perceptron的鸢尾花分类实践

文章目录1. 感知机简介2. 编写感知机实践2.1 数据处理2.2 编写感知机类2.3 多参数组合运行3. sklearn 感知机实践 本文将使用感知机模型,对鸢尾花进行分类,并调整参数,对比分类效率。 1. 感知机简介 感知机(perceptron)是二类分类的线性分类模型 输入:实例的特征向量 输出:实例的类别,取 +1 和 -1 二值 感知机对应于输入空间(特征空间)中将实例划分为正负两类...

Michael是个半路程序员 1万+

算法:感知机及python实现

1.简介 感知机(perceptron),一种构建超平面进行二分类的模型,也是神经网络和支持向量机的基础。构建误分类点到超平面的距离和的损失函数,通过随机梯度下降法进行优化,即可以得到感知机模型。 2.模型 感知机模型为一超平面: f(x)=sign(wx+b) f(x) = sign(wx + b) f(x)=sign(wx+b) 其中,x∈Rn,w∈Rn,b∈Rx\in R^n, w \in ...

rosefun96的博客 8928

感知机原理介绍与python实现

1. 引言     感知机是1957年由Rosenblatt提出的一个线性分类模型,对应与输入空间(特征空间)中将实例分为正负两类的分离超平面,属于判别模型中的一种,也是神经网络和支持向量机的基础。原始论文的地址如下: 论文地址:《THE PERCEPTRON: A PROBABILISTIC MODEL FOR INFORMATION STORAGE AND ORGANIZATION IN ...

linchuhai的博客 879

统计学习方法(李航) 感知机 附python及sklearn实现

第2章 感知机 有监督学习 分类问题 线性分类模型 感知机是什么? 你是否听说过复杂的神经网络呢? 感知机可以称为单层的神经网络,而多层的感知机则称为神经网络 感知机是二类分类的线性分类模型,其输入为实例的特征向量TTT,输出为实例的类别yyy 即: T={(x1,y1),(x2,y2),...,(xN,yN)} T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)} y={+1,−1} y=\{

m0_49337600的博客 625
上一篇: 月饼 (25)python3
下一篇: 个位数统计 (15)python3
gxls2024
博客等级 码龄9年 1079粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gxls2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值