国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)預(yù)處理簡(jiǎn)單介紹,并給出具體的代碼示例

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)據(jù)預(yù)處理簡(jiǎn)單介紹,并給出具體的代碼示例。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

深度學(xué)習(xí)數(shù)據(jù)預(yù)處理簡(jiǎn)單介紹

深度學(xué)習(xí)的數(shù)據(jù)預(yù)處理包括以下幾個(gè)方面:

  1. 數(shù)據(jù)讀取和加載:將數(shù)據(jù)從存儲(chǔ)介質(zhì)中讀取到內(nèi)存中,用于后續(xù)的處理和訓(xùn)練。
  2. 數(shù)據(jù)清洗和去噪:對(duì)數(shù)據(jù)進(jìn)行處理,修復(fù)缺失值和錯(cuò)誤,去除噪聲和異常值等。
  3. 數(shù)據(jù)歸一化和縮放:對(duì)數(shù)據(jù)進(jìn)行歸一化和縮放,使得數(shù)據(jù)具有相同的范圍和分布,以提高模型的訓(xùn)練效果。
  4. 數(shù)據(jù)變換和映射:對(duì)數(shù)據(jù)進(jìn)行特征提取、降維和變換,以減少數(shù)據(jù)的維度和提取有用的特征。
  5. 數(shù)據(jù)增強(qiáng)和擴(kuò)展:通過對(duì)數(shù)據(jù)進(jìn)行旋轉(zhuǎn)、裁剪、翻轉(zhuǎn)、加噪聲等操作,增加數(shù)據(jù)的數(shù)量和多樣性,提高模型的泛化能力和魯棒性。
  6. 數(shù)據(jù)劃分和驗(yàn)證:將原始數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,用于模型的訓(xùn)練、調(diào)優(yōu)和評(píng)估。
  7. 數(shù)據(jù)保存和加載:將數(shù)據(jù)和模型保存到磁盤或云存儲(chǔ),用于后續(xù)的部署和應(yīng)用。

在每個(gè)方面,具體的處理方法和技術(shù)都有很多種,需要根據(jù)具體的問題和數(shù)據(jù)特征進(jìn)行選取和應(yīng)用。

在深度學(xué)習(xí)中,數(shù)據(jù)預(yù)處理是非常關(guān)鍵的一個(gè)步驟。本教程將介紹一些數(shù)據(jù)預(yù)處理的基礎(chǔ)技巧,包括數(shù)據(jù)清洗、歸一化、平衡數(shù)據(jù)集等。

數(shù)據(jù)清洗

數(shù)據(jù)清洗是指刪除或糾正數(shù)據(jù)集中的錯(cuò)誤或不完整的數(shù)據(jù)。數(shù)據(jù)清洗可以有效地避免噪聲的影響,提高模型的準(zhǔn)確性。

常見的數(shù)據(jù)清洗方法包括:

  • 刪除缺失數(shù)據(jù):刪除數(shù)據(jù)中包含缺失值的行或列。
  • 數(shù)據(jù)平滑:平滑噪聲的方法包括濾波和移動(dòng)平均。
  • 去重:刪除數(shù)據(jù)集中的重復(fù)數(shù)據(jù)。
  • 異常檢測(cè):檢測(cè)并刪除異常數(shù)據(jù)。
  • 缺失值填充:增加一些缺失值
  • 重復(fù)值刪除:去掉一些重復(fù)數(shù)據(jù),和去重類似
  • 數(shù)據(jù)類型轉(zhuǎn)換:把數(shù)據(jù)轉(zhuǎn)換為不同的類型
1. 刪除缺失數(shù)據(jù)

在數(shù)據(jù)中有時(shí)會(huì)存在缺失的情況,比如某一行或某一列中某些數(shù)據(jù)沒有被記錄,這些缺失值可能會(huì)對(duì)后續(xù)處理產(chǎn)生負(fù)面影響。因此,我們需要將這些缺失數(shù)據(jù)清除掉。

import pandas as pd

# 讀取csv文件
df = pd.read_csv('data.csv')

# 刪除包含缺失值的行或列
df = df.dropna(axis=0, subset=['col1', 'col2'])

在這段代碼中,我們使用 Pandas 庫(kù)中的 read_csv 函數(shù)來讀取 csv 文件,然后使用 dropna 函數(shù)刪除包含缺失值的行或列,其中 axis=0 參數(shù)表示刪除行, subset=['col1', 'col2'] 參數(shù)表示對(duì)列 ‘col1’ 和 ‘col2’ 中含有缺失值的行進(jìn)行刪除。

