最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)數(shù)據(jù)集劃分(訓(xùn)練集和測試集)

 更新時間:2023年05月19日 17:06:07   作者:Python小丸子  
這篇文章主要為大家詳細介紹了Python是如何實現(xiàn)數(shù)據(jù)集劃分的,分為訓(xùn)練集和測試集,文中的實現(xiàn)方法講解詳細,感興趣的小伙伴可以了解一下

前面是分部講解,完整代碼在最后。

導(dǎo)入模塊 :

import os
from shutil import copy, rmtree
import random

創(chuàng)建文件夾 :

def make_file(file_path: str):
    if os.path.exists(file_path):
        rmtree(file_path)
    os.makedirs(file_path)

劃分數(shù)據(jù)集的比例,本文是0.1:驗證集的數(shù)量占總數(shù)據(jù)集的10%比如填0.1就是驗證集的數(shù)量占總數(shù)據(jù)集的10%

random.seed(0)  
split_rate = 0.1 

數(shù)據(jù)集的存放:新建一個數(shù)據(jù)文件夾,將劃分的數(shù)據(jù)集存放進去

data_path = r'D:\chengxu\data\caodi'  # 數(shù)據(jù)集存放的地方
data_root = r'D:\chengxu\data\cd'  # 這里是生成的訓(xùn)練集和驗證集所處的位置,這里設(shè)置的是在當前文件夾下。
data_class = [cla for cla in os.listdir(data_path)]
print("數(shù)據(jù)的種類分別為:")
print(data_class)  # 輸出數(shù)據(jù)種類

建立訓(xùn)練集文件夾:

train_data_root = os.path.join(data_root, "train")  # 訓(xùn)練集的文件夾名稱為 train
make_file(train_data_root)
for num_class in data_class:
    make_file(os.path.join(train_data_root, num_class))

建立測試集文件夾:

val_data_root = os.path.join(data_root, "val")  # 驗證集的文件夾名稱為 val
make_file(val_data_root)
for num_class in data_class:
    make_file(os.path.join(val_data_root, num_class))

劃分數(shù)據(jù):

for num_class in data_class:
    num_class_path = os.path.join(data_path, num_class)
    images = os.listdir(num_class_path)
    num = len(images)
    val_index = random.sample(images, k=int(num * split_rate))  # 隨機抽取圖片
    for index, image in enumerate(images):
        if image in val_index:
            # 將劃分到驗證集中的文件復(fù)制到相應(yīng)目錄
            data_image_path = os.path.join(num_class_path, image)
            val_new_path = os.path.join(val_data_root, num_class)
            copy(data_image_path, val_new_path)
        else:
            # 將劃分到訓(xùn)練集中的文件復(fù)制到相應(yīng)目錄
            data_image_path = os.path.join(num_class_path, image)
            train_new_path = os.path.join(train_data_root, num_class)
            copy(data_image_path, train_new_path)
    print("\r[{}] split_rating [{}/{}]".format(num_class, index + 1, num), end="")  # processing bar
    print()
print("       ")
print("       ")
print("劃分成功")

完整代碼:

import os
from shutil import copy, rmtree
import random
 
 
def make_file(file_path: str):
    if os.path.exists(file_path):
 
        rmtree(file_path)
    os.makedirs(file_path)
 
random.seed(0) 
 
# 將數(shù)據(jù)集中10%的數(shù)據(jù)劃分到驗證集中
split_rate = 0.1  
data_path = r'D:\chengxu\data\caodi'  # 數(shù)據(jù)集存放的地方,建議在程序所在的文件夾下新建一個data文件夾,將需要劃分的數(shù)據(jù)集存放進去
data_root = r'D:\chengxu\data\cd'  # 這里是生成的訓(xùn)練集和驗證集所處的位置,這里設(shè)置的是在當前文件夾下。
 
data_class = [cla for cla in os.listdir(data_path)]
print("數(shù)據(jù)的種類分別為:")
print(data_class)  
# 建立保存訓(xùn)練集的文件夾
train_data_root = os.path.join(data_root, "train")  # 訓(xùn)練集的文件夾名稱為 train
make_file(train_data_root)
for num_class in data_class:
    # 建立每個類別對應(yīng)的文件夾
    make_file(os.path.join(train_data_root, num_class))
 
# 建立保存驗證集的文件夾
val_data_root = os.path.join(data_root, "val")  # 驗證集的文件夾名稱為 val
make_file(val_data_root)
for num_class in data_class:
    # 建立每個類別對應(yīng)的文件夾
    make_file(os.path.join(val_data_root, num_class))
 
