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