2. 數(shù)據(jù)平滑

在一些數(shù)據(jù)中可能會(huì)存在噪聲,而噪聲會(huì)影響模型的表現(xiàn),因此需要對(duì)數(shù)據(jù)進(jìn)行平滑處理,以減少噪聲的影響。

import numpy as np
from scipy.ndimage.filters import gaussian_filter

# 生成帶噪聲的數(shù)據(jù)
data = np.random.uniform(low=0.0, high=1.0, size=(100,))
noise = np.random.normal(loc=0, scale=0.1, size=(100,))
data_with_noise = data + noise

# 進(jìn)行高斯濾波
data_smooth = gaussian_filter(data_with_noise, sigma=3)

首先,我們使用 Numpy 庫(kù)中的 np.random 模塊生成一個(gè)隨機(jī)的數(shù)據(jù)集,并添加了一些噪聲。然后使用 Scipy 庫(kù)中的 gaussian_filter 函數(shù)對(duì)數(shù)據(jù)進(jìn)行高斯濾波,其中 sigma=3 表示設(shè)定高斯核的標(biāo)準(zhǔn)差為 3。

3. 去重

在某些數(shù)據(jù)集中,可能會(huì)包含一些重復(fù)的數(shù)據(jù),這些重復(fù)數(shù)據(jù)會(huì)對(duì)模型的準(zhǔn)確性產(chǎn)生負(fù)面影響,因此需要將這些重復(fù)的數(shù)據(jù)刪除。

# 生成帶重復(fù)數(shù)據(jù)的數(shù)據(jù)集
data = [1, 2, 2, 3, 4, 4, 4, 5]

# 使用 Pandas 庫(kù)去重
unique_data = pd.DataFrame(data, columns=['col1']).drop_duplicates()

這段代碼中,我們首先生成了一個(gè)包含重復(fù)數(shù)據(jù)的數(shù)據(jù)集,然后使用 Pandas 庫(kù)中的 drop_duplicates 函數(shù)對(duì)數(shù)據(jù)集進(jìn)行去重,其中 columns=['col1'] 表示以列 ‘col1’ 作為唯一標(biāo)識(shí),如果該列中有重復(fù)數(shù)據(jù),則將其刪除。

4. 異常檢測(cè)

檢測(cè)異常數(shù)據(jù)的方法有很多種,常見的方法包括箱線圖、z-score等,這里根據(jù)數(shù)據(jù)集的特點(diǎn)和具體的需求進(jìn)行適當(dāng)選擇。

import numpy as np
# 生成帶異常數(shù)據(jù)的數(shù)據(jù)集
data = [1, 2, 3, 4, 100]

# 使用 z-score 進(jìn)行異常檢測(cè)
mean_value = np.mean(data)
std_value = np.std(data)
threshold = 2.0
outliers = []
for x in data:
    if abs(x - mean_value) > threshold * std_value:
        outliers.append(x)

這段代碼中,我們首先生成了一個(gè)包含異常數(shù)據(jù)的數(shù)據(jù)集,然后使用 z-score 進(jìn)行異常檢測(cè),將均值加減兩倍標(biāo)準(zhǔn)差之外的數(shù)據(jù)都視為異常數(shù)據(jù),并將其放入列表 outliers 中。

5. 缺失值填充

在數(shù)據(jù)中,有時(shí)候可能會(huì)有一些缺失值,這會(huì)影響到數(shù)據(jù)的計(jì)算和分析,因此需要進(jìn)行缺失值填充。

import pandas as pd

# 生成帶缺失值的數(shù)據(jù)集
data = {'name': ['A', 'B', 'C', 'D'], 'age': [20, None, 22, 24], 'gender': ['M', 'F', None, 'F']}
df = pd.DataFrame(data)

# 使用均值填充缺失值
df = df.fillna(df.mean())

這段代碼中,我們首先生成了一個(gè)帶缺失值的數(shù)據(jù)集,然后使用 Pandas 庫(kù)中的 fillna 函數(shù)對(duì)缺失值進(jìn)行填充,其中 df.mean() 表示使用列的均值來填充缺失值。

6. 重復(fù)值刪除

在數(shù)據(jù)集中,有時(shí)可能會(huì)有一些完全相同的數(shù)據(jù)記錄,這些記錄對(duì)數(shù)據(jù)分析不會(huì)產(chǎn)生太大的影響,并且刪除這些記錄可以為后續(xù)的分析提供更準(zhǔn)確的數(shù)據(jù)。

