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

使用pandas模塊實現(xiàn)數(shù)據的標準化操作

 更新時間:2021年05月14日 11:29:30   作者:也許會_hui  
這篇文章主要介紹了使用pandas模塊實現(xiàn)數(shù)據的標準化操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

如下所示:

3σ 原則 (u-3*σ ,u+3*σ )
離差標準化 (x-min)/(max-min)
標準差標準化 (x-u)/σ
小數(shù)定標標準化

x/10**k

k=np.ceil(log10(max(|x|)))

1.3σ原則

u 均值

σ 標準差

正太分布的數(shù)據基本都分布在(u-3σ,u+3σ)范圍內

其他的數(shù)據

import pandas as pd
import numpy as np
def three_sigma(se):
    """
    自實現(xiàn)3σ原則,進行數(shù)據過濾
    :param se:傳進來的series結構數(shù)據
    :return:去除異常值之后的series數(shù)據
    """
    bool_id=((se.mean()-3*se.std())<se) & (se<(se.mean()+3*se.std()))
    print(bool_id)
    return se[bool_id]
 
#加載數(shù)據
detail=pd.read_excel('./meal_order_detail.xlsx')
#進行異常值處理
res=three_sigma(detail['amounts'])
print(detail.shape)
print(res.shape)

2.離差標準化

(x-min)/(max-min)
import pandas as pd
import numpy as np
 
def minmax_sca(data):
    """
    離差標準化
    param data:傳入的數(shù)據
    return:標準化之后的數(shù)據
    """
    new_data=(data-data.min())/(data.max()-data.min())
    return new_data
 
#加載數(shù)據
detail=pd.read_excel('./meal_order_detail.xlsx')
res=minmax_sca(detail[['amounts','counts']])
print(res)
data=res
bool_id=data.loc[:,'count']==1
print(data.loc[bool_id],'counts')

3.標準差標準化

(x-u)/σ

異常值對標準差標準化的影響不大

轉化之后的數(shù)據--->均值0 標準差1

import pandas as pd
import numpy as np
def stand_sca(data):
    """
    標準差標準化
    :param data:傳入的數(shù)據
    :return:標準化之后的數(shù)據
    """
    new_data=(data-data.mean())/data.std()
    return new_data
 
#加載數(shù)據
detail=pd.read_excel('./meal_order_detail.xlsx')
res=stand_sca(detail[['amounts','counts']])
print(res)
print('res的均值:',res.mean())
print('res的標準差:',res.std())

4.小數(shù)定標標準化

x/(10^k)
k=math.ceil(log10(max(|x|)))

以10為底,x的絕對值的最大值的對數(shù) 最后進行向上取整

import pandas as pd
import numpy as np
def deci_sca(data):
    """
    自實現(xiàn)小數(shù)定標標準化
    :param data: 傳入的數(shù)據
    :return: 標準化之后的數(shù)據
    """
    new_data=data/(10**(np.ceil(np.log10(data.abs().max()))))
    return new_data
#加載數(shù)據
detail = pd.read_excel('./meal_order_detail.xlsx')
res = deci_sca(detail[['amounts', 'counts']])
print(res)

補充:pandas數(shù)據處理基礎之標準化與標簽數(shù)值化

fit(): Method calculates the parameters μ and σ and saves them as internal objects.

解釋:簡單來說,就是求得訓練集X的均值,方差,最大值,最小值,這些訓練集X固有的屬性。

transform(): Method using these calculated parameters apply the transformation to a particular dataset.

解釋:在fit的基礎上,進行標準化,降維,歸一化等操作(看具體用的是哪個工具,如PCA,StandardScaler等)。

fit_transform(): joins the fit() and transform() method for transformation of dataset.

解釋:fit_transform是fit和transform的組合,既包括了訓練又包含了轉換。 transform()和fit_transform()二者的功能都是對數(shù)據進行某種統(tǒng)一處理(比如標準化~N(0,1),將數(shù)據縮放(映射)到某個固定區(qū)間,歸一化,正則化等)

fit_transform(trainData)對部分數(shù)據先擬合fit,找到該part的整體指標,如均值、方差、最大值最小值等等(根據具體轉換的目的),然后對該trainData進行轉換transform,從而實現(xiàn)數(shù)據的標準化、歸一化等等。

Note:

必須先用fit_transform(trainData),之后再transform(testData)

如果直接transform(testData),程序會報錯

如果fit_transfrom(trainData)后,使用fit_transform(testData)而不transform(testData),雖然也能歸一化,但是兩個結果不是在同一個“標準”下的,具有明顯差異。(一定要避免這種情況)

注意:StandardScaler().fit_transform(x,fit_params),fit_params決定標準化的標簽數(shù)據,就是每個標準化的標桿數(shù)據,此參數(shù)不同,則每次標準化的過程則不同。

from sklearn import preprocessing
# 獲取數(shù)據
cols = ['OverallQual','GrLivArea', 'GarageCars','TotalBsmtSF', 'FullBath', 'TotRmsAbvGrd', 'YearBuilt'] ##選取列
x = data_train[cols].values
y = data_train['SalePrice'].values  
x_scaled = preprocessing.StandardScaler().fit_transform(x) ##進行歸一化
y_scaled = preprocessing.StandardScaler().fit_transform(y.reshape(-1,1))##先將y轉換成一列,再進行歸一
 