for num_class in data_class:
    num_class_path = os.path.join(data_path, num_class)
    images = os.listdir(num_class_path)
    num = len(images)
 
    val_index = random.sample(images, k=int(num * split_rate))  # 隨機抽取圖片
    for index, image in enumerate(images):
        if image in val_index:
          
            data_image_path = os.path.join(num_class_path, image)
            val_new_path = os.path.join(val_data_root, num_class)
            copy(data_image_path, val_new_path)
        else:
      
            data_image_path = os.path.join(num_class_path, image)
            train_new_path = os.path.join(train_data_root, num_class)
            copy(data_image_path, train_new_path)
    print("\r[{}] split_rating [{}/{}]".format(num_class, index + 1, num), end="")  # processing bar
    print()
 
print("       ")
print("       ")
print("劃分成功")

到此這篇關(guān)于Python實現(xiàn)數(shù)據(jù)集劃分(訓(xùn)練集和測試集)的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)集劃分內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter notebook oepncv 顯示一張圖像的實現(xiàn)

    jupyter notebook oepncv 顯示一張圖像的實現(xiàn)

    這篇文章主要介紹了jupyter notebook oepncv 顯示一張圖像的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python版SQLite數(shù)據(jù)庫從入門到綜合運用案例(附詳細演示)

    Python版SQLite數(shù)據(jù)庫從入門到綜合運用案例(附詳細演示)

    SQLite是一款輕量級嵌入式數(shù)據(jù)庫,具有零配置、跨平臺、文件式存儲等特點,適合移動端和嵌入式應(yīng)用開發(fā),這篇文章主要介紹了Python版SQLite數(shù)據(jù)庫從入門到綜合運用案例的相關(guān)資料,需要的朋友可以參考下
    2026-01-01
  • 將django項目部署到centos的踩坑實戰(zhàn)

    將django項目部署到centos的踩坑實戰(zhàn)

    Django部署到Cenos需要安裝大量的依賴包, 有很多坑需要踩,這篇文章主要給大家介紹了關(guān)于將django項目部署到centos踩坑的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • TensorFlow車牌識別完整版代碼(含車牌數(shù)據(jù)集)

    TensorFlow車牌識別完整版代碼(含車牌數(shù)據(jù)集)

    這篇文章主要介紹了TensorFlow車牌識別完整版代碼(含車牌數(shù)據(jù)集),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 在PyCharm中打包Python項目并將其運行到服務(wù)器上的方法(推薦)

    在PyCharm中打包Python項目并將其運行到服務(wù)器上的方法(推薦)

    在PyCharm中打包Python項目并運行到服務(wù)器上,主要步驟包括:創(chuàng)建并設(shè)置項目、編寫項目代碼、打包項目、配置服務(wù)器環(huán)境、上傳可執(zhí)行文件到服務(wù)器以及運行項目,通過這些步驟,可以將Python項目打包并部署到服務(wù)器上
    2024-11-11
  • Python獲取當前文件目錄的多種方法

    Python獲取當前文件目錄的多種方法

    文章介紹了在Python中獲取當前文件目錄的多種方法,包括基礎(chǔ)方法、使用__file__屬性、使用pathlib模塊(推薦于Python3.4+),并在不同場景下應(yīng)用這些方法,此外,還討論了如何在模塊中獲取文件目錄、處理特殊場景以及構(gòu)建路徑的實用函數(shù),需要的朋友可以參考下
    2026-01-01
  • Python3.7黑帽編程之病毒篇(基礎(chǔ)篇)

    Python3.7黑帽編程之病毒篇(基礎(chǔ)篇)

    這篇文章主要介紹了Python3.7黑帽編程之病毒篇(基礎(chǔ)篇),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 淺談matplotlib 繪制梯度下降求解過程

    淺談matplotlib 繪制梯度下降求解過程

    這篇文章主要介紹了淺談matplotlib 繪制梯度下降求解過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Python內(nèi)置函數(shù) next的具體使用方法

    Python內(nèi)置函數(shù) next的具體使用方法

    這篇文章主要介紹了Python內(nèi)置函數(shù) next的具體使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 詳解Python編程中包的概念與管理

    詳解Python編程中包的概念與管理

    這篇文章主要介紹了Python編程中包的概念與管理,包括包管理工具pip的基本安裝使用,需要的朋友可以參考下
    2015-10-10

最新評論

横山县| 稷山县| 玉林市| 玛沁县| 曲沃县| 抚远县| 栾城县| 垣曲县| 宽甸| 勃利县| 云南省| 常德市| 循化| 江西省| 冀州市| 疏勒县| 台南市| 宁强县| 页游| 乌苏市| 盐亭县| 洪雅县| 晋江市| 仙居县| 淮阳县| 稷山县| 黔东| 科技| 特克斯县| 连州市| 乌鲁木齐市| 武功县| 益阳市| 门头沟区| 两当县| 武宣县| 肇州县| 家居| 济阳县| 台安县| 汝南县|