import pandas as pd

# 生成帶重復(fù)值的數(shù)據(jù)集
data = {'name': ['A', 'B', 'B', 'C', 'C'], 'age': [20, 22, 22, 24, 24], 'gender': ['M', 'F', 'F', 'F', 'F']}
df = pd.DataFrame(data)

# 使用唯一值篩選器刪除重復(fù)值
df = df.drop_duplicates()

這段代碼中,我們首先生成了一個(gè)帶重復(fù)值的數(shù)據(jù)集,然后使用 Pandas 庫(kù)中的 drop_duplicates 函數(shù)對(duì)數(shù)據(jù)集進(jìn)行去重,保留第一次出現(xiàn)的記錄,同時(shí)刪除后續(xù)的記錄。

7. 數(shù)據(jù)類型轉(zhuǎn)換

在深度學(xué)習(xí)中,很多時(shí)候需要對(duì)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,如將字符串類型轉(zhuǎn)換成整型或浮點(diǎn)型數(shù)據(jù)。

import pandas as pd

# 生成帶字符串類型的數(shù)據(jù)集
data = {'name': ['A', 'B', 'C', 'D'], 'age': ['20', '22', '24', '26']}
df = pd.DataFrame(data)

# 將字符串類型轉(zhuǎn)換為整型
df['age'] = df['age'].astype(int)

這段代碼中,我們首先生成了一個(gè)帶字符串類型的數(shù)據(jù)集,然后使用 Pandas 庫(kù)中的 astype 函數(shù)將 ‘a(chǎn)ge’ 列的數(shù)據(jù)類型轉(zhuǎn)換成整型。我們還可以使用 float、str 等其他類型,具體根據(jù)需要進(jìn)行選擇。

小結(jié)

數(shù)據(jù)清洗是深度學(xué)習(xí)中十分重要的步驟,本文介紹了數(shù)據(jù)清洗常用的操作,包括刪除缺失數(shù)據(jù)、數(shù)據(jù)平滑、去重、異常檢測(cè)、缺失值填充、重復(fù)值刪除以及數(shù)據(jù)類型轉(zhuǎn)換,并提供了相應(yīng)的 Python 代碼。在實(shí)踐中,我們可以根據(jù)具體數(shù)據(jù)集的特點(diǎn)和需求選擇相應(yīng)的方法來進(jìn)行數(shù)據(jù)清洗。

歸一化

在深度學(xué)習(xí)中,歸一化(Normalization)是一項(xiàng)常見的數(shù)據(jù)預(yù)處理步驟,它的目的是將輸入數(shù)據(jù)的范圍縮放到一個(gè)相對(duì)較小的范圍內(nèi),這有助于增加模型的穩(wěn)定性和準(zhǔn)確性。在歸一化后,數(shù)據(jù)的分布就會(huì)更加接近于標(biāo)準(zhǔn)分布,更符合模型的假設(shè),同時(shí)避免了一些特征過大或過小導(dǎo)致的問題。

常見的歸一化方法包括:

  • 最小-最大歸一化:將數(shù)據(jù)縮放到給定的區(qū)間內(nèi),通常是[0,1]或[-1,1]。
  • z-score歸一化:將數(shù)據(jù)縮放為均值為0,標(biāo)準(zhǔn)方差為1的正態(tài)分布。
最小-最大歸一化

最小-最大歸一化方法是將數(shù)據(jù)線性縮放到一個(gè)給定的范圍之內(nèi),通常是[0, 1]或[-1, 1]。具體來說,通過以下公式將數(shù)據(jù)縮放到指定區(qū)間:
x ′ = x ? x m i n x m a x ? x m i n x'=\frac{x-x_{min}}{x_{max}-x_{min}} x=xmax??xmin?x?xmin??

其中 x x x是原始數(shù)據(jù), x m i n x_{min} xmin?和分 x m a x x_{max} xmax?別是數(shù)據(jù)的最小值和最大值, x ′ x' x是歸一化后的數(shù)據(jù)。

最小-最大歸一化的實(shí)現(xiàn)代碼如下:

def min_max_normalization(data):
    """最大-最小歸一化"""
    return (data - np.min(data)) / (np.max(data) - np.min(data))

data = np.array([1, 2, 3, 4, 5])
print("原始數(shù)據(jù):", data)
print("最大-最小歸一化后:", min_max_normalization(data))

