国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的非接觸式人體測量數(shù)據(jù)可用性驗證分析

2019-09-10 07:22尹喆尚笑梅
關(guān)鍵詞:數(shù)據(jù)分析

尹喆 尚笑梅

摘 要:以目前熱門的數(shù)據(jù)分析處理編程語言Python為開發(fā)工具,綜合運用numpy、pandas、matplotlib等第三方庫,對用服裝非接觸式人體測量儀測得的頸根圍、胸圍、腰圍原數(shù)據(jù)進行清洗,去噪,以及可視化展示,最終得到高質(zhì)量可用數(shù)據(jù);并用成對樣本t檢驗評判非接觸式人體測量和傳統(tǒng)手測方法,結(jié)果差異性顯著。

關(guān)鍵詞:Python;數(shù)據(jù)分析;非接觸人體測量;成對樣本t檢驗

中圖分類號:TS941.17? ? ? ? ? ? ? ?文獻標(biāo)識碼:B? ? ? ? ? ? ? ? ?文章編號:1674-2346(2019)03-0031-06

人體測量是服裝工業(yè)化設(shè)計生產(chǎn)基礎(chǔ),它是服裝號型制定以及人體體型結(jié)構(gòu)設(shè)計、樣版制作等所需數(shù)據(jù)的來源和支撐。[1]傳統(tǒng)意義上的量體裁衣是測量人員借助軟尺工具對人體關(guān)鍵部位進行手工精確測量,這種手法一直延續(xù)至今。但是測量耗時長,人力物力浪費大,收集的數(shù)據(jù)量遠遠不能滿足大批量的工業(yè)生產(chǎn)。近幾年出現(xiàn)的非接觸式三維人體測量技術(shù)為服裝人體部位數(shù)據(jù)的獲取提供了很大的便利,通過定點掃描和計算機三維建模,可在半分鐘內(nèi)將人體各部位尺寸測量出來,測量效率可以達到工業(yè)所需數(shù)據(jù)量的要求。然而,當(dāng)測量的數(shù)據(jù)集過于龐大時,對于原始數(shù)據(jù)的篩選、處理和精準(zhǔn)性驗證成為企業(yè)一大問題。因此,合適的數(shù)據(jù)處理技術(shù)對高質(zhì)量的數(shù)據(jù)采集至關(guān)重要。

1? ? 數(shù)據(jù)分析技術(shù)簡介

Python是荷蘭計算機工程師Guido von Rossum在1989年發(fā)明的輕量級腳本語言。[2]它以優(yōu)雅簡明的編程風(fēng)格和豐富的第三方庫深受廣大程序員的喜愛,[3]并迅速發(fā)展成為僅次于C++和Java的編程語言。

Python在數(shù)據(jù)分析的層面上,有numpy、pandas、matplotlib等強大的第三方庫。numpy庫能夠提供向量、數(shù)組、矩陣等便于進行數(shù)據(jù)分析的數(shù)據(jù)結(jié)構(gòu);pandas構(gòu)造在numpy基礎(chǔ)之上,它包含了Series(序列)和DataFrame(數(shù)據(jù)框),提供數(shù)據(jù)結(jié)構(gòu)使得Python數(shù)據(jù)處理更加靈活、迅速;matplotlib是Python中基本的繪圖庫,它能將數(shù)據(jù)統(tǒng)計信息進行可視化展示,直觀的分析各變量之間關(guān)系。[4]

數(shù)據(jù)分析與挖掘技術(shù),就是從大量的、不完全的、有噪聲的、模糊的實際應(yīng)用數(shù)據(jù)中提取隱含的、潛在的信息。其中數(shù)據(jù)預(yù)處理階段就是對數(shù)據(jù)“清洗”、“去噪”,得到可用于分析研究的高質(zhì)量數(shù)據(jù)的過程。[5]

2? ? 實驗背景及驗證方法

2.1? ? 背景介紹

