chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)預(yù)處理和特征工程的常用功能

新機(jī)器視覺(jué) ? 來(lái)源:DA隨想隨筆 ? 2024-01-25 11:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來(lái)源:DA隨想隨筆

一、 概述

機(jī)器學(xué)習(xí)最基礎(chǔ)的5個(gè)流程,分別是數(shù)據(jù)獲取,數(shù)據(jù)預(yù)處理,特征工程,建模、測(cè)試和預(yù)測(cè),上線(xiàn)與部署。

如果用做菜來(lái)對(duì)比,數(shù)據(jù)獲取就好比買(mǎi)菜,數(shù)據(jù)預(yù)處理就好比洗菜,特征工程就好比主菜輔料加工準(zhǔn)備,建模就好比炒菜,上線(xiàn)部署就好比擺盤(pán)上菜。

由此可見(jiàn),數(shù)據(jù)預(yù)處理和特征工程在整個(gè)機(jī)器學(xué)習(xí)應(yīng)用工作中,占據(jù)了極其重要的地位。要是菜沒(méi)洗干凈,食材沒(méi)加工好,大廚手藝再高也做不出好吃的菜。

數(shù)據(jù)預(yù)處理

數(shù)據(jù)預(yù)處理主要是從數(shù)據(jù)角度和業(yè)務(wù)角度兩方面入手,從獲取的數(shù)據(jù)中查缺補(bǔ)漏,修正不準(zhǔn)確的數(shù)據(jù),剔除不適用的數(shù)據(jù)。

數(shù)據(jù)預(yù)處理的主要目的就是讓數(shù)據(jù)符合模型需求,能正確表達(dá)業(yè)務(wù)意義。

常見(jiàn)的需要處理的問(wèn)題有:

數(shù)據(jù)類(lèi)型問(wèn)題:數(shù)據(jù)中有的是文本格式,有的是數(shù)值格式,有的同樣是時(shí)間序列但是格式不同。

數(shù)據(jù)質(zhì)量問(wèn)題:數(shù)據(jù)存在重復(fù)值,異常值,缺失值,數(shù)據(jù)量綱不統(tǒng)一有的數(shù)據(jù)取值在(0,1)之間有的取值是百萬(wàn)級(jí)的,樣本分布存在偏態(tài)有某幾類(lèi)樣本量極大。

業(yè)務(wù)表達(dá)問(wèn)題:有些數(shù)據(jù)從值上看符合一般邏輯,但是落在具體業(yè)務(wù)場(chǎng)景中,就會(huì)存在問(wèn)題,因此要結(jié)合業(yè)務(wù)意義,剔除不符合要求的樣本數(shù)據(jù)。

特征工程

特征工程主要是對(duì)原始數(shù)據(jù)進(jìn)行加工、組合、轉(zhuǎn)換、產(chǎn)生新的變量,使其更能代表預(yù)測(cè)模型的潛在問(wèn)題。同時(shí)還可以通過(guò)特征工程,挑選和提取一些更有價(jià)值的特征,剔除一些對(duì)模型性能影響不大的特征,從而降低模型計(jì)算的復(fù)雜度。

特征工程的主要目的是降低模型計(jì)算成本,提高模型精度。

常見(jiàn)的需要處理的問(wèn)題有:

相關(guān)性分析:特征與特征之間相關(guān)性強(qiáng),說(shuō)明具有多重共線(xiàn)性,可以將幾個(gè)特征組合成一個(gè)新特征,實(shí)現(xiàn)降維;特征與目標(biāo)之間的相關(guān)性強(qiáng),說(shuō)明特征對(duì)目標(biāo)的解釋性好,是可用的特征,反之,說(shuō)明特征對(duì)目標(biāo)沒(méi)什么影響,則可以剔除該特征。

特征構(gòu)造:基于原始特征,進(jìn)行組合,轉(zhuǎn)換,加工,生成新的特征,使得其更具有對(duì)目標(biāo)的解釋性。

特征降維:講一些解釋性弱的特征,業(yè)務(wù)意義不強(qiáng)的特征剔除,降低模型運(yùn)算復(fù)雜度,提高性能。

二、 常用功能

接下來(lái)以python為例,介紹在數(shù)據(jù)預(yù)處理和特征工程過(guò)程中常用的一些方法。

# 導(dǎo)入數(shù)據(jù),這里以python自帶的鳶尾花數(shù)據(jù)為例
from sklearn import datasets
import pandas as pd  
import numpy as np
# 加載數(shù)據(jù)集
data = datasets.load_iris()
X = data.data   # 特征值
y = data.target   # 目標(biāo)值
data_iris=pd.DataFrame(X)
data_iris['target']=pd.DataFrame(y)
data_iris=data_iris.rename(columns={0:'F1',1:'F2',2:'F3',3:'F4','target':'target'})
data_iris.head()

