2020/12/09练习代码

这篇博客记录了2020年12月9日进行的一次Python机器学习的练习,主要内容涉及使用numpy库进行数据处理和分析。
摘要由CSDN通过智能技术生成

1.代码

代码如下(示例):

#Python3.8
#@Time    :2020/12/9
#@Software:Pycharm
#@Author  :xuhaoyu
#@Filename:PlattSMO.p

from numpy import *

class optStruct:
    def _init_(self,dataMatrixInput,classLabels,constantC,tolerance):
        self.X = dataMatrixInput
        self.labelMatrix = classLabels
        self.constantC = constantC
        self.tolerance = tolerance
        self.m = shape(dataMatrixInput)[0]
        self.alphas = mat(zeros((self.m,1)))
        self.b = 0
        self.eCache = mat(zeros((self.m,2)))


def selectJrand(alphaIndex,numberOfAlpha):
    j = alphaIndex
    while(j == alphaIndex):
        j = int(random.uniform(0,numberOfAlpha))
    return j
#用于调整alpha的值alpha大于highValue将highValue赋值给alpha,反之也赋值
def clipAlpha(alpha,highValue,lowValue):
    if alpha > highValue:
        alpha = highValue
    if alpha < lowValue:
        alpha = lowValue
    return alpha


def loadDataSet(fileName):
    dataMatrix = []     #数据矩阵列表
    labelMatrix = []    #数据的标签tag列表
    fileOpen = open(fileName)
    for line in fileOpen.readlines():  #读取文件的每一行
        #strip()函数将文件的首位空格去掉(默认参数)
        #split()函数将每一行用'\t'作为分隔符,放到一个列表中
        lineArray = line.strip().split('\t')
        #append()函数用来在列表尾部追加元素(参数是一个元素,例如:元组,列表,等)
        dataMatrix.append([float(lineArray[0]),float(lineArray[1])])
        labelMatrix.append(float(lineArray[2]))
    return dataMatrix,labelMatrix


def calcEk(oS,k):
    fXk = float(multiply(oS.alphas,oS.labelMat).T*(oS.X*oS.X[k,:].T)) + oS.b
    Ek = fXk - float(oS.labelMatrix[k])
    return Ek


def selectJ(i,oS,Ei):
    maxK 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值