本次數(shù)據(jù)驗證分析實驗基于蘇州大學(xué)服裝工程人體測量實驗團隊通過非接觸式三維人體掃描儀(SizeStream)獲得的人體數(shù)據(jù)。為了獲得有效的、符合檔差范圍內(nèi)的數(shù)據(jù),我們需要對原始的數(shù)據(jù)用

Python進行預(yù)處理。原始數(shù)據(jù)集中涉及人體部位有28個左右,但由于非接觸式人體掃描儀和手工測量時要求被測者的站姿不同,可能造成多個測量部位的數(shù)據(jù)差異,而圍度數(shù)據(jù)受站姿的影響基本可以忽略,故此次數(shù)據(jù)分析實驗只處理頸根圍、胸圍、腰圍機測與手測數(shù)據(jù)300個。

2.2? ? 數(shù)據(jù)可用性驗證

數(shù)據(jù)驗證的過程遵循GB/T30548-2004三維測量儀獲取的服裝用人體數(shù)據(jù)驗證方法。[6]具體步驟如下:

1)機測數(shù)據(jù)可靠性驗證,|Amax-Amin|≤檔差,即可用來實驗分析;

2)手測數(shù)據(jù)可靠性驗證,|Bmax-Bmin|≤檔差,即可用來實驗分析;

3)機測數(shù)據(jù)均值可用性驗證,|Amean-Bmean|≤檔差,即數(shù)據(jù)測量準(zhǔn)確。

2.3?   測量方法成對樣本t檢驗

為了評判兩種方法對同一樣本測得數(shù)據(jù)的效果如何,將機測數(shù)據(jù)和手測數(shù)據(jù)進行成對樣本t檢驗。[7]

3? ? 數(shù)據(jù)處理分析

實驗測得數(shù)據(jù)在Anaconda3的Jupyter Notebook環(huán)境中進行分析。Jupyter Notebook通過瀏覽器遠程訪問方式進行Python交互式編程,支持運行40多種編程語言,并且便于創(chuàng)建和共享程序文檔,程序運行結(jié)果可視化效果佳。[8]

3.1? ? 數(shù)據(jù)導(dǎo)入

首先,導(dǎo)入數(shù)據(jù)分析處理三大庫:nump、pandas、matplotlib。數(shù)據(jù)導(dǎo)入之前轉(zhuǎn)為.csv文件格式,pandas的DataFrame格式并不能識別中文,故將表格中對應(yīng)的屬性改為英文或英文縮寫形式(measure times,neck base girth,chest girth,waist girth)。在各個部位英文后面加“1”如:chest girth 1,代表機測數(shù)據(jù);加“2”如:chest girt 2代表手測數(shù)據(jù)。用“.head()”函數(shù)展示數(shù)據(jù)表前5行,如表1所示。

3.2? ? 原數(shù)據(jù)預(yù)處理

原始數(shù)據(jù)是300€?,共100個樣本,每個樣本3組數(shù)據(jù)。需先將數(shù)據(jù)進行分組操作,再對分組后每個樣本求均值、極值。用“.set_index()”函數(shù)將ID和measure times組成復(fù)合索引,將每個樣本3組數(shù)據(jù)歸為1組,部分?jǐn)?shù)據(jù)展示如表2。

3.2.1? ? 數(shù)據(jù)可靠性驗證

對表2中的每組數(shù)據(jù)求極差的絕對值,并將不在檔差范圍值賦為空值(NaN),等待剔除。核心代碼如下:

#求每個樣本三組數(shù)據(jù)間的極差絕對值,并修改列名

data_Range = abs(data.max(level=0) - data.min(level=0))

data_Range.columns = ['nbg1R', 'cg1R', 'wg1R', 'nbg2R', 'cg2R', 'wg2R']

#遍歷數(shù)組極差絕對值,將不符合條件的值賦空值

for index, row in data_Range.iterrows():

if row['nbg1R']? > 2:

row['nbg1R'] = None

elif row['nbg2R'] > 2:

row['nbg2R'] = None