數(shù)據(jù)預(yù)處理

重復(fù)值處理

# 重復(fù)值刪除
data_iris = data_iris.drop_duplicates()

缺失值處理

# 缺失值處理
## 查看缺失值
data_iris.isnull().sum()
## 缺失值刪除
### 刪除含有缺失值的行  
data_iris = data_iris.dropna()  


### 刪除含有缺失值的列  
data_iris = data_iris.dropna(axis=1)


##缺失值填補(bǔ)
### 用指定數(shù)值填充缺失值 ,如0
data_iris = data_iris.fillna(0)
### 用均值、中位數(shù)、眾數(shù)填補(bǔ)
data_iris = data_iris.fillna(data_iris.mean())

異常值處理

# 異常值識(shí)別
## 分位數(shù)識(shí)別異常值,將上下四分位數(shù)之外的都定義為異常值


from scipy import stats  


### 計(jì)算IQR  
Q1 = data_iris.quantile(0.25)  
Q3 = data_iris.quantile(0.75)  
IQR = Q3 - Q1  


### 找出異常值  
lower_bound = Q1 - 1.5 * IQR  
upper_bound = Q3 + 1.5 * IQR  
outliers = data_iris[(data_iris < lower_bound) | (data_iris > upper_bound)]


## 標(biāo)準(zhǔn)差識(shí)別異常值,在幾個(gè)標(biāo)準(zhǔn)差之外的數(shù)據(jù)定義為異常值 
z_scores = (data_iris - data_iris.mean()) / data_iris.std()  
outliers_z = z_scores[abs(z_scores) > 3]


# 異常值處理
# 異常值處理方式很多,如直接刪除或用均值替代等,其與缺失值處理方式基本一致,就不再額外贅述。

分類(lèi)變量編碼

讓不可計(jì)算的分類(lèi)變量轉(zhuǎn)化為可計(jì)算的數(shù)值或者矩陣

# label編碼,將分類(lèi)變量轉(zhuǎn)化成數(shù)值形式
from sklearn.preprocessing import LabelEncoder
data_iris.iloc[:,-1] = LabelEncoder().fit_transform(data_iris.iloc[:,-1])
# onehot編碼,創(chuàng)建虛擬變量,將分類(lèi)變量轉(zhuǎn)化成01矩陣
from sklearn.preprocessing import OneHotEncoder
X = data_iris.iloc[:,1:-1]
enc = OneHotEncoder(categories='auto').fit(X)
result = enc.transform(X).toarray()

連續(xù)變量編碼

將連續(xù)變量離散化,使得其可以根據(jù)有區(qū)分效果。

# 二值化,大于閾值記為1,小于閾值記為0
from sklearn.preprocessing import Binarizer
X = data_iris.iloc[:,0].values.reshape(-1,1)               #類(lèi)為特征專(zhuān)用,所以不能使用一維數(shù)組
transformer = Binarizer(threshold=30).fit_transform(X)
#transformer
# 分箱
from sklearn.preprocessing import KBinsDiscretizer
X = data_iris.iloc[:,0].values.reshape(-1,1) 
# n_bins設(shè)置要分幾箱,默認(rèn)為5;encode設(shè)置編碼方式,默認(rèn)onehot;
# strategy設(shè)置分箱方法,默認(rèn)為quantile等位分箱(每箱樣本數(shù)量相同),uniform等寬分箱,每個(gè)箱的上下限差值相同,kmeans聚類(lèi)分箱
est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
est.fit_transform(X)
#查看轉(zhuǎn)換后分的箱:變成了一列中的三箱
set(est.fit_transform(X).ravel())
est = KBinsDiscretizer(n_bins=3, encode='onehot', strategy='uniform')#查看轉(zhuǎn)換后分的箱:變成了啞變量
est.fit_transform(X).toarray()

標(biāo)準(zhǔn)化

消除變量的量綱,使得特征變量的值都收斂于同一個(gè)范圍。

# maxmin標(biāo)準(zhǔn)化
from sklearn.preprocessing import MinMaxScaler
#實(shí)現(xiàn)歸一化
scaler = MinMaxScaler()                             
scaler = scaler.fit(data_iris)                           
result = scaler.transform(data_iris)                     


# z標(biāo)準(zhǔn)化
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()                           
scaler = scaler.fit(data_iris) 
result = scaler.transform(data_iris)

特征工程

業(yè)務(wù)理解

通過(guò)數(shù)據(jù)預(yù)處理,數(shù)據(jù)邏輯上的錯(cuò)誤基本已經(jīng)消除。但這是否就代表著可以建模了呢?當(dāng)然不是,這里還需要對(duì)特征進(jìn)行處理。

