资源简介
首先对数据进行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
相关资源
- python3+wxpython编程教程
- 西电数据挖掘作业——VSM人脸识别算
- 蜻蜓fm文件批量还原名称
- 算法设计与分析Python程振波编著 实验
- Python美食小程序带Djang后台
- 简明Python教程(第4版) A Byte of Pyth
- python2.7基于tkinter下实现拼图小游戏
- 字符型图片数字验证码识别完整过程
- 《Python机器学习》实验报告.doc
- 使用python爬取猫眼影评并进行可视化
- python-3.7.7-amd64-webinstall.exe
- python+opencv识别魔方颜色+kociemba算法应
- 基于Python的手写字体识别系统
- Pillow-3.4.2-cp36-cp36m-win_amd64.whl python3
- 机器学习机器学习机器学习python的P
- Python爬虫入门:如何爬取招聘网站并
- Python深度学习122512
- 笨办法学Python3中英
- dive-into-python3 英文版+深入python3中文版
- 富文本使用案例
- scons-local-2.0.1
- python数据分析:客户价值分析案例实
- 用Python 编写的一个Monkey脚本
- 卷积神经网络图像识别python代码
- Python标准库英文版
- python写一个商城网页服务器并且实现
- 可爱的python 思哲社区
- 图像分割Grabcut算法-GUI程序-python实现
- 黑马python入门教程飞机大战素材(图
- 基于selenium模拟天眼查登录并爬取企业
评论
共有 条评论