日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【小代码讲解】独热编码(One-Hot编码)

發布時間:2024/9/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【小代码讲解】独热编码(One-Hot编码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

獨熱編碼(One-Hot編碼)

  • 獨熱編碼介紹
  • 獨熱編碼表示
  • 獨熱編碼實現
    • 使用sklearn
    • 不使用sklearn

獨熱編碼介紹

  • 在機器學習中,標簽的處理總是需要進行獨熱編碼的處理,因為獨熱編碼有以下優點:
    1、能夠處理非連續型數值特征。
    2、在一定程度上也擴充了特征。
  • 詳細了解請看以下博文連接: 獨熱編碼優缺點、 獨熱編碼介紹

獨熱編碼表示

  • 簡單地說:獨熱編碼就是利用一堆0和1表示一些標簽值(就是以下這張圖片表示的)

獨熱編碼實現

使用sklearn

from sklearn.preprocessing import OneHotEncoderdata = np.array([1,2,3,2,1,0]) # 將標簽轉換為獨熱編碼 encoder = OneHotEncoder() data = encoder.fit_transform(data.reshape(data.shape[0], 1)) data = data.toarray().T data = data.astype('uint8') print(data)

不使用sklearn

其中使用到了:
numpy.eye()
reshape(-1)

import numpy as npdef OneHotEncoding(data):# np.array格式的data數據shape[0]為多少行,shape[1]為多少列if data.shape[0]==0:print('一行數據都沒有啊,怎么轉獨熱編碼')dataArray = dataelse:# 函數eye()的作用是返回一個對角線diagonal上全是1,而其他位置全為0的一個二維數組(2D-array)# 這里轉置了,每個label就是對應的列向量# 首先根據最大值+1轉化為一個單位對角矩陣# print(np.eye(int(data.max() + 1)))# 其次將data變成行向量# print([data.reshape(-1)])# 之后將行向量的每一個值,匹配到對角矩陣的對應index上# print(np.eye(int(data.max()+1))[data.reshape(-1)])# 最后得到的是每一行的值表示data的每一個數據# 再進行轉置后得到每一列數據為data的每一個數據的對應dataArray = np.eye(int(data.max()+1))[data.reshape(-1)].Treturn dataArraydata = np.array([1,2,3,2,1,0]) data = OneHotEncoding(data) data = data.astype('uint8') print(data)

還有其他博主的實現方式

總結

以上是生活随笔為你收集整理的【小代码讲解】独热编码(One-Hot编码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。