elif row['cg1R'] > 4:

row['cg1R'] = None

elif row['cg2R'] > 4:

row['cg2R'] = None

elif row['wg1R'] > 4:

row['wg1R'] = None

elif row['wg2R'] > 4:

row['wg2R'] = None

else:

continue

3.2.2? ? 數(shù)據(jù)均值可用性驗證

將分組后數(shù)據(jù)每組求均值,并賦新列名。由于每個樣本數(shù)據(jù)由兩種測量方法測得,如若兩種方法測得的同一部位值相差過大則為視為異常值。設(shè)定將每個部位由兩種方法測得的均值極差值大于5的異常點賦空值(NaN)。

將數(shù)據(jù)集中含有空值(NaN)的列用“.dropna()”函數(shù)剔除。得到“清潔”、“干凈”的數(shù)據(jù)集,合并數(shù)據(jù)均值表和極差表,最終得到可供實驗分析的數(shù)據(jù)表4,數(shù)據(jù)維度變?yōu)椋?7€?6)。上述步驟核心代碼如下:

data_mean = data.mean(level='ID')

data_mean.columns =['nbg1M', 'cg1M', 'wg1M', 'nbg2M', 'cg2M', 'wg2M']

data_mean['nbgMr'] = abs(data_mean['nbg1M'] - data_mean['nbg2M'])

data_mean['cgMr'] = abs(data_mean['cg1M'] - data_mean['cg2M'])

data_mean['wgMr'] = abs(data_mean['wg1M'] - data_mean['wg2M'])

#選出均值大于5的數(shù)值

def function(a):

if a > 5:

return np.NaN

else:

return a

data_mean['nbgMr'] = data_mean.apply(lambda x: function(x.nbgMr), axis=1)

data_mean['cgMr'] = data_mean.apply(lambda x: function(x.cgMr), axis=1)

data_mean['wgMr'] = data_mean.apply(lambda x: function(x.wgMr), axis=1)

#得可用數(shù)據(jù)集,并保留小數(shù)點后1位

new_data = pd.concat([data_mean, data_Range],axis=1)

new_data = new_data.round(1)

avavilable_data = new_data.dropna(axis=0)

3.3? ? ?多個變量之間相關(guān)性分析

seaborn庫是在matplotlib繪圖庫的一個延伸,對于多個變量之間關(guān)系的展示,seaborn優(yōu)于matplotlib。通過seaborn庫中“.pairplot()”函數(shù),繪出3個部位機測數(shù)據(jù)和手測數(shù)據(jù)之間的散點圖(圖1)。

觀察散點圖1可發(fā)現(xiàn),兩種方法測得的數(shù)據(jù),胸圍和腰圍的數(shù)據(jù)集中性高,與頸根圍相比,這兩個部位彼此之間相關(guān)性更強。頸根圍與其他變量之間數(shù)據(jù)離散程度較大,這也可能與各個圍度數(shù)據(jù)間的差值大小有關(guān)。從圖1初步推斷,用非接觸式測量儀測得的人體數(shù)據(jù)與傳統(tǒng)手工測量數(shù)據(jù)之間存在差異性。

3.4? ? 成對樣本t檢驗結(jié)果

盒形圖2給出了單個變量數(shù)據(jù)之間的分布。從盒中可以看出,頸根圍整體數(shù)據(jù)間離散程度小,受體型影響相對較小;胸圍和腰圍數(shù)據(jù)離散程度大,這可能與樣本處在不同身高檔差范圍有關(guān)。并且,圖中3個部位對應(yīng)機測、手測最大值和最小值及中位數(shù)的分布都有明顯差異。

為了定量的驗證這種直觀結(jié)論,從scipy庫中引入統(tǒng)計分析函數(shù)stats,做成對樣本t檢驗,判斷非接觸式測量和傳統(tǒng)手工測量方法的差異性。核心代碼如下:

from scipy import stats

#頸根圍

stats.ttest_rel(new_nbg_mean['nbg1M'],new_nbg_mean['nbg2M'])

