檢視是否存在樣本不均衡問題,同時方便選擇合適的資料預處理方式。
#%%
from glob import glob
import pandas as pd
import numpy as np
import os
import cv2
from pil import image
from matplotlib import pyplot as plt
from tqdm import tqdm
#%%# 訓練集探索
train_dataset_path =
'../train_data'
image_fns = glob(os.path.join(train_dataset_path,
'*',
'*.*'))
label_names =
[s.split(
'/')[-
2]for s in image_fns]
unique_labels =
list
(set
(label_names)
)#%%
# 類別數
print
(len
(unique_labels)
)#%%
# 總數
print
(len
(image_fns)
)#%%
# 每個類別的數量
dir_lst = os.listdir(train_dataset_path)
number_lst =
for i in dir_lst:
path = os.path.join(train_dataset_path,i)
if os.path.isdir(path)
: num =
len(glob(os.path.join(path,
'*')))
if num ==0:
print
(i)#%%
plt.hist(number_lst, bins=
40, normed=
0, facecolor=
"blue"
, edgecolor=
"black"
, alpha=
0.7)
;#%%
print
(np.
max(number_lst)
)print
(np.
min(number_lst)
)#%%
dir_lst = os.listdir(train_dataset_path)
number_lst =
size_lst =
for i in tqdm(dir_lst)
: path = os.path.join(train_dataset_path,i)
if os.path.isdir(path)
: img_lst = glob(os.path.join(path,
'*')
)for j in img_lst:
open
(j).size)
#%%temp = pd.value_counts(size_lst)
#%%# 解析度分布
print
(temp[temp>
200]
)#%%
rd_index = np.random.randint(
len(image_fns)
)plt.imshow(plt.imread(image_fns[rd_index]))
#%%# 測試集探索
train_dataset_path =
'../test_data_a'
image_gal = glob(os.path.join(train_dataset_path,
'gallery'
,'*.*'))
image_que = glob(os.path.join(train_dataset_path,
'query'
,'*.*'))
#%%print
(len
(image_gal)
)print
(len
(image_que)
)#%%
size_lst_gal =
for i in tqdm(image_gal)
:open
(i).size)
#%%size_lst_que =
for i in tqdm(image_que)
:open
(i).size)
#%%temp_gal = pd.value_counts(size_lst_gal)
temp_que = pd.value_counts(size_lst_que)
#%%print
(temp_gal[temp_gal>
200]
)#%%
print
(temp_que[temp_que>
100]
)#%%
seaborn 類別資料視覺化
第七課 資料視覺化 第15節 類別資料視覺化 類別散布圖 類別內資料分布 類別內統計圖 import pandas as pd import seaborn as sns 載入小費資料集 tips data sns.load dataset tips tips data.head total bil...
python資料預處理之將類別資料轉換為數值的方法
在進行python資料分析的時候,首先要進行資料預處理。有時候不得不處理一些非數值類別的資料,嗯,今天要說的就是面對這些資料該如何處理。目前了解到的大概有三種方法 1,通過labelencoder來進行快速的轉換 3,通過get dummies方法來轉換。import pandas as pd fr...
python製作單類別檢測資料集
為了訓練自己的yolov3,但是訓練乙個公開資料集需要的時間太長了,所以就隨手做了乙個製作資料集的小demo,不長比較簡單,但是只能標註矩形框,而且只可以製作單類別資料集。製作前的準備 將需要的放在乙個資料夾下,最好都是乙個格式的 生成的資料集格式 每行代表乙個影象標籤,格式為 影象名 x1,y1,...