• 大小: 245KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: Python
  • 标签: LSSVM  python  

资源简介

LSSVM实例代码,

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Wed May 16 12:48:56 2018

@author: lj
“““

from numpy import *

def loadDataSet(filename):
    ‘‘‘导入数据
    input: filename:文件名
output:dataMat(list)样本特征
       labelMat(list)样本标签
    ‘‘‘
    dataMat = []
    labelMat = []
    fr = open(filename)
    for line in fr.readlines():
        lineArr = line.strip().split(‘\t‘)
        dataMat.append([float(lineArr[0])float(lineArr[1])])
        labelMat.append(float(lineArr[2]))
    return dataMatlabelMat
           

def kernelTrans(XAkTup):
    ‘‘‘数据集中每一个数据向量与数据A的核函数值
    input: X--特征数据集
           A--输入向量
           kTup--核函数参量定义
    output: K--数据集中每一个数据向量与A的核函数值组成的矩阵
    ‘‘‘
    X = mat(X)
    mn = shape(X)
    K = mat(zeros((m1)))
    if kTup[0] == ‘lin‘:
        K = X * A.T
    elif kTup[0] == ‘rbf‘:
        for j in range(m):
            deltaRow = X[j:] - A
            K[j] = deltaRow * deltaRow.T
        K = exp(K/(-1 * kTup[1] ** 2))
    else: raise NameError(‘Houston We Have a Problem -- That Kernel is not recognized‘)
    return K
    
class optStruct:
    def __init__(selfdataMatInclassLabelsCkTup):
        self.X = dataMatIn
        self.labelMat = classLabels
        self.C = C
        self.m = shape(dataMatIn)[0]
        self.alphas = mat(zeros((self.m1)))
        self.b = 0
        self.K = mat(zeros((self.mself.m)))  #特征数据集合中向量两两核函数值组成的矩阵,[ij]表示第i个向量与第j个向量的核函数值
        for i in range(self.m):
            self.K[:i] = kernelTrans(self.X self.X[i:] kTup)
            

def leastSquares(dataMatInclassLabelsCkTup):
    ‘‘‘最小二乘法求解alpha序列
    input:dataMatIn(list):特征数据集
          classLabels(list):分类标签集
          C(float):参数,(松弛变量,允许有些数据点可以处于分隔面的错误一侧)
          kTup(string): 核函数类型和参数选择 
    output:b(float):w.T*x+b=y中的b
           alphas(mat):alphas序列      
    ‘‘‘
    print(“mat(dataMatIn):\n“mat(dataMatIn))
    print(“mat(dataMatIn).shape:“mat(dataMatIn).shape) # 100 * 2
    print(“mat(classLabels):\n“mat(classLabels))
    print(“mat(classLabels).shape:“mat(classLabels).shape) # 1 * 100
    print(“mat(classLabels).transpose():\n“mat(classLabels).transpose()) # 转置 100 * 1
    print(“C:“C) # 0.6
    print(“kTup:“kTup) # (‘rbf‘0.3)
    # 调用 optStruct 方法,得到自定义的变量
    oS = optStruct(mat(dataMatIn)mat(classLabels).transpose()CkTup)
    print(“oS.X:\n“oS.X) # 100 * 2
    print(“oS.labelMat:\n“oS.labelMat) # 100 * 1
    print(“oS.C:\n“oS.C)
    print(“oS.m:\n“oS.m)
    print(“alphas:\n“oS.alphas)
    print(“oS.b:\n“oS.b) # 0
    print(“oS.K:\n“oS.K) #
    print(“oS.K.shape:\n“oS.K.shape) # 100 * 100
    # 打印自定义变量得到的参数
    ##1.参数设置
    unit = mat(ones((oS.m1)))  #[11...1].T
    print(“unit:\n“unit)
    I = eye(oS.m)
    print(“I:\n“I)
    zero = mat(zeros((11)))
    print(“unit:\n“zero)
    print(“zero.shape:“zero.shape)
    upmat = hstack((zerounit.T))
    print(“upmat:\n“upmat)
    print(“upmat:\n“upmat)
    downma

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-04-19 14:53  LSSVM_python_example\LSSVM_python_code_cherry\
     文件      280261  2018-11-18 21:10  LSSVM_python_example\LSSVM_python_code_cherry\Least Squares Sup-port Vector Machine Classifiers.pdf
     文件          19  2018-11-18 21:10  LSSVM_python_example\LSSVM_python_code_cherry\README.md
     文件        5840  2020-04-19 14:41  LSSVM_python_example\LSSVM_python_code_cherry\lssvm.py
     文件        2845  2018-11-18 21:10  LSSVM_python_example\LSSVM_python_code_cherry\testSetRBF.txt
     目录           0  2020-04-19 14:53  LSSVM_python_example\

评论

共有 条评论