溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何分析sklearn基礎(chǔ)及數(shù)據(jù)處理

發(fā)布時(shí)間:2022-01-10 11:10:13 來(lái)源:億速云 閱讀:148 作者:柒染 欄目:大數(shù)據(jù)

這篇文章跟大家分析一下“如何分析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)站!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI