技术心得:机器学习入门篇——感知器

简介: 技术心得:机器学习入门篇——感知器

1.机器学习的基本概念:


三种主要的学习方式:


监督学习:使用有类标的训练数据构建模型,即在训练过程中,所有的数据都是知道它的类别的。通过构建的这个模型对未来的数据进行预测。在监督学习的下面,又可以分为分类(利用分类对类标进行预测),以及回归(使用回归预测连续输出值)。


无监督学习:在没有已知输出变量(分类问题中是数据的类标)和反馈函数指导的情况下提取有效信息来探索数据的整体结构。子领域:1.通过聚类发现数据的子群;2,数据压缩中的降维。


强化学习:构建一个系统,在与环境交互的过程中提高系统的性能。我们可以将强化学习视为与监督学习相关的一个领域。但是强化学习与监督学习不同的是,在强化学习中,并没有一个确定的类标或一个连续类型的值,而是一个通过反馈函数产生的一个反馈值。该反馈值是对当前的系统行为的一个评价。强化学习解决的主要是交互式问题。象棋对弈就是一个常用的强化学习的例子。


机器学习的工作流程(使用预测模型进行数据分析):


如图,机器学习的学习分为两个部分,第一部分是训练阶段,通过数据带入模型中,训练生成最终模型,第二部分是测试阶段,通过新的数据经验模型的泛化能力。


2.感知器


2.1感知器原理


感知器由费兰克·罗森布拉特(Frank Rossenblatt)基于MPC神经元模型提出。感知器可以看作一个处理二分类问题的算法。


感知器的训练过程如下图:


第一步:得到净输入函数z;z为矩阵X与权值矩阵W的乘积,再加上一个权值偏差得到z:


第二步:通过激励函数得到输出的类标:


第三步,在训练阶段,通过激励函数获得到模型输出的类标y,在将类标与实际类标进行计算得到误差,进行权值更新。进行权值更新是以下的方法更新


其中


η为学习速率,y(i)为第i个样本数据的真实类标,y(i)’为第i个样本预测得出的目标,xj(i)为第i个样本中第j个值。


2.2实现算法


定义一个perception 类,


实现算法:1.初始化权值,


2.计算输出值,


3.训练模型:计算误差,进行权值更新。


?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778public class perception { public float【】 weigth;//权值 public float【】【】 x;//输入值 public int【】 y;//样本的真实类标 public float rate;//学习数率,决定每一次循环训练中所产生的权值变化; public float【】 output;//输出的类标 public float b=0;//阈值,也称为偏差 / 实例化感知器 @param x 输入的数据 @param d 学习速率 / public perception(float【】【】 x, float d,int【】 y) { super(); //代码效果参考:http://www.lyjsj.net.cn/wz/art_23452.html

this.x = x;//输入数据 this.rate = d;//学习数率 this.y=y;//样本的真实类标 weigth=new float【x【0】.length】;//初始化权值数组 randomWeigth(x【0】.length);//随机给权值赋值 } / 给权值进行赋值,初始值为0 @param n 权值数组的大小 / public void randomWeigth(int n){ // Random random = new Random(); for(int i=0;i<n;i++){ weigth【i】=0; } } /** 训练感知器:计算出误差,然后进行权值更新 / public void train(){ output=new float【x.length】; //获取输出值 for(int i=0;i<x.length;i++){ output【i】=getoutput(x【i】); } //更新 for(int i=0;i<output.length;i++){ float update=rate(y【i】-output【i】); //更新权重 for(int j=0;j } } //计算输出值 public int getoutput(float【】 x){ int output;//输出值 //计算净输入 float z = 0; for(int i=0;i=b) output=1; else output=-1; return output; } }
相关文章
|
4月前
|
机器学习/深度学习 数据采集 算法
量子机器学习入门:三种数据编码方法对比与应用
在量子机器学习中,数据编码方式决定了量子模型如何理解和处理信息。本文详解角度编码、振幅编码与基础编码三种方法,分析其原理、实现及适用场景,帮助读者选择最适合的编码策略,提升量子模型性能。
360 8
|
10月前
|
数据采集 人工智能 API
生物医药蛋白分子数据采集:支撑大模型训练的技术实践分享
作为生物信息学领域的数据工程师,近期在为蛋白质相互作用预测AI大模型构建训练集时,我面临着从PDB、UniProt等学术数据库获取高质量三维结构、序列及功能注释数据的核心挑战。通过综合运用反爬对抗技术,成功突破了数据库的速率限制、验证码验证等反爬机制,将数据采集效率提升4倍,为蛋白质-配体结合预测模型训练提供了包含10万+条有效数据的基础数据集,提高了该模型预测的准确性。
350 1
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
745 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
机器学习/深度学习 Python
机器学习中模型选择和优化的关键技术——交叉验证与网格搜索
本文深入探讨了机器学习中模型选择和优化的关键技术——交叉验证与网格搜索。介绍了K折交叉验证、留一交叉验证等方法,以及网格搜索的原理和步骤,展示了如何结合两者在Python中实现模型参数的优化,并强调了使用时需注意的计算成本、过拟合风险等问题。
908 6
|
机器学习/深度学习 搜索推荐 算法
在数字化时代,推荐系统成为互联网应用的重要组成部分,通过机器学习技术根据用户兴趣和行为提供个性化推荐,提升用户体验
在数字化时代,推荐系统成为互联网应用的重要组成部分,通过机器学习技术根据用户兴趣和行为提供个性化推荐,提升用户体验。本文探讨了推荐系统的基本原理、常用算法、实现步骤及Python应用,介绍了如何克服数据稀疏性、冷启动等问题,强调了合理选择算法和持续优化的重要性。
580 4
|
机器学习/深度学习 数据可视化 算法
机器学习中的特征选择与降维技术
机器学习中的特征选择与降维技术
500 0
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
491 0
|
3月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)

热门文章

最新文章