欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現數據集劃分(訓練集和測試集)

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

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

導入模塊 :

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)

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

random.seed(0)  
split_rate = 0.1 

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

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

建立訓練集文件夾:

train_data_root = os.path.join(data_root, "train")  # 訓練集的文件夾名稱為 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))

劃分數據:

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("劃分成功")

完整代碼:

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) 
 
# 將數據集中10%的數據劃分到驗證集中
split_rate = 0.1  
data_path = r'D:\chengxu\data\caodi'  # 數據集存放的地方,建議在程序所在的文件夾下新建一個data文件夾,將需要劃分的數據集存放進去
data_root = r'D:\chengxu\data\cd'  # 這里是生成的訓練集和驗證集所處的位置,這里設置的是在當前文件夾下。
 
data_class = [cla for cla in os.listdir(data_path)]
print("數據的種類分別為:")
print(data_class)  
# 建立保存訓練集的文件夾
train_data_root = os.path.join(data_root, "train")  # 訓練集的文件夾名稱為 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))
 
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("劃分成功")

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

相關文章

  • 通過實例簡單了解Python中yield的作用

    通過實例簡單了解Python中yield的作用

    這篇文章主要介紹了通過實例簡單了解Python中yield的作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Python代碼實現KNN算法

    Python代碼實現KNN算法

    這篇文章主要為大家詳細介紹了Python代碼實現KNN算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python實現簡單顏色識別程序

    python實現簡單顏色識別程序

    這篇文章主要為大家詳細介紹了python實現簡單顏色識別程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python 二叉樹的概念案例詳解

    Python 二叉樹的概念案例詳解

    這篇文章主要介紹了二叉樹的概念案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-09-09
  • TensorFlow可視化工具TensorBoard默認圖與自定義圖

    TensorFlow可視化工具TensorBoard默認圖與自定義圖

    這篇文章主要介紹了TensorFlow可視化工具TensorBoard默認圖與自定義圖的使用操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python和GO語言實現的消息摘要算法示例

    Python和GO語言實現的消息摘要算法示例

    這篇文章主要介紹了Python和GO語言實現的消息摘要算法示例,本文講解了python消息摘要示例、go語言消息摘要示例及各自的運行效果,需要的朋友可以參考下
    2015-03-03
  • 如何利用opencv訓練自己的模型實現特定物體的識別

    如何利用opencv訓練自己的模型實現特定物體的識別

    在Python中通過OpenCV自己訓練分類器進行特定物體實時識別,下面這篇文章主要給大家介紹了關于如何利用opencv訓練自己的模型實現特定物體的識別,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • Python中的數據分組統(tǒng)計、分組運算及透視方式

    Python中的數據分組統(tǒng)計、分組運算及透視方式

    這篇文章主要介紹了Python中的數據分組統(tǒng)計、分組運算及透視方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • pycharm中連接mysql數據庫的步驟詳解

    pycharm中連接mysql數據庫的步驟詳解

    在進行Python研發(fā)的時候,pycharm是一個很好的IDE,下面這篇文章主要給大家介紹了pycharm中連接mysql數據庫的步驟,文中通過圖文介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • git查看、創(chuàng)建、刪除、本地、遠程分支方法詳解

    git查看、創(chuàng)建、刪除、本地、遠程分支方法詳解

    這篇文章主要介紹了git查看、創(chuàng)建、刪除、本地、遠程分支方法詳解,需要的朋友可以參考下
    2020-02-02

最新評論