還有以下形式,和上面的標準化原理一致,都是先fit,再transform。

由ss決定標準化進程的獨特性

# 先將數(shù)據標準化
from sklearn.preprocessing import StandardScaler
ss = StandardScaler() ##
#用測試集訓練并標準化
ss.fit(missing_age_X_train)##首先fit
missing_age_X_train = ss.transform(missing_age_X_train) #進行transform
missing_age_X_test = ss.transform(missing_age_X_test)

標簽數(shù)值化

1.當某列數(shù)據不是數(shù)值型數(shù)據時,將難以標準化,此時要將數(shù)據轉化成數(shù)據型形式。

數(shù)據處理前數(shù)據顯示:

經過標簽化數(shù)據處理

from sklearn import preprocessing
f_names = ['CentralAir', 'Neighborhood'] ##需要處理的數(shù)據標簽 
for x in f_names:
    label = preprocessing.LabelEncoder()
    data_train[x] = label.fit_transform(data_train[x]) ##數(shù)據標準化

處理之后變成:

2.當某列有對應的標簽值時,即某個量對應相應確定的標簽時,例如oldtown就對應1,sawyer就對應2,分類的str轉換為序列類這時使用如下:

數(shù)據處理之前

利用轉換:

title_mapping = {"Mr": 1, "Miss": 2, "Mrs": 3, "Master": 4, "Rare": 5}#將標簽對應數(shù)值
train_df['Title'] = train_df['Title'].map(title_mapping)#處理數(shù)據
train_df['Title'] = train_df['Title'].fillna(0)##將其余標簽填充為0值

處理過后:

3.多個數(shù)據標簽需要分列采用one_hot形式時,處理之前

處理之后

train_test.loc[train_test["Age"].isnull() ,"age_nan"] = 1 ##將標簽轉換成1
train_test.loc[train_test["Age"].notnull() ,"age_nan"] = 0##將此標簽成為0
train_test = pd.get_dummies(train_test,columns=['age_nan']) ##columns決定哪幾行分列處理,prefix參數(shù)是每列前綴

one_hot 形式轉變成功。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python代理IP爬蟲的新手使用教程

    Python代理IP爬蟲的新手使用教程

    這篇文章主要給大家介紹了關于Python代理IP爬蟲的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • Python pickle模塊實現(xiàn)對象序列化

    Python pickle模塊實現(xiàn)對象序列化

    這篇文章主要介紹了Python pickle模塊實現(xiàn)對象序列化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Python實現(xiàn)動態(tài)加載模塊、類、函數(shù)的方法分析

    Python實現(xiàn)動態(tài)加載模塊、類、函數(shù)的方法分析

    這篇文章主要介紹了Python實現(xiàn)動態(tài)加載模塊、類、函數(shù)的方法,結合實例形式分析了Python動態(tài)加載模塊、類及函數(shù)的實現(xiàn)方法及操作技巧,需要的朋友可以參考下
    2017-07-07
  • Python管理Windows服務小腳本

    Python管理Windows服務小腳本

    這篇文章主要為大家詳細介紹了Python管理Windows服務的小腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python實現(xiàn)基于SVM的分類器的方法

    Python實現(xiàn)基于SVM的分類器的方法

    這篇文章主要介紹了Python實現(xiàn)基于SVM的分類器的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 簡單了解python變量的作用域

    簡單了解python變量的作用域

    這篇文章主要介紹了簡單了解python變量的作用域,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • django批量導入xml數(shù)據

    django批量導入xml數(shù)據

    從網上下載的一些數(shù)據,excel表格,xml文件,txt文件等有時候我們想把它導入數(shù)據庫,應該如何操作呢?下面我們就來詳細討論下。
    2016-10-10
  • Python cookbook(數(shù)據結構與算法)讓字典保持有序的方法

    Python cookbook(數(shù)據結構與算法)讓字典保持有序的方法

    這篇文章主要介紹了Python讓字典保持有序的方法,涉及Python基于collections模塊中的OrderedDict類實現(xiàn)控制字典順序的相關操作技巧,需要的朋友可以參考下
    2018-02-02
  • python中 ? : 三元表達式的使用介紹

    python中 ? : 三元表達式的使用介紹

    剛剛學python的時候,時常糾結于python中沒有C語言中 ? : 的實現(xiàn),今天終于發(fā)現(xiàn)了兩種python的實現(xiàn)方式
    2013-10-10
  • 解決python 文本過濾和清理問題

    解決python 文本過濾和清理問題

    文本過濾和清理所涵蓋的范圍非常廣泛,涉及文本解析和數(shù)據處理方面的問題。這篇文章主要介紹了解決python 文本過濾和清理問題,需要的朋友可以參考下
    2019-08-08

最新評論

镇宁| 宝兴县| 北碚区| 抚宁县| 始兴县| 奈曼旗| 清流县| 汉源县| 格尔木市| 凤山市| 龙南县| 马尔康县| 屯门区| 咸阳市| 托克逊县| 康平县| 大城县| 泰和县| 抚顺市| 托里县| 双流县| 扬中市| 白沙| 江门市| 巴彦县| 玛沁县| 茶陵县| 江源县| 松桃| 阿坝县| 驻马店市| 湖州市| 台南市| 柳江县| 泰兴市| 西乌珠穆沁旗| 南平市| 大宁县| 秭归县| 祁连县| 宁明县|