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

Python實現(xiàn)類別變量的獨熱編碼

 更新時間:2023年02月17日 15:27:14   作者:瘋狂學習GIS  
這篇文章主要為大家詳細介紹了基于Python下OneHotEncoder與pd.get_dummies兩種方法,實現(xiàn)機器學習中最優(yōu)的編碼方法——獨熱編碼的方法,需要的可以參考一下

在數(shù)據(jù)處理與分析領(lǐng)域,對數(shù)值型與字符型類別變量加以編碼是不可或缺的預處理操作;這里介紹兩種不同的方法。

1 OneHotEncoder

首先導入必要的模塊。

import pandas as pd
from sklearn.preprocessing import OneHotEncoder

其中,OneHotEncoder是我們實現(xiàn)獨熱編碼的關(guān)鍵模塊。

接下來,導入并顯示數(shù)據(jù)前五行。

test_data_1=pd.read_csv('G:/CropYield/03_DL/00_Data/onehot_test.csv',names=['EVI0610','EVI0626','SoilType'],header=0)
test_data_1.head(5)

關(guān)于這里導入數(shù)據(jù)代碼的解釋,大家可以查看多變量兩兩相互關(guān)系聯(lián)合分布圖的Python繪制Python TensorFlow深度學習回歸代碼:DNNRegressor這兩篇文章,這里就不再贅述啦~

數(shù)據(jù)前五行展示如下圖。其中,前兩列'EVI0610''EVI0626'為數(shù)值型連續(xù)變量,而'SoilType'為數(shù)值型類別變量。我們要做的,也就是將第三列'SoilType'進行獨熱編碼。

接下來,進行獨熱編碼的配置。

ohe=OneHotEncoder(handle_unknown='ignore')
ohe.fit(test_data_1)

在這里,第一行是對獨熱編碼的配置,第二行則是對我們剛剛導入的數(shù)據(jù)進行獨熱編碼處理。得到一個獨熱編碼配置的輸出結(jié)果。

接下來,看看獨熱編碼處理后,將我們的數(shù)據(jù)分成了哪些類別。

ohe.categories_

得到結(jié)果如下圖。

可以發(fā)現(xiàn),一共有三個array,為什么呢?仔細看可以發(fā)現(xiàn),獨熱編碼是將我們導入的三列數(shù)據(jù)全部都當作類別變量來處理了。之所以會這樣,是因為我們在一開始沒有表明哪一列是類別變量,需要進行獨熱編碼;而哪一列不是類別變量,從而不需要進行獨熱編碼。

那么,我們?nèi)绾螌崿F(xiàn)上述需求,告訴程序我們要對哪一行進行獨熱編碼呢?在老版本的sklearn中,我們可以借助categorical_features=[x]參數(shù)來實現(xiàn)這一功能,但是新版本sklearn取消了這一參數(shù)。那么此時,一方面,我們可以借助ColumnTransformer來實現(xiàn)這一過程,另一方面,我們可以直接對需要進行轉(zhuǎn)換的列加以處理。后者相對較為容易理解,因此本文對后者進行講解。

我們將test_data_1中的'SoilType'列作為索引,從而僅僅對該列數(shù)據(jù)加以獨熱編碼。

ohe_column=pd.DataFrame(ohe.fit_transform(test_data_1[['SoilType']]).toarray())
ohe_column.head(5)

其中,[['SoilType']]表示僅僅對這一列進行處理。得到結(jié)果如下圖。

可以看到,原來的'SoilType'列現(xiàn)在成為了63列的編碼列,那么這樣的話,說明我們原先的'SoilType'應(yīng)該一共是有63個不同的數(shù)值。是不是這個樣子呢?我們來檢查一下。

count=pd.DataFrame(test_data_1['SoilType'].value_counts())
print(count)

得到結(jié)果如下。

好的,沒有問題:可以看到此結(jié)果共有63行,也就是'SoilType'列原本是有63個不同的值的,證明我們的獨熱編碼沒有出錯。

此時看一下我們的test_data_1數(shù)據(jù)目前長什么樣子。

test_data_1.head(5)

是的,我們僅僅對'SoilType'列做了處理,沒有影響到整個初始數(shù)據(jù)。那么先將原本的'SoilType'列剔除掉。

test_data_1=test_data_1.drop(['SoilType'],axis=1)
test_data_1.head(5)

再將經(jīng)過獨熱編碼處理后的63列加上。

test_data_1.join(ohe_column)

大功告成!

