python的数据处理_基于python的数据处理

python的数据处理_基于python的数据处理源起:1.我要做交叉验证,需要每个训练集和测试集都保持相同的样本分布比例,直接用sklearn提供的KFold并不能满足这个需求。2.将生成的交叉验证数据集保存成CSV文件,而不是直接用sklearn训练分类模型。3.在编码过程中有一的误区需要注意:这个sklearn官方给出的文档>>>importnumpyasnp>>>fromsklearn.mo…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

源起:

1.我要做交叉验证,需要每个训练集和测试集都保持相同的样本分布比例,直接用sklearn提供的KFold并不能满足这个需求。

2.将生成的交叉验证数据集保存成CSV文件,而不是直接用sklearn训练分类模型。

3.在编码过程中有一的误区需要注意:

这个sklearn官方给出的文档>>> import numpy as np

>>> from sklearn.model_selection import KFold

>>> X = [“a”, “b”, “c”, “d”]

>>> kf = KFold(n_splits=2)

>>> for train, test in kf.split(X):

… print(“%s %s” % (train, test))

[2 3] [0 1]

[0 1] [2 3]

我之前犯的一个错误是将train,test理解成原数据集分割成子数据集之后的子数据集索引。而实际上,它就是原始数据集本身的样本索引。

源码:# -*- coding:utf-8 -*-

# 得到交叉验证数据集,保存成CSV文件

# 输入是一个包含正常恶意标签的完整数据集,在读数据的时候分开保存到datasetBenign,datasetMalicious

# 分别对两个数据集进行KFold,最后合并保存

from sklearn.model_selection import KFold

import csv

def writeInFile(benignKFTrain, benignKFTest, maliciousKFTrain, maliciousKFTest, i, datasetBenign, datasetMalicious):

newTrainFilePath = “E:\\hadoopExperimentResult\\5KFold\\AllDataSetIIR10\\dataset\\ImbalancedAllTraffic-train-%s.csv” % i

newTestFilePath = “E:\\hadoopExperimentResult\\5KFold\\AllDataSetIIR10\\dataset\\IImbalancedAllTraffic-test-%s.csv” % i

newTrainFile = open(newTrainFilePath, “wb”)# wb 为防止空行

newTestFile = open(newTestFilePath, “wb”)

writerTrain = csv.writer(newTrainFile)

writerTest = csv.writer(newTestFile)

for index in benignKFTrain:

writerTrain.writerow(datasetBenign[index])

for index in benignKFTest:

writerTest.writerow(datasetBenign[index])

for index in maliciousKFTrain:

writerTrain.writerow(datasetMalicious[index])

for index in maliciousKFTest:

writerTest.writerow(datasetMalicious[index])

newTrainFile.close()

newTestFile.close()

def getKFoldDataSet(datasetPath):

# CSV读取文件

# 开始从文件中读取全部的数据集

datasetFile = file(datasetPath, ‘rb’)

datasetBenign = []

datasetMalicious = []

readerDataset = csv.reader(datasetFile)

for line in readerDataset:

if len(line) > 1:

curLine = []

curLine.append(float(line[0]))

curLine.append(float(line[1]))

curLine.append(float(line[2]))

curLine.append(float(line[3]))

curLine.append(float(line[4]))

curLine.append(float(line[5]))

curLine.append(float(line[6]))

curLine.append(line[7])

if line[7] == “benign”:

datasetBenign.append(curLine)

else:

datasetMalicious.append(curLine)

# 交叉验证分割数据集

K = 5

kf = KFold(n_splits=K)

benignKFTrain = []; benignKFTest = []

for train,test in kf.split(datasetBenign):

benignKFTrain.append(train)

benignKFTest.append(test)

maliciousKFTrain=[]; maliciousKFTest=[]

for train,test in kf.split(datasetMalicious):

maliciousKFTrain.append(train)

maliciousKFTest.append(test)

for i in range(K):

print “======================== “+ str(i)+ ” ========================”

print benignKFTrain[i], benignKFTest[i]

print maliciousKFTrain[i],maliciousKFTest[i]

writeInFile(benignKFTrain[i], benignKFTest[i], maliciousKFTrain[i], maliciousKFTest[i], i, datasetBenign,

datasetMalicious)

datasetFile.close()

if __name__ == “__main__”:

getKFoldDataSet(r”E:\hadoopExperimentResult\5KFold\AllDataSetIIR10\dataset\ImbalancedAllTraffic-10.csv”)

END

f2dbd1f4babcefba6c001b09292a3be8.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193725.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL SERVER的QUOTENAME函数

    SQL SERVER的QUOTENAME函数quotename使函数中的输入成为一个有效的标识符selectQUOTENAME(‘dddd’) 返回[dddd]selectQUOTENAME(‘dddd’,'”‘)返回”dddd”首先,sqlserver里的标识符有一定的规则,比如 你 createtableabc123(…) 那么中间含有空格,它不是符合规则的。 

    2022年7月25日
    16
  • vs2010sp1安装包_怎么安装vs2015

    vs2010sp1安装包_怎么安装vs2015微软的VisualStudio2005ServicePack1(SP1)年前就发布了,年前终于有点时间了,于是装了一下VS2005sp1,看看到底有什么好东西。这次发布的语言版本包括十个国家的语言,可谓全上阵,容量为413M修正了许多bug,其中包括了很多人最最关心中文的WebApplicationProject问题。 VS2005SP1下载地址:VS2005

    2022年10月6日
    3
  • 详细总结BS架构和CS架构

    详细总结BS架构和CS架构文章目录CS架构CS结构CS的优缺点BS架构BS结构BS的优缺点CS与BS的对比总结文章内容学习百度百科和博主“向上人生”CS架构客户端-服务器,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户端负责完成与用户的交互任务。CS结构在C/S结构中,应用程序分为两部分:服务器部分和客户端部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户端部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大

    2022年6月20日
    52
  • [leetcode]Search for a Range

    [leetcode]Search for a Range

    2022年1月14日
    41
  • datagrip 2022 激活码 mac(JetBrains全家桶)「建议收藏」

    (datagrip 2022 激活码 mac)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9AAG1RZ8NI-eyJsaWNlb…

    2022年4月1日
    1.0K
  • clion2021.4.14激活码_通用破解码

    clion2021.4.14激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号