加载文件 :param fileName:要加载的文件路径 :return: 数据集和标签集
(fileName)
| 18 | import numpy as np |
| 19 | |
| 20 | def loadData(fileName): |
| 21 | ''' |
| 22 | 加载文件 |
| 23 | :param fileName:要加载的文件路径 |
| 24 | :return: 数据集和标签集 |
| 25 | ''' |
| 26 | #存放数据及标记 |
| 27 | dataArr = []; labelArr = [] |
| 28 | #读取文件 |
| 29 | fr = open(fileName) |
| 30 | #遍历文件中的每一行 |
| 31 | for line in fr.readlines(): |
| 32 | #获取当前行,并按“,”切割成字段放入列表中 |
| 33 | #strip:去掉每行字符串首尾指定的字符(默认空格或换行符) |
| 34 | #split:按照指定的字符将字符串切割成每个字段,返回列表形式 |
| 35 | curLine = line.strip().split(',') |
| 36 | #将每行中除标记外的数据放入数据集中(curLine[0]为标记信息) |
| 37 | #在放入的同时将原先字符串形式的数据转换为整型 |
| 38 | #此外将数据进行了二值化处理,大于128的转换成1,小于的转换成0,方便后续计算 |
| 39 | dataArr.append([int(int(num) > 128) for num in curLine[1:]]) |
| 40 | #将标记信息放入标记集中 |
| 41 | #放入的同时将标记转换为整型 |
| 42 | |
| 43 | #转换成二分类任务 |
| 44 | #标签0设置为1,反之为-1 |
| 45 | if int(curLine[0]) == 0: |
| 46 | labelArr.append(1) |
| 47 | else: |
| 48 | labelArr.append(-1) |
| 49 | #返回数据集和标记 |
| 50 | return dataArr, labelArr |
| 51 | |
| 52 | def calc_e_Gx(trainDataArr, trainLabelArr, n, div, rule, D): |
| 53 | ''' |