最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?sklearn庫三種常用編碼格式實(shí)例

 更新時(shí)間:2022年09月13日 17:27:05   作者:LoveAndProgram  
這篇文章主要為大家介紹了Python?sklearn庫三種常用編碼格式實(shí)例展示,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

OneHotEncoder獨(dú)熱編碼實(shí)例

class sklearn.preprocessing.OneHotEncoder(*, categories='auto', drop=None, sparse=True, dtype=<class 'numpy.float64'>, handle_unknown='error')
  • 目的:將分類要素編碼為one-hot數(shù)字?jǐn)?shù)組
  • 輸入:為整數(shù)或字符串之類的數(shù)組,表示分類(離散)特征所采用的值。
  • 這將為每個(gè)類別創(chuàng)建一個(gè)二進(jìn)制列,并返回一個(gè)稀疏矩陣或密集數(shù)組(取決于稀疏參數(shù))默認(rèn)情況下,編碼器會(huì)根據(jù)每個(gè)功能中的唯一值得出類別(可改為手動(dòng))
  • 適用于GBDT、XGBoost、Lgb模型中效果都不錯(cuò) 注意:在最新版本的sklearn中,所有的數(shù)據(jù)都應(yīng)該是二維矩陣,所以當(dāng)它只是單獨(dú)一行或一列需要進(jìn)行reshape(1, -1)數(shù)據(jù)轉(zhuǎn)換,否則會(huì)報(bào)錯(cuò)ValueError: Expected 2D array, got 1D array instead

以下面數(shù)據(jù)為例(數(shù)據(jù)源):

from sklearn.preprocessing import OneHotEncoder
import pandas as pd
train = pd.read_csv('./train.csv')
enc = OneHotEncoder(handle_unknown='ignore')
numerical_feature = ['policy_annual_premium','insured_education_level','capital-gains','incident_type','incident_severity',\
                   'property_damage','bodily_injuries','police_report_available','total_claim_amount','injury_claim','property_claim','vehicle_claim']
data = train[numerical_feature]
c = enc.fit_transform(data.values.reshape(1,-1))
c.toarray()#查看轉(zhuǎn)化后的數(shù)據(jù)

輸入數(shù)據(jù)由處理后的這種格式:

經(jīng)過編碼后得出編碼后的數(shù)據(jù)(數(shù)據(jù)量過大用元組的形式展現(xiàn)),全部由二進(jìn)制數(shù)0、1表示:

注意:在一對(duì)多的情況下y標(biāo)簽需要使用 sklearn.preprocessing.LabelBinarizer() 函數(shù)將多類標(biāo)簽轉(zhuǎn)換為二進(jìn)制標(biāo)簽

LabelEncoder標(biāo)簽編碼實(shí)例

  • 目的:對(duì)目標(biāo)標(biāo)簽進(jìn)行編碼,其值介于0和n_classes-1之間
  • 輸入可以是數(shù)字標(biāo)簽,也可以是非數(shù)字標(biāo)簽,這里需要注意的是返回的類型是NumPy的array形式,上述OneHotEncoder ()返回的是系數(shù)矩陣形式。
from sklearn.preprocessing import LabelEncoder
Enc=LabelEncoder()
def yuchuli(data):
    numerical_feature = ['policy_annual_premium','insured_education_level','capital-gains','incident_type','incident_severity',\
                       'property_damage','bodily_injuries','police_report_available','total_claim_amount','injury_claim','property_claim','vehicle_claim','auto_year']
data=pd.DataFrame()
for fea in numerical_feature:
    data.insert(len(data.columns),fea,Enc.fit_transform(train[fea].values))
    return data
train_data = yuchuli(train)

經(jīng)過編碼后得出編碼后的數(shù)據(jù):

其中最清晰的就是標(biāo)黑的property_damage一列,使用One-hot編碼轉(zhuǎn)換后變成?屬于0,Yes屬于2,No屬于1。

LabelEncoder()只有一個(gè)class_屬性,是查看每個(gè)類別的標(biāo)簽,在上述基礎(chǔ)上嘗試即最后一個(gè)特征所對(duì)應(yīng)的屬性標(biāo)簽,通俗來講就是這里面需要被編碼的個(gè)數(shù)就是這些數(shù):

  • 果然不出所料,因?yàn)檫@是循環(huán),所以對(duì)應(yīng)的最后一個(gè)是auto_year,原數(shù)據(jù)如下圖:

注意:開頭提到的編碼值介于 0 和 n_classes-1 之間于下圖可以清晰理解,里面有n種不同的值,就分成 n-1 類,因?yàn)檫€包括 0

不過 LabelEncoder 標(biāo)簽編碼我想對(duì)用的比較少,一般我都是使用 One-hot 獨(dú)熱編碼去處理離散特征。

OrdinalEncoder特征編碼實(shí)例

  • 目的:將分類特征編碼為整數(shù)數(shù)組。
  • 輸入:是一個(gè)類似數(shù)組的整數(shù)或字符串,表示分類(離散)特征所采用的值,特征會(huì)被轉(zhuǎn)換為序數(shù)整數(shù)
from sklearn.preprocessing import OrdinalEncoder
import pandas as pd
import numpy as np
train = pd.read_csv('./train.csv')
test = pd.read_csv('./test.csv')
train.drop_duplicates()
Enc=LabelEncoder()
Enc=OneHotEncoder()
def yuchuli(data_train):
    numerical_feature = ['incident_severity', 'insured_hobbies', 'vehicle_claim', 'auto_model', 'insured_education_level', 'insured_zip', 'insured_relationship', 'incident_date','auto_year']
    data = pd.DataFrame()
    for fea in numerical_feature:
        data.insert(len(data.columns), fea, (Enc.fit_transform(train[fea].values.reshape(-1, 1))).tolist())
#     return data
train_data = yuchuli(train)

但是我通過輸出每一個(gè)特征結(jié)果的時(shí)候發(fā)現(xiàn)他和LabelEncoder()編碼出的數(shù)據(jù)大差不離,特征編碼則通過categories_查看編碼特征

總而言之就是結(jié)果數(shù)據(jù)是一樣的,但是類型上是不同的,我通過本文了解到它們本質(zhì)的區(qū)別:

  • OrdinalEncoder 用于形狀為 2D 的數(shù)據(jù) (n_samples, n_features)
  • LabelEncoder用于形狀為 1D 的數(shù)據(jù)(n_samples,)

至于為什么,我們從上面兩者的代碼中就可以發(fā)現(xiàn),OrdinalEncoder 編碼出的數(shù)據(jù)要想fit_transform擬合,就得使用.reshape(-1, 1)轉(zhuǎn)換成二維數(shù)據(jù),這一塊和OneHotEncoder編碼相同,而LabelEncoder則直接放入即可擬合出數(shù)據(jù)來,這里也是使用過程中最容易出現(xiàn)的問題。

OrdinalEncoder編碼還是有兩點(diǎn)需要注意的,第一點(diǎn),他可以接受np.nan缺失值,可根據(jù)需求選擇是否處理缺失值;第二點(diǎn),他有 這么一個(gè)參數(shù)->handle_unknown=error(默認(rèn)) ,通過判斷是否存在未知的特征來選擇是否繼續(xù)進(jìn)行程序,當(dāng)我們們選擇handle_unknown=use_encoded_value時(shí)會(huì)將存在的未知特征打上unknown_value標(biāo)簽

#將缺失值全部處理為-1
Enc.set_params(encoded_missing_value=-1,handle_unknown=use_encoded_value).fit_transform()

以上就是Python sklearn庫三種常用編碼格式實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于Python sklearn庫編碼格式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入了解Python中字符串格式化工具f-strings的使用

    深入了解Python中字符串格式化工具f-strings的使用

    從Python?3.6版本開始,引入了一種新的字符串格式化機(jī)制,即f-strings,它強(qiáng)大且易于使用的字符串格式化方式,本文就來聊聊他的具體使用,希望對(duì)大家有所幫助
    2023-05-05
  • python 生成器和迭代器的原理解析

    python 生成器和迭代器的原理解析

    這篇文章主要介紹了python 生成器和迭代器的原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Django使用HttpResponse返回圖片并顯示的方法

    Django使用HttpResponse返回圖片并顯示的方法

    今天小編就為大家分享一篇Django使用HttpResponse返回圖片并顯示的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 如何利用python實(shí)現(xiàn)圖片批處理

    如何利用python實(shí)現(xiàn)圖片批處理

    這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)圖片批處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python+pandas生成指定日期和重采樣的方法

    python+pandas生成指定日期和重采樣的方法

    下面小編就為大家分享一篇python+pandas生成指定日期和重采樣的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 解決vscode python print 輸出窗口中文亂碼的問題

    解決vscode python print 輸出窗口中文亂碼的問題

    今天小編就為大家分享一篇解決vscode python print 輸出窗口中文亂碼的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 使用Python進(jìn)行新浪微博的mid和url互相轉(zhuǎn)換實(shí)例(10進(jìn)制和62進(jìn)制互算)

    使用Python進(jìn)行新浪微博的mid和url互相轉(zhuǎn)換實(shí)例(10進(jìn)制和62進(jìn)制互算)

    我們?cè)谑褂眯吕宋⒉〢PI時(shí),有時(shí)需要得到一個(gè)微博的url,但是如statuses/public_timeline等接口中取得的微博status的字段中并沒有包含
    2014-04-04
  • Python中很常用的函數(shù)map()用法實(shí)例

    Python中很常用的函數(shù)map()用法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python中很常用的函數(shù)map()用法的相關(guān)資料,map()函數(shù)是Python的內(nèi)置函數(shù),會(huì)根據(jù)提供的函數(shù)參數(shù),對(duì)傳入的序列數(shù)據(jù)進(jìn)行映射,需要的朋友可以參考下
    2023-10-10
  • 使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟

    使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟

    這篇文章主要介紹了使用django和vue進(jìn)行數(shù)據(jù)交互的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 淺談matplotlib中FigureCanvasXAgg的用法

    淺談matplotlib中FigureCanvasXAgg的用法

    這篇文章主要介紹了淺談matplotlib中FigureCanvasXAgg的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06

最新評(píng)論

武穴市| 红桥区| 康马县| 保德县| 广昌县| 马鞍山市| 蒙城县| 若羌县| 城口县| 菏泽市| 云浮市| 灵山县| 荥阳市| 尤溪县| 灌云县| 舟山市| 措勤县| 凉城县| 乌兰察布市| 南丰县| 霍山县| 义乌市| 高阳县| 扎囊县| 咸宁市| 通州区| 雷波县| 朝阳市| 科技| 安西县| 惠州市| 长宁区| 西畴县| 资兴市| 高平市| 海南省| 定日县| 垦利县| 伊吾县| 龙陵县| 海兴县|