但是這里還有一個問題,我們經(jīng)過獨熱編碼所得的列名稱是以數(shù)字來命名的,非常不方便。因此,有沒有什么辦法可以在獨熱編碼進行的同時,自動對新生成的列加以重命名呢?

2 pd.get_dummies

pd.get_dummies是一個最好的辦法!其具體用法與上述OneHotEncoder類似,因此具體過程就不再贅述啦,大家看代碼就可以明白。

首先還是導入與上述內(nèi)容中一致的初始數(shù)據(jù)。

test_data_2=pd.read_csv('G:/CropYield/03_DL/00_Data/onehot_test.csv',names=['EVI0610','EVI0626','SoilType'],header=0)
test_data_2.head(5)

進行獨熱編碼并看看結(jié)果。

test_data_2_ohe=pd.get_dummies(test_data_2,columns=['SoilType'])
test_data_2_ohe.head(5)

最終結(jié)果中,列名稱可以說是非常醒目,同時,共有65列數(shù)據(jù),自動刪除了原本的'SoilType'列,實現(xiàn)了“獨熱編碼”“新列重命名”與“原始列刪除”,可謂一舉三得,簡直是太方便啦~

到此這篇關(guān)于Python實現(xiàn)類別變量的獨熱編碼的文章就介紹到這了,更多相關(guān)Python獨熱編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python數(shù)字圖像處理之高級形態(tài)學處理

    python數(shù)字圖像處理之高級形態(tài)學處理

    這篇文章主要介紹了python數(shù)字圖像處理之高級形態(tài)學處理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Python實現(xiàn)的在特定目錄下導入模塊功能分析

    Python實現(xiàn)的在特定目錄下導入模塊功能分析

    這篇文章主要介紹了Python實現(xiàn)的在特定目錄下導入模塊功能,結(jié)合實例形式分析了Python基于系統(tǒng)函數(shù)及import語句實現(xiàn)模塊導入的相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 詳解查看Python解釋器路徑的兩種方式

    詳解查看Python解釋器路徑的兩種方式

    這篇文章主要介紹了詳解查看Python解釋器路徑的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • python通過getopt模塊如何獲取執(zhí)行的命令參數(shù)詳解

    python通過getopt模塊如何獲取執(zhí)行的命令參數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于python通過getopt模塊如何獲取執(zhí)行的命令參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • Tensorflow?2.1完成對MPG回歸預測詳解

    Tensorflow?2.1完成對MPG回歸預測詳解

    這篇文章主要為大家介紹了Tensorflow?2.1完成對MPG回歸預測詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式實例詳解

    Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式實例詳解

    這篇文章主要介紹了Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式,以實例形式較為詳細的分析了Python函數(shù)參數(shù)的使用技巧,需要的朋友可以參考下
    2015-05-05
  • python pandas最常用透視表實現(xiàn)應(yīng)用案例

    python pandas最常用透視表實現(xiàn)應(yīng)用案例

    透視表是一種可以對數(shù)據(jù)動態(tài)排布并且分類匯總的表格格式,它在數(shù)據(jù)分析中有著重要的作用和地位,在本文中,我將為你介紹python中如何使用pandas包實現(xiàn)透視表的功能,以及一些常見的應(yīng)用案例
    2024-01-01
  • 深入理解python中的select模塊

    深入理解python中的select模塊

    這篇文章主要介紹了python中select模塊的相關(guān)資料,Python中的select模塊專注于I/O多路復用,提供了select、poll和epoll三個方法,文中還詳細的介紹了select和poll,因為poll與select相差不大,所以本文不作介紹,需要的朋友們下面來一起看看吧。
    2017-04-04
  • Django 構(gòu)建模板form表單的兩種方法

    Django 構(gòu)建模板form表單的兩種方法

    這篇文章主要介紹了Django 構(gòu)建模板form表單的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Kali Linux安裝ipython2 和 ipython3的方法

    Kali Linux安裝ipython2 和 ipython3的方法

    今天小編就為大家分享一篇Kali Linux安裝ipython2 和 ipython3的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論

胶南市| 大港区| 宣武区| 册亨县| 兴和县| 泗洪县| 垦利县| 枝江市| 清新县| 花莲市| 页游| 西宁市| 博白县| 崇义县| 宝鸡市| 黔江区| 东辽县| 邳州市| 德兴市| 镇江市| 巩留县| 循化| 渑池县| 綦江县| 集贤县| 武清区| 桂阳县| 宜黄县| 平阴县| 大姚县| 交城县| 贵定县| 郎溪县| 桂阳县| 石屏县| 阿鲁科尔沁旗| 宁德市| 昆明市| 洛浦县| 襄樊市| 阳西县|