您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“如何分析sklearn基礎及數據處理”。內容詳細易懂,對“如何分析sklearn基礎及數據處理”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“如何分析sklearn基礎及數據處理”的知識吧。
sklearn 庫整合了多種機器學習算法,可在數據分析過程快速建立模型。通過 pandas 庫雖然已經提供數據合并、清洗、標準化(離差標準化、標準差標準化、小數定標標準化),為構建機器學習模型對數據特征還需處理更多預處操作,因此 sklearn 將相關預處理功能封裝為統一接口 --- 轉換器( Transformer )。使用 sklearn 轉換器能夠實現對傳入的 NumPy 數組進行標準化處理、二值化、 PCA 將為等操作。
說到轉換數據,實際上 padas 庫也有提供了啞變量處理類別數據、離散化連續數據等功能。這也是為什么僅學 SQL 無法完全替代的 pandas 功能的原因之一。但 sklearn 引入轉換器能夠對訓練集和測試集操作能夠更加方便統一。
sklearn 也提供了便于學習的經典數據集,這些數據集類似字典方式存放。通過 ancanda中 Spyder 變量界面能夠直觀的看到這些數據及其值。通過這些數據我們也能領會數據分析之前對數據格式最終搞成什么樣子。例如:數據( data )、標簽( target )、特性(feature )等三個基本要素。后續訓練集和測試的拆分及進行訓練都離不開這些準備數據。
1、加載datasats數據集
如果需要加載某個數據集,則可以將對應的函數賦值給某個變量,再次強調數據集三要素:數據(data)、標簽(target)、特性(feature)。如下面代碼所示:
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()##將數據集賦值給iris變量
print('breast_cancer數據集的長度為:',len(cancer))
print('breast_cancer數據集的類型為:',type(cancer))
cancer_data = cancer['data']
print('breast_cancer數據集的數據為:','\n',cancer_data)
cancer_target = cancer['target'] ## 取出數據集的標簽
print('breast_cancer數據集的標簽為:\n',cancer_target)
cancer_names = cancer['feature_names'] ## 取出數據集的特征名
print('breast_cancer數據集的特征名為:\n',cancer_names)
cancer_desc = cancer['DESCR'] ## 取出數據集的描述信息
print('breast_cancer數據集的描述信息為:\n',cancer_desc)
2、將數據劃分為訓練集和測試集
數據為什么要拆分?因為這是機器學習方法創新點。讓計算思維來發掘數據內部的關聯關系。這個方法不像傳統的實驗思維和理論思維。機器學習思路就是根據給定標簽訓練集來找出數據內在規律和關系。
sklearn 的 model_selection 模塊提供了 train_test_split 函數,能夠對數據集進行拆分。
print('原始數據集數據的形狀為:',cancer_data.shape)
print('原始數據集標簽的形狀為:',cancer_target.shape)
from sklearn.model_selection import train_test_split
cancer_data_train, cancer_data_test,\
cancer_target_train, cancer_target_test = \
train_test_split(cancer_data, cancer_target,
test_size=0.2, random_state=42)
print('訓練集數據的形狀為:',cancer_data_train.shape)
print('訓練集標簽的形狀為:',cancer_target_train.shape)
print('測試集數據的形狀為:',cancer_data_test.shape)
print('測試集標簽的形狀為:',cancer_target_test.shape)
3 、通過 sklearn 轉換器進行數據預處理和降維
為了消除特征之間量綱和取值范圍差異可能會造成的影響需要對數據進行標準化處理,也叫做規范化處理。實際上規范化就是減少空間復雜度的過程,PCA降維對應于時間復雜度降低過程。
sklearn 的轉換器主要包括 3 個方法: fit 、 transform 、 fit_transform 等。
鄭州不孕不育醫院:http://www.xbzztj.com/
import numpy as np
from sklearn.preprocessing import MinMaxScaler
Scaler = MinMaxScaler().fit(cancer_data_train) ##生成規則
##將規則應用于訓練集
cancer_trainScaler = Scaler.transform(cancer_data_train)
##將規則應用于測試集
##cancer_testScaler = Scaler.transform(cancer_data_test)
Scaler = MinMaxScaler().fit(cancer_data_test) ##生成規則
cancer_testScaler = Scaler.transform(cancer_data_test)
print('離差標準化前訓練集數據的最小值為:',np.min(cancer_data_train))
print('離差標準化后訓練集數據的最小值為:',np.min(cancer_trainScaler))
print('離差標準化前訓練集數據的最大值為:',np.max(cancer_data_train))
print('離差標準化后訓練集數據的最大值為:',np.max(cancer_trainScaler))
print('離差標準化前測試集數據的最小值為:',np.min(cancer_data_test))
print('離差標準化后測試集數據的最小值為:',np.min(cancer_testScaler))
print('離差標準化前測試集數據的最大值為:',np.max(cancer_data_test))
print('離差標準化后測試集數據的最大值為:',np.max(cancer_testScaler))
from sklearn.decomposition import PCA
pca_model = PCA(n_components=10).fit(cancer_trainScaler) ##生成規則
cancer_trainPca = pca_model.transform(cancer_trainScaler) ##將規則應用于訓練集
cancer_testPca = pca_model.transform(cancer_testScaler) ##將規則應用于測試集
print('PCA降維前訓練集數據的形狀為:',cancer_trainScaler.shape)
print('PCA降維后訓練集數據的形狀為:',cancer_trainPca.shape)
print('PCA降維前測試集數據的形狀為:',cancer_testScaler.shape)
print('PCA降維后測試集數據的形狀為:',cancer_testPca.shape)
關于如何分析sklearn基礎及數據處理就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。