如下图给定的一组数据可以通过一条线分割成两个不同的类别称之为Linearly_Separable

如下图有明显特征但是不能通过线性进行切分称为线性不可分


我们可以在拿到数据后进行基本的判断,然后确定是否使用感知器方法解决(必须是可以Linearly_Separable)

建模思想就是IO与Para优化(调参)







代码一

def predict(row, weights): # 传入想要的数据和权重activation = weights[0]for i in range(len(row)-1):activation += weights[i + 1] * row[i]return 1.0 if activation >= 0.0 else 0.0
# 瞎写的一种二分数据
dataset = [[2.78,2.55,0],[1.47,2.36,0],[1.39,1.85,0],[3.06,3.01,0],[7.63,2.76,0],[5.33,2.09,1],[6.93,1.76,1],[8.76,-0.77,1],[7.66,2.46,1]]
# 瞎写的权重
weights = [-1.23,0.30,-0.35]
# 预测
for row in dataset:prediction = predict(row,weights)print("真实值 : %d ,预测值 %d:" %(row[-1],prediction))

代码二


def predict(row, weights):activation = weights[0]for i in range(len(row) - 1):activation += weights[i + 1] * row[i]return 1.0 if activation >= 0.0 else 0.0def opt_weights(train, learning_rate, how_many_epoch):weights = [0.0 for i in range(len(train[0]))]for epoch in range(how_many_epoch):sum_error = 0.0for row in train:prediction = predict(row, weights)error = row[-1] - predictionsum_error += error ** 2weights[0] = weights[0] + learning_rate * errorfor i in range(len(row) - 1):weights[i + 1] = weights[i + 1] + learning_rate * error * row[i]print('This is epoch: %d, our learning_rate is : %.4f, the error is : %.4f' % (epoch, learning_rate, sum_error))return weightsdataset = [[2.78, 2.55, 0],[1.47, 2.36, 0],[1.39, 1.85, 0],[3.06, 3.01, 0],[7.63, 2.76, 0],[5.33, 2.09, 1],[6.93, 1.76, 1],[8.76, -0.77, 1],[7.66, 2.46, 1]]learning_rate = 0.1how_many_epoch = 200weights = opt_weights(dataset, learning_rate, how_many_epoch)print(weights)

dataset = [[2.78,2.55,0],[1.47,2.36,0],[1.39,1.85,0],[3.06,3.01,0],[7.63,2.76,0],[5.33,2.09,1],[6.93,1.76,1],[8.76,-0.77,1],[7.66,2.46,1]]
# 使用梯度下降获得的权重
weights = [2.0000000000000004, 0.5690000000000017, -2.380999999999984]
# 预测
for row in dataset:prediction = predict(row,weights)print("真实值 : %d ,预测值 %d:" %(row[-1],prediction))

从零开始数据科学与机器学习算法-简单感知器-05相关推荐

  1. 从零开始数据科学与机器学习算法-数据预处理与基准模型-01

    读取数据函数 from csv import reader # 导入库 def read_csv(the_name_of_file_to_be_read): # 定义数据读取函数file = open ...

  2. 从零开始数据科学与机器学习算法-线性回归-02

    简单线性回归 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns ...

  3. 从零开始数据科学与机器学习算法-人工神经网络与反向传播-09

    概述 rectifier其实就是一种模仿生物的激活机制的函数 (activation function) 常见的激活函数 https://en.wikipedia.org/wiki/Rectifier ...

  4. 从零开始数据科学与机器学习算法-学习向量量化(Learning_Vector_Quantization)-08

    LVQ概述 通常,我们使用LVQ方法用在分类问题上. codebook vector(是一系列数字,与你训练数据里的input与output相关的特征一样) 例: 1.class 0,1 2.widt ...

  5. 从零开始数据科学与机器学习算法-KNN分类算法-07

    KNN概念 物以类聚 1.k--超参数(hyper-parameter) 2.k最好为奇数(no even number , better be odd) 3.k大小有学问: k太小:outliers ...

  6. 从零开始数据科学与机器学习算法-朴素贝叶斯-07

    朴素贝叶斯概念 例子:邮件分类问题: N = (12/17)*(5/11)*(3/11) S = (5/17)*(2/7)*(1/7)print(N) print(S) # N>S 我们可以判断 ...

  7. 从零开始数据科学与机器学习算法-分类与决策树-06

    例:有没有心脏病? -------1胸痛---------2血液循环良好-----------3.动脉阻塞-------------4心脏病(HD) 01.------No-------------- ...

  8. 从零开始数据科学与机器学习算法-知识点补充-00

    知识拓展-python与统计学 1.Descriptive statistics 描述性统计 2.Inferential statistics 推断性统计:步骤如下: sample样本(sample ...

  9. 从零开始数据科学与机器学习算法-集成算法-10

    概述 把各种model综合起来--让预测更准确.更加稳定(做平均) 在随机森林里面的超参数(hyper-parameter): 1.对于每一棵树,要选取特性(features),假设总共有n个feat ...

最新文章

  1. 高效的找出两个List中的不同元素
  2. 机器学习与统计学的本质差异
  3. pascal--生成Pascal矩阵
  4. ASP生成随机密码的源代码
  5. buu 萌萌哒的八戒
  6. 事件映射 消息映射_映射幻影收费站
  7. 如何在React中使用gRPC-web
  8. mysql基准测试总结 一
  9. Microsoft Research和Windows Azure合作伙伴对数据发现和共享的影响
  10. Java aop中参数传递
  11. c语言自动阅卷系统概要设计,VC++自动阅卷系统设计与实现(源代码及全套资料).doc...
  12. 关于时间序列分析的协整检验、脉冲响应图、方差分解图和格兰杰因果检验
  13. python excel怎么将字母后的数字取出来_利用通配符将Excel中英文字母、中文、数字提取出来...
  14. 云服务器的部署形式之一私有云介绍
  15. 事业单位采购计算机的申请报告,事业单位采购申请报告
  16. Windows系统下CMD命令
  17. 变长数组-C99新特性
  18. python学习笔记之doc和docx的格式转换
  19. AIX 网卡绑定聚合具体操作步骤
  20. 2021年中国新型智慧城市百佳案例 附下载

热门文章

  1. 12v电量显示制作方法_如何制作老式12v充电器(四款12v充电器设计制作详解)
  2. 项目管理指标_企业信息化——项目管理
  3. main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...
  4. PHP中的urlencode和urldecode
  5. PHP面向对象基础总结
  6. 目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto
  7. 租网站服务器安全吗,租用的服务器安全吗
  8. 【若依(ruoyi)】swagger 自定义 swagger-ui.html 的路径
  9. Spring cloud整合zookeeper
  10. 华为荣耀20和x10比较_荣耀x10和荣耀20Pro哪个值得入手 荣耀x10和荣耀20Pro参数对比...