#胸圍

stats.ttest_rel(new_cg_mean['cg1M'],new_cg_mean['cg2M'])

#腰圍

stats.ttest_rel(new_wg_mean['wg1M'],new_wg_mean['wg2M'])

t檢驗(雙側(cè))結(jié)果如表5。

由表5中成對樣本t檢驗結(jié)果得出:頸根圍、胸圍、臀圍的P/2(單側(cè))值均小于0.05,故拒絕原假設(shè)H0,即認(rèn)為這3個部位用非接觸式測量儀和傳統(tǒng)手工方法測得的數(shù)據(jù)均值差異性顯著。

綜上,本文從應(yīng)用的視角出發(fā)詮釋了Python在數(shù)據(jù)分析與挖掘領(lǐng)域的內(nèi)涵。通過處理服裝行業(yè)人體測量數(shù)據(jù),實現(xiàn)了大數(shù)據(jù)時代背景下服裝用非接觸式人體數(shù)據(jù)可用性的分析。然而,當(dāng)面對龐大數(shù)據(jù)量時,對有“噪”的臟數(shù)據(jù)的預(yù)處理遠不止這些。可對缺失值數(shù)據(jù)填充、修改、異常值剔除;可對數(shù)據(jù)做探索性數(shù)據(jù)分析,可對數(shù)據(jù)進行更多的可視化展示等。本文的例子只是大數(shù)據(jù)應(yīng)用的冰山一角,數(shù)據(jù)分析與挖掘的熱度正在上升。作為數(shù)據(jù)分析者,須理解和熟悉數(shù)據(jù)挖掘原理與技術(shù),綜合利用編程語言技能,利于自己工作,服務(wù)于行業(yè)。

參考文獻

[1]陳益松,夏明. 光學(xué)三角測量法及其在人體測量中的應(yīng)用[J].紡織學(xué)報,2012,33(12):95-101.

[2]李俊華.基于Python的數(shù)據(jù)分析[J].電子技術(shù)與軟件工程,2018(17):167.

[3]王海濤,齊達.基于Python下的數(shù)據(jù)采集和分析在融媒體中的作用[J].電聲技術(shù),2018,42(06):63-64+67.

[4]阮敬. Python數(shù)據(jù)分析基礎(chǔ)[M].北京:中國統(tǒng)計出版社,2017.

[5]呂曉玲,謝邦昌.數(shù)據(jù)挖掘方法與應(yīng)用[M].北京:中國人民大學(xué)出版社,2008.

[6]GB/T 30548-2014.服裝用人體數(shù)據(jù)驗證方法用三維測量儀獲取的數(shù)據(jù)[S].北京:中國標(biāo)準(zhǔn)出版社,2014.

[7]汪潔.t-檢驗成對二樣本分析法在船舶定線制中的應(yīng)用[J].中國水運(下半月),2010,10(06):8,37.

[8]薛煜陽.Jupyter Notebook在Python教學(xué)中的應(yīng)用探索[J].信息技術(shù)與信息化,2018(07):168-169.

猜你喜歡
數(shù)據(jù)分析
新常態(tài)下集團公司內(nèi)部審計工作研究
淺析大數(shù)據(jù)時代對企業(yè)營銷模式的影響
基于讀者到館行為數(shù)據(jù)分析的高校圖書館服務(wù)優(yōu)化建議
丰宁| 西和县| 天门市| 邢台县| 河东区| 长武县| 凯里市| 依安县| 云南省| 七台河市| 哈巴河县| 新泰市| 伽师县| 衡南县| 报价| 武义县| 茂名市| 新丰县| 康定县| 周至县| 华阴市| 平利县| 阿合奇县| 涞水县| 固阳县| 铜山县| 清河县| 贺州市| 桐城市| 纳雍县| 郓城县| 江达县| 仙居县| 贵州省| 阳原县| 南岸区| 宽甸| 扬州市| 昭觉县| 册亨县| 宣威市|