资源简介
首先对数据进行PCA,然后输入至PSO优化的ELM中进行分类,python代码

代码片段和文件信息
# -*- coding: utf-8 -*-
“““
Created on Mon Jul 29 15:16:34 2019
@author: KLY-392503054
“““
# coding: utf-8
from scipy.io import loadmat
import numpy as np
import random
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
class PSO():
def __init__(selfpNdimmax_iterinput_nodehidden_nodeinputoutput):
#----------------------PSO参数设置---------------------------------
self.w = 0.8
self.c1 = 1.5
self.c2 = 1.5
self.r1 = 0.8
self.r2 = 0.3
self.pN = pN #粒子数量
self.dim =dim #搜索维度
self.max_iter = max_iter #迭代次数
self.X = np.zeros((self.pNself.dim)) #所有粒子的位置和速度
self.V = np.zeros((self.pNself.dim))
self.pbest = np.zeros((self.pNself.dim)) #个体经历的最佳位置和全局最佳位置
self.gbest = np.zeros((1self.dim))
self.p_fit = np.zeros(self.pN) #每个个体的历史最佳适应值
self.fit = -1
# 输入数据
self.input=input
self.output=output
self.input_node=input_node
self.hidden_node=hidden_node
def train_elm(selfPTNWC=100000000000000TF=‘sig‘TYPE=1):
# P 输入数据 n*m n-> samples m->features
# T 输出数据
# N 隐含层节点
# C 正则化参数
# TF 隐含层激活函数
# TYPE=1 分类任务 =0 回归任务
nm=P.shape
if TYPE == 1:
y=np.zeros([nT.max()+1])
for i in range(n):
y[iT[i]]=1
T=np.copy(y)
nc=T.shape
‘输入权重‘
Weights = np.reshape(W[:m*N][mN])
‘隐含层偏置‘
biases=np.reshape(W[m*N:][1N])
temp=np.matmul(PWeights)+np.tile(biases[n1])
if TF==‘sig‘:
H=1/(1+np.exp(temp))
‘输出权重计算‘
w_out=np.matmul(np.matmul(np.linalg.pinv(np.matmul(H.TH)+1/C)H.T)T)
return Weights biases w_out TF TYPE
def train_predic(selfPWeightsbiasesw_outTFTYPE):
nm=P.shape
temp=np.matmul(PWeights)+np.tile(biases[n1])
if TF==‘sig‘:
H=1/(1+np.exp(temp))
T=np.matmul(Hw_out)
if TYPE==1:
T_predict=np.argmax(Taxis=1)
return T_predict
def compute_accuracy(selfT_trueT_predictTYPE):
if TYPE==0:
accuracy=np.mean(np.sum(T_true-T_predict))
if TYPE==1:
n=0
for i in range(len(T_true)):
if T_true[i]==T_predict[i]:
n=n+1
accuracy=n/len(T_true)
return accuracy
#---------------------目标函数-----------------------------
def function(selfPTNW):
Weightsbiasesw_outTFTYPE=self.train_elm(PTNWC=10000000000TF=‘sig‘TYPE=1)
T_predict=self.train_predic(PWeightsbiasesw_outTFTYPE)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5999 2019-07-29 16:29 pso-elm.py
文件 7152017 2018-04-26 17:10 drivFace600.mat
----------- --------- ---------- ----- ----
7158016 2
相关资源
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 15个pyqt5项目
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- 顶点小说单本书爬虫.py
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- pyqt5动态加载ui文件,动态加载背景图
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- 记事本简洁版.py
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
评论
共有 条评论