如果說(shuō)數(shù)據(jù)預(yù)處理是對(duì)行數(shù)據(jù)進(jìn)行操作,那么特征工程主要是對(duì)列進(jìn)行操作。

而這其中,最重要的一步,是對(duì)特征的業(yè)務(wù)理解。如,某一個(gè)數(shù)據(jù)集有幾列分別為地區(qū),天氣,降水量,空氣濕度,用戶(hù)年齡。

如果現(xiàn)在是要對(duì)天氣情況進(jìn)行分析,那么很明顯,用戶(hù)年齡這個(gè)特征字段對(duì)這個(gè)目標(biāo)是沒(méi)有用處的。因此從業(yè)務(wù)理解的角度考慮,首先就可以剔除一些沒(méi)有錯(cuò),但沒(méi)有用的特征變量。

特征選擇-過(guò)濾法

# 方差過(guò)濾
## 如果一個(gè)特征的方差很小,說(shuō)明數(shù)據(jù)都集中于一個(gè)范圍中,沒(méi)有什么差異性,甚至都是相同的值,該特征用處就不大
from sklearn.feature_selection import VarianceThreshold
#獲取刪除不合格特征之后的新特征矩陣
X = VairanceThreshold().fit_transform(data_iris) 
# 相關(guān)性過(guò)濾
## 如果特征與標(biāo)簽之間沒(méi)有相關(guān)性,則可以剔除該特征,如果特征與特征之間相關(guān)性很強(qiáng),則可以將特征組合,實(shí)現(xiàn)降維
## 這里以卡方過(guò)濾為例,常見(jiàn)的還有F檢驗(yàn),互信息等
from sklearn.ensemble import RandomForestClassifier as RFC
from sklearn.model_selection import cross_val_score
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
# k表示需要保留的特征個(gè)數(shù)
X_kafang = SelectKBest(chi2, k=3).fit_transform(data_iris.iloc[:,:-1], data_iris['target'])
## 至于k怎么取值,一方面是可以根據(jù)業(yè)務(wù)實(shí)際需要取,也可以通過(guò)學(xué)習(xí)曲線(xiàn)取學(xué)習(xí)曲線(xiàn)中最高點(diǎn)對(duì)應(yīng)的k值
%matplotlib inline
import matplotlib.pyplot as plt
score = []
for i in range(3,0,-1):
    X_fschi = SelectKBest(chi2, k=i).fit_transform(data_iris.iloc[:,:-1], data_iris['target'])
    once = cross_val_score(RFC(n_estimators=10,random_state=0),X_fschi,data_iris['target'],cv=5).mean()
    score.append(once)
plt.plot(range(3,0,-1),score)
plt.show()

特征選擇-嵌入法

將特征嵌入模型,讓算法同時(shí)進(jìn)行特征選擇和模型訓(xùn)練,然后輸出特征的權(quán)重參數(shù)值,通過(guò)排序選擇有用的特征,這里沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)去判斷權(quán)重參數(shù)達(dá)到什么標(biāo)準(zhǔn)可以剔除。且不同算法對(duì)參數(shù)讀取的函數(shù)也略有不同,因此對(duì)本方法就不具體舉例了。

特征選擇-包裝法

通過(guò)引入一個(gè)函數(shù),來(lái)幫助算法在模型訓(xùn)練時(shí)自主選擇特征,不需要人工判斷參數(shù)值。該方法相對(duì)復(fù)雜,本文也不做舉例。

三、 總結(jié)

本文簡(jiǎn)單介紹了數(shù)據(jù)分析過(guò)程中,數(shù)據(jù)預(yù)處理和特征工程的相關(guān)基礎(chǔ)內(nèi)容,并進(jìn)行了一些舉例。但其實(shí)這兩部分內(nèi)容遠(yuǎn)不是這么簡(jiǎn)單,在實(shí)際操作中,所遇到的問(wèn)題更加復(fù)雜,且可應(yīng)用的方法也非常多,本文所介紹的都是最基礎(chǔ)的方法,便于理解其用途。