輸出結(jié)果為:

原始數(shù)據(jù): [1 2 3 4 5]
最大-最小歸一化后: [0.   0.25 0.5  0.75 1.  ]

可以看到,在使用最大-最小歸一化后,數(shù)據(jù)被縮放到[0,1][0,1]的范圍內(nèi)。

z-score歸一化

z-score歸一化方法是將數(shù)據(jù)縮放為均值為0,標(biāo)準(zhǔn)差為1的分布,類似于一個(gè)標(biāo)準(zhǔn)正態(tài)分布。具體來說,通過以下公式將數(shù)據(jù)轉(zhuǎn)換為z-score:
x ′ = x ? μ σ x'=\frac{x-\mu}{\sigma} x=σx?μ?
其中 x x x是原始數(shù)據(jù), μ \mu μ是數(shù)據(jù)的均值, σ σ σ是數(shù)據(jù)的標(biāo)準(zhǔn)差, x ’ x’ x是歸一化后的數(shù)據(jù)。

我們使用一個(gè)隨機(jī)的數(shù)據(jù)集,預(yù)處理時(shí)使用z-score歸一化:

def z_score_normalization(data):
    """z-score歸一化"""
    mean = np.mean(data)
    std = np.std(data)
    return (data - mean) / std

np.random.seed(1)
data = np.random.randn(5)
print("原始數(shù)據(jù):", data)
print("z-score歸一化后:", z_score_normalization(data))

輸出結(jié)果為:

原始數(shù)據(jù): [ 1.62434536 -0.61175641 -0.52817175 -1.07296862  0.86540763]
z-score歸一化后: [ 1.11627197 -0.3168376  -0.2550353  -0.88956586  0.34516678]

可以看到,在使用z-score歸一化后,原始數(shù)據(jù)被轉(zhuǎn)換為均值為0,標(biāo)準(zhǔn)差為1的分布。

小數(shù)定標(biāo)標(biāo)準(zhǔn)化

小數(shù)定標(biāo)標(biāo)準(zhǔn)化(Decimal Scaling)是一種簡(jiǎn)單的歸一化方法,它把值都放大或縮小成某個(gè)基數(shù)的整數(shù)次冪,通常取10的整數(shù)次冪。這種方法在計(jì)算機(jī)內(nèi)部實(shí)現(xiàn)比較容易,因?yàn)橹恍枰蜃蠡蛳蛴乙苿?dòng)小數(shù)點(diǎn)即可。
x ′ = x 1 0 k x'=\frac{x}{10^k} x=10kx?
其中 x x x是原始數(shù)據(jù), k k k是要移動(dòng)的冪次。

我們使用一個(gè)含有較大值的數(shù)據(jù)集,預(yù)處理時(shí)使用小數(shù)定標(biāo)標(biāo)準(zhǔn)化:

import numpy as np

def decimal_scaling(data, k):
    """小數(shù)定標(biāo)標(biāo)準(zhǔn)化"""
    return data / (10 ** k)

data = np.array([1000, 2000, 3000, 4000, 5000])
print("原始數(shù)據(jù):", data)
print("小數(shù)定標(biāo)標(biāo)準(zhǔn)化后:", decimal_scaling(data, 3))

輸出結(jié)果為:

原始數(shù)據(jù): [1000 2000 3000 4000 5000]
小數(shù)定標(biāo)標(biāo)準(zhǔn)化后: [1. 2. 3. 4. 5.]

可以看到,在使用小數(shù)定標(biāo)標(biāo)準(zhǔn)化后,原始數(shù)據(jù)矩陣中的每個(gè)值都被縮小了103103倍。

范圍縮放法

范圍縮放法(Scaling)是一種將原始數(shù)據(jù)縮放到特定區(qū)間的常用手段,常見的應(yīng)用是將數(shù)據(jù)縮放到一個(gè)為實(shí)現(xiàn)指定功能而設(shè)置的特定取值范圍內(nèi)。
x ′ = x ? x m i n a x'=\frac{x-x_{min}}{a} x=ax?xmin??
其中x是原始數(shù)據(jù), x m i n x_{min} xmin?是數(shù)據(jù)的最小值,a是數(shù)據(jù)的范圍。

我們使用一個(gè)含有不同范圍的數(shù)據(jù)集,預(yù)處理時(shí)使用范圍縮放法:

def scaling(data, x_min, x_max, a):
    """范圍縮放法"""
    return (data - x_min) / a

data = np.array([1, 2, 3, 4, 5])
print("原始數(shù)據(jù):", data)
print("范圍縮放法后:", scaling(data, np.min(data), np.max(data), 2))

輸出結(jié)果為:

原始數(shù)據(jù): [1 2 3 4 5]
范圍縮放法后: [0.   0.25 0.5  0.75 1.  ]

可以看到,在使用范圍縮放法后,數(shù)據(jù)被縮放到[0,2][0,2]的范圍內(nèi)。

Sigmoid歸一化

我們使用一個(gè)隨機(jī)的數(shù)據(jù)集,預(yù)處理時(shí)使用Sigmoid歸一化:

def sigmoid_normalization(data):
    """Sigmoid歸一化"""
    return 1 / (1 + np.exp(-data))

np.random.seed(1)
data = np.random.randn(5)
print("原始數(shù)據(jù):", data)
print("Sigmoid歸一化后:", sigmoid_normalization(data))

輸出結(jié)果為:

原始數(shù)據(jù): [ 1.62434536 -0.61175641 -0.52817175 -1.07296862  0.86540763]
Sigmoid歸一化后: [0.83540418 0.35010885 0.37144016 0.25415724 0.70419688]

可以看到,在使用Sigmoid歸一化后,原始數(shù)據(jù)矩陣中的每個(gè)值都被轉(zhuǎn)化到[0,1][0,1]的區(qū)間內(nèi)。

Tanh歸一化

我們使用一個(gè)隨機(jī)的數(shù)據(jù)集,預(yù)處理時(shí)使用Tanh歸一化:

def tanh_normalization(data):
    """Tanh歸一化"""
    return np.tanh(data)

np.random.seed(1)
data = np.random.randn(5)
print("原始數(shù)據(jù):", data)
print("Tanh歸一化后:", tanh_normalization(data))

輸出結(jié)果為:

原始數(shù)據(jù): [ 1.62434536 -0.61175641 -0.52817175 -1.07296862  0.86540763]
Tanh歸一化后: [ 0.9255347  -0.54185332 -0.47922714 -0.79410112  0.69529199]

可以看到,在使用Tanh歸一化后,原始數(shù)據(jù)被轉(zhuǎn)換為[?1,1][?1,1]的區(qū)間內(nèi)。

小結(jié)

歸一化是深度學(xué)習(xí)中一個(gè)重要的預(yù)處理步驟,它可以將數(shù)據(jù)的范圍縮放到一個(gè)合適的區(qū)間內(nèi),提高模型的穩(wěn)定性和準(zhǔn)確性。本文介紹了幾種歸一化,并提供了實(shí)現(xiàn)代碼。在選擇歸一化的方法時(shí),需要根據(jù)具體的情況進(jìn)行選擇。

平衡數(shù)據(jù)集

在某些情況下,數(shù)據(jù)集可能存在類別不平衡的問題,即不同類別的樣本數(shù)量不同。這會(huì)導(dǎo)致模型對(duì)數(shù)量較少的類別的準(zhǔn)確性下降。

常用的平衡數(shù)據(jù)集方法包括:

  • 過采樣:在數(shù)量較少的類別中增加樣本數(shù)。
  • 欠采樣:減少數(shù)量較多的類別的樣本數(shù)。
  • 合成數(shù)據(jù):合成與數(shù)據(jù)集相似的數(shù)據(jù)
  • 加權(quán):給不同數(shù)據(jù)分配不同權(quán)重

在深度學(xué)習(xí)模型的訓(xùn)練過程中,數(shù)據(jù)集中不同類別的樣本數(shù)量不一致容易導(dǎo)致模型訓(xùn)練過程中出現(xiàn)偏差,使得模型預(yù)測(cè)結(jié)果不理想。為此,常常需要對(duì)數(shù)據(jù)集進(jìn)行平衡,使得不同類別的樣本數(shù)量相當(dāng),提高模型預(yù)測(cè)能力和魯棒性。主要的數(shù)據(jù)平衡方法包括:

欠采樣(undersampling)

欠采樣方法主要用于解決數(shù)據(jù)集中某些類別的樣本相對(duì)較多,而其他類別的樣本數(shù)量較少的情況。欠采樣的目標(biāo)是通過減少多數(shù)類別樣本數(shù)量,使得多數(shù)類別和少數(shù)類別具有相近的樣本數(shù)量。

Python示例:

from collections import Counter
from sklearn.datasets import make_classification
from imblearn.under_sampling import RandomUnderSampler

# 生成不均衡的二分類數(shù)據(jù)
X, y = make_classification(n_samples=10000, n_features=10, n_classes=2, weights=[0.9, 0.1])

# 查看樣本數(shù)量
print(Counter(y))  # 輸出: Counter({0: 8995, 1: 1005})

# 對(duì)數(shù)據(jù)進(jìn)行欠采樣
rus = RandomUnderSampler(random_state=42)
X_resampled, y_resampled = rus.fit_resample(X, y)

# 查看欠采樣后的樣本數(shù)量
print(Counter(y_resampled))  # 輸出: Counter({0: 1005, 1: 1005})
過采樣(oversampling)

過采樣方法主要用于解決數(shù)據(jù)集中某些類別的樣本相對(duì)較少,而其他類別的樣本數(shù)量較多的情況。過采樣的目標(biāo)是通過增加少數(shù)類別樣本數(shù)量,使得多數(shù)類別和少數(shù)類別具有相近的樣本數(shù)量。

Python示例:

from collections import Counter
from sklearn.datasets import make_classification
from imblearn.over_sampling import RandomOverSampler

# 生成不均衡的二分類數(shù)據(jù)
X, y = make_classification(n_samples=10000, n_features=10, n_classes=2, weights=[0.1, 0.9])

# 查看樣本數(shù)量
print(Counter(y))  # 輸出: Counter({1: 8998, 0: 1002})

# 對(duì)數(shù)據(jù)進(jìn)行過采樣
ros = RandomOverSampler(random_state=42)
X_resampled, y_resampled = ros.fit_resample(X, y)

# 查看過采樣后的樣本數(shù)量
print(Counter(y_resampled))  # 輸出: Counter({0: 8998, 1: 8998})
合成數(shù)據(jù)(data synthesis)

合成數(shù)據(jù)方法主要是通過對(duì)數(shù)據(jù)進(jìn)行人工合成,產(chǎn)生與原始數(shù)據(jù)集不同但具有相似特征和類別分布的新的合成數(shù)據(jù),常用的方法有SMOTE等。

Python示例:

from collections import Counter
from sklearn.datasets import make_classification
from imblearn.over_sampling import SMOTE

# 生成不均衡的二分類數(shù)據(jù)
X, y = make_classification(n_samples=10000, n_features=10, n_classes=2, weights=[0.1, 0.9])

# 查看樣本數(shù)量
print(Counter(y))  # 輸出: Counter({1: 9007, 0: 993})

# 對(duì)數(shù)據(jù)進(jìn)行SMOTE合成
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X, y)

# 查看SMOTE合成后的樣本數(shù)量
print(Counter(y_resampled))  # 輸出: Counter({0: 9007, 1: 9007})
加權(quán)(weighted)

加權(quán)方法主要是通過對(duì)數(shù)據(jù)樣本的權(quán)重進(jìn)行調(diào)整,給予少數(shù)類別更高的權(quán)重,使得在訓(xùn)練模型的過程中,少數(shù)類別樣本更加受到重視,提高在少數(shù)類別上的分類能力。

Python示例:

from collections import Counter
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report

# 生成不均衡的二分類數(shù)據(jù)
X, y = make_classification(n_samples=10000, n_features=10, n_classes=2, weights=[0.1, 0.9])

# 查看樣本數(shù)量
print(Counter(y))  # 輸出: Counter({1: 8977, 0: 1023})

# 對(duì)樣本進(jìn)行加權(quán)
sample_weight = [1 if i == 1 else 10 for i in y]

# 建立邏輯回歸模型
lr = LogisticRegression(class_weight='balanced', random_state=42, solver='lbfgs')
lr.fit(X, y, sample_weight=sample_weight)

# 輸出分類報(bào)告
y_pred = lr.predict(X)
print(classification_report(y, y_pred))

其中,sample_weight參數(shù)表示對(duì)每個(gè)樣本賦予的權(quán)重,將類別為0的樣本權(quán)重設(shè)置為1,類別為1的樣本權(quán)重設(shè)置為10。class_weight參數(shù)傳入balanced表示自動(dòng)平衡類別權(quán)重,讓模型更關(guān)注少數(shù)類別的分類精度。

總結(jié)

本教程介紹了數(shù)據(jù)預(yù)處理的基礎(chǔ)技巧,包括數(shù)據(jù)清洗、歸一化和平衡數(shù)據(jù)集,并給出了一些處理的代碼演示。這些方法可以提高模型的準(zhǔn)確性和穩(wěn)定性,適用于各類深度學(xué)習(xí)任務(wù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-428581.html

到了這里,關(guān)于數(shù)據(jù)預(yù)處理簡(jiǎn)單介紹,并給出具體的代碼示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • GPT-4科研實(shí)踐:數(shù)據(jù)可視化、統(tǒng)計(jì)分析、編程、機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘、數(shù)據(jù)預(yù)處理、代碼優(yōu)化、科研方法論

    GPT-4科研實(shí)踐:數(shù)據(jù)可視化、統(tǒng)計(jì)分析、編程、機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘、數(shù)據(jù)預(yù)處理、代碼優(yōu)化、科研方法論

    查看原文GPT4科研實(shí)踐技術(shù)與AI繪圖 GPT對(duì)于每個(gè)科研人員已經(jīng)成為不可或缺的輔助工具,不同的研究領(lǐng)域和項(xiàng)目具有不同的需求。 例如在科研編程、繪圖領(lǐng)域 : 1、編程建議和示例代碼: ?無論你使用的編程語(yǔ)言是Python、R、MATLAB還是其他語(yǔ)言,都可以為你提供相關(guān)的代碼示例。

    2024年02月07日
    瀏覽(104)
  • 【W(wǎng)ebpack】預(yù)處理器 - loader配置介紹

    預(yù)處理器 (loader) ,的主要功能是賦予了 Webpack 可處理不同資源類型的能力,極大豐富了其可擴(kuò)展性。 一個(gè)Web工程通常會(huì)包含HTML、JS、CSS、模板、圖片、字體等多種類型的靜態(tài)資源,并且這些資源之間都存在著某種聯(lián)系。對(duì)于 Webpack 來說,所有這些靜態(tài)資源都是模塊,可以像

    2024年01月17日
    瀏覽(23)
  • 2023高教社數(shù)學(xué)建模國(guó)賽C題 - 蔬菜類商品的自動(dòng)定價(jià)與補(bǔ)貨決策(數(shù)據(jù)預(yù)處理部分)附詳細(xì)代碼

    2023高教社數(shù)學(xué)建模國(guó)賽C題 - 蔬菜類商品的自動(dòng)定價(jià)與補(bǔ)貨決策(數(shù)據(jù)預(yù)處理部分)附詳細(xì)代碼

    C題用到了vlookup函數(shù)將所有數(shù)據(jù)同類項(xiàng)進(jìn)行合并,公式如下: 單品類:=VLOOKUP(C2,[附件1.xlsx]Sheet1!A$2:D$252,2,FALSE) 大類:?=VLOOKUP(C2,[附件1.xlsx]Sheet1!A$2:D$252,4,FALSE) 批發(fā)價(jià)格:?=VLOOKUP(C2,[附件3.xlsx]Sheet1!B$2:C$55983,2,FALSE) 單品損耗率:?=VLOOKUP(H2,[附件4.xlsx]Sheet1!B$2:CS252,2,FALSE) 價(jià)格=單位成本

    2024年02月08日
    瀏覽(26)
  • 數(shù)據(jù)采集與預(yù)處理01: 項(xiàng)目1 數(shù)據(jù)采集與預(yù)處理準(zhǔn)備

    數(shù)據(jù)采集與預(yù)處理01: 項(xiàng)目1 數(shù)據(jù)采集與預(yù)處理準(zhǔn)備

    數(shù)據(jù)采集:足夠的數(shù)據(jù)量是企業(yè)大數(shù)據(jù)戰(zhàn)略建設(shè)的基礎(chǔ),因此數(shù)據(jù)采集成為大數(shù)據(jù)分析的前站。數(shù)據(jù)采集是大數(shù)據(jù)價(jià)值挖掘中重要的一環(huán),其后的分析挖掘都建立在數(shù)據(jù)采集的基礎(chǔ)上。大數(shù)據(jù)技術(shù)的意義確實(shí)不在于掌握規(guī)模龐大的數(shù)據(jù)信息,而在于對(duì)這些數(shù)據(jù)進(jìn)行智能處理,

    2024年01月25日
    瀏覽(27)
  • 數(shù)據(jù)預(yù)處理matlab matlab數(shù)據(jù)的獲取、預(yù)處理、統(tǒng)計(jì)、可視化、降維

    1.1 從Excel中獲取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步確定導(dǎo)入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 對(duì)象, 再用 opts.Name=Value 的格式逐個(gè)添加。 例3: 將導(dǎo)入信息存到變量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月15日
    瀏覽(55)
  • 大數(shù)據(jù)采集技術(shù)與預(yù)處理學(xué)習(xí)一:大數(shù)據(jù)概念、數(shù)據(jù)預(yù)處理、網(wǎng)絡(luò)數(shù)據(jù)采集

    大數(shù)據(jù)采集技術(shù)與預(yù)處理學(xué)習(xí)一:大數(shù)據(jù)概念、數(shù)據(jù)預(yù)處理、網(wǎng)絡(luò)數(shù)據(jù)采集

    目錄 大數(shù)據(jù)概念: 1.數(shù)據(jù)采集過程中會(huì)采集哪些類型的數(shù)據(jù)? 2.非結(jié)構(gòu)化數(shù)據(jù)采集的特點(diǎn)是什么? 3.請(qǐng)闡述傳統(tǒng)的數(shù)據(jù)采集與大數(shù)據(jù)采集的區(qū)別? ???????????????4.大數(shù)據(jù)采集的數(shù)據(jù)源有哪些?針對(duì)不同的數(shù)據(jù)源,我們可以采用哪些不同的方法和工具? 數(shù)據(jù)

    2024年01月25日
    瀏覽(30)
  • 數(shù)據(jù)預(yù)處理之?dāng)?shù)據(jù)規(guī)約

    數(shù)據(jù)預(yù)處理之?dāng)?shù)據(jù)規(guī)約

    目錄 一、前言 二、PCA的主要參數(shù): 三、數(shù)據(jù)歸約任務(wù)1 四、數(shù)據(jù)規(guī)約任務(wù)2 PCA(Principal Component Analysis),即主成分分析方法,是一種使用最廣泛的數(shù)據(jù)降維算法。PCA的主要思想是將n維特征映射到k維上,這k維是全新的正交特征也被稱為主成分,是在原有n維特征的基礎(chǔ)上重新構(gòu)

    2024年02月12日
    瀏覽(29)
  • 數(shù)據(jù)分析--數(shù)據(jù)預(yù)處理

    本文主要是個(gè)人的學(xué)習(xí)筆記總結(jié),數(shù)據(jù)預(yù)處理的基本思路和方法,包括一些方法的使用示例和參數(shù)解釋,具體的數(shù)據(jù)預(yù)處理案例case詳見其他文章。如有錯(cuò)誤之處還請(qǐng)指正! 目錄 數(shù)據(jù)的質(zhì)量評(píng)定 數(shù)據(jù)處理步驟 缺失值的處理 標(biāo)記缺失值 刪除 缺失值 填充 缺失值 重復(fù)值處理 異

    2024年02月04日
    瀏覽(28)
  • C語(yǔ)言中程序的編譯(預(yù)處理操作)+鏈接詳解(詳細(xì)介紹程序預(yù)編譯過程)

    C語(yǔ)言中程序的編譯(預(yù)處理操作)+鏈接詳解(詳細(xì)介紹程序預(yù)編譯過程)

    今天我們來學(xué)習(xí)C語(yǔ)言中程序的編譯和鏈接是如何進(jìn)行的。 在ANSI C的任何一種實(shí)現(xiàn)中,存在兩個(gè)不同的環(huán)境。 第1種是翻譯環(huán)境,在這個(gè)環(huán)境中源代碼被轉(zhuǎn)換為可執(zhí)行的機(jī)器指令。 第2種是執(zhí)行環(huán)境,它用于實(shí)際執(zhí)行代碼。 本文主要是介紹預(yù)編譯階段的相關(guān)知識(shí)。 1.組成一個(gè)程

    2023年04月09日
    瀏覽(34)
  • 數(shù)據(jù)清洗和預(yù)處理

    預(yù)計(jì)更新 一、 爬蟲技術(shù)概述 1.1 什么是爬蟲技術(shù) 1.2 爬蟲技術(shù)的應(yīng)用領(lǐng)域 1.3 爬蟲技術(shù)的工作原理 二、 網(wǎng)絡(luò)協(xié)議和HTTP協(xié)議 2.1 網(wǎng)絡(luò)協(xié)議概述 2.2 HTTP協(xié)議介紹 2.3 HTTP請(qǐng)求和響應(yīng) 三、 Python基礎(chǔ) 3.1 Python語(yǔ)言概述 3.2 Python的基本數(shù)據(jù)類型 3.3 Python的流程控制語(yǔ)句 3.4 Python的函數(shù)和模

    2024年02月07日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包