在數據分析、機器學習等場景下,經常需要對數值型數據進行範圍縮放,以便於在模型中使用。其中,線性範圍縮放是一種常用的方法。Python提供了多種實現線性範圍縮放的方式,例如使用numpy和sklearn庫中的函數,以及手動編寫代碼實現。
一、numpy實現線性範圍縮放
numpy是Python中用於科學計算的常用庫之一,其中包含了常用的數組和矩陣操作函數。其中,利用numpy中的函數可以方便地實現線性範圍縮放。
import numpy as np
x = np.array([1, 2, 3, 4, 5])
scaled_x = (x - np.min(x)) / (np.max(x) - np.min(x))
print(scaled_x)
其中,首先定義了一個包含5個整數的numpy數組x,然後使用np.min和np.max函數獲取數組中的最小值和最大值,計算出縮放比例。最後,通過將x減去最小值併除以縮放比例的方式進行線性範圍縮放,並將結果保存到scaled_x中。
二、sklearn實現線性範圍縮放
sklearn是Python中常用的機器學習庫,其中包含了多種常用的預處理函數,用於對數據進行預處理和轉換。
from sklearn.preprocessing import MinMaxScaler
x = [[1], [2], [3], [4], [5]]
scaler = MinMaxScaler()
scaled_x = scaler.fit_transform(x)
print(scaled_x)
其中,首先定義了一個包含5個一維列表的列表x,然後使用sklearn中的MinMaxScaler函數創建一個縮放器對象。接着,使用fit_transform方法對數據集進行縮放,並將結果保存到scaled_x中。
三、手動實現線性範圍縮放
在掌握了numpy和sklearn提供的函數實現方法後,我們還可以手動編寫代碼實現線性範圍縮放。
def linear_scale(data):
min_val = min(data)
max_val = max(data)
scaled_data = []
for val in data:
scaled_val = (val - min_val) / (max_val - min_val)
scaled_data.append(scaled_val)
return scaled_data
x = [1, 2, 3, 4, 5]
scaled_x = linear_scale(x)
print(scaled_x)
其中,我們定義了一個名為linear_scale的函數,輸入參數為一個列表data。函數內部使用Python自帶的min和max函數獲取列表中的最小值和最大值,計算出縮放比例。然後,通過遍歷列表並將每個數值減去最小值併除以縮放比例的方式進行線性範圍縮放,將結果逐個添加到scaled_data列表中,並最後將結果返回。
四、總結
本文介紹了Python中實現線性範圍縮放的三種方法:利用numpy中的函數、利用sklearn中的函數以及手動編寫代碼。使用這些方法可以方便地對數值型數據進行預處理,以便於在機器學習模型中使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/152541.html