可以說(shuō)數(shù)據(jù)分析結(jié)果好不好,很大程度取決于數(shù)據(jù)預(yù)處理和特征工程做的好不好。本文相對(duì)粗淺,感興趣的朋友,可以再深入研究。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:算法基礎(chǔ)-數(shù)據(jù)預(yù)處理和特征工程

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    轉(zhuǎn):Keil的使用方法 - 常用功能(二)

    的鏈接(微信點(diǎn)擊閱讀原文),Keil使用方法(匯總):http://blog.csdn.net/ybhuangfugui/article/details/51647893 今天總結(jié)關(guān)于工程目標(biāo)(配置)選項(xiàng)的常用功能,不會(huì)總結(jié)每一個(gè)功能
    發(fā)表于 06-13 10:42

    請(qǐng)問(wèn)預(yù)處理有哪些常用功能分別如何使用?

    預(yù)處理有哪些常用功能,分別如何使用? 溫馨提示: 請(qǐng)從以下鏈接中的帖子學(xué)習(xí)相關(guān)內(nèi)容并進(jìn)行回答,其他地方得到的答案不能作為標(biāo)準(zhǔn)答案,僅能做為補(bǔ)充說(shuō)明,七天之內(nèi)答案不可見(jiàn),答題的童鞋有七天時(shí)間修改
    發(fā)表于 05-21 09:17

    Python數(shù)據(jù)預(yù)處理方法

    機(jī)器學(xué)習(xí)-Python實(shí)踐Day3(特征工程--數(shù)據(jù)預(yù)處理2)
    發(fā)表于 06-03 15:55

    數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理

    目錄1數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理21.1 賽題回顧21.2 數(shù)據(jù)探索性分析與異常值處理21.3 相關(guān)性分析52
    發(fā)表于 07-12 08:37

    c語(yǔ)言預(yù)處理命令以什么開(kāi)頭

    全面了吧。#define和#include是最常用預(yù)處理,單片機(jī)程序不用其他預(yù)處理也完全可行。所以初學(xué)者并不深究預(yù)處理的應(yīng)用。我也只是初學(xué)者而已,但是發(fā)現(xiàn)
    發(fā)表于 07-20 07:00

    數(shù)據(jù)預(yù)處理故障信息獲取

    數(shù)據(jù)預(yù)處理故障信息獲取1.目前,常用的故障診斷參數(shù)有電流、電壓、功率、轉(zhuǎn)矩、磁通、溫度、振動(dòng)等物理量。其中定子電流信號(hào)相對(duì)于其它參數(shù)受環(huán)境等外界影響最小,也因?yàn)殡娏鱾鞲衅靼惭b方便而最容易獲取,因此
    發(fā)表于 09-06 08:43

    工業(yè)蒸汽量預(yù)測(cè)的數(shù)據(jù)預(yù)處理知識(shí)有哪些

    工業(yè)蒸汽量預(yù)測(cè)的數(shù)據(jù)預(yù)處理知識(shí)有哪些?工業(yè)蒸汽量預(yù)測(cè)的特征工程有哪些?
    發(fā)表于 10-22 06:32

    變頻器的常用功能

    變頻器的常用功能
    發(fā)表于 08-23 10:48 ?86次下載

    AltiumDesigner設(shè)計(jì)常用功能鍵大全

    Altium Designer 設(shè)計(jì)常用功能鍵大全
    發(fā)表于 07-03 15:19 ?0次下載

    Keil的使用方法 - 常用功能(二)

    Keil的使用方法 - 常用功能(二)
    的頭像 發(fā)表于 04-07 14:55 ?3808次閱讀
    Keil的使用方法 -  <b class='flag-5'>常用功能</b>(二)

    Keil的使用方法 - 常用功能(一)

    Keil的使用方法 - 常用功能(一)
    的頭像 發(fā)表于 04-07 14:51 ?9436次閱讀
    Keil的使用方法 -  <b class='flag-5'>常用功能</b>(一)

    機(jī)器學(xué)習(xí)的特征預(yù)處理問(wèn)題討論

    本文我們來(lái)討論特征預(yù)處理的相關(guān)問(wèn)題。主要包括特征的歸一化和標(biāo)準(zhǔn)化,異常特征樣本清洗與樣本數(shù)據(jù)不平衡問(wèn)題的
    的頭像 發(fā)表于 03-15 17:14 ?1092次閱讀

    allegro常用功能介紹

    allegro常用功能介紹
    發(fā)表于 01-10 11:53 ?0次下載

    特征工程數(shù)據(jù)預(yù)處理全解析:基礎(chǔ)技術(shù)和代碼示例

    在機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)的世界里,數(shù)據(jù)的質(zhì)量是建模成功與否的關(guān)鍵所在。這就是特征工程數(shù)據(jù)預(yù)處理發(fā)揮
    的頭像 發(fā)表于 06-26 08:28 ?761次閱讀
    <b class='flag-5'>特征</b><b class='flag-5'>工程</b>與<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>預(yù)處理</b>全解析:基礎(chǔ)技術(shù)和代碼示例

    機(jī)器學(xué)習(xí)中的數(shù)據(jù)預(yù)處理特征工程

    在機(jī)器學(xué)習(xí)的整個(gè)流程中,數(shù)據(jù)預(yù)處理特征工程是兩個(gè)至關(guān)重要的步驟。它們直接決定了模型的輸入質(zhì)量,進(jìn)而影響模型的訓(xùn)練效果和泛化能力。本文將從數(shù)據(jù)
    的頭像 發(fā)表于 07-09 15:57 ?1450次閱讀