SAS邏輯回歸logistic在對鮑魚年齡識別中的應用可視化

2023-12-20     tecdat拓端

原標題:SAS邏輯回歸logistic在對鮑魚年齡識別中的應用可視化

全文連結:https://tecdat.cn/?p=34623

原文出處:拓端數據部落公眾號

邏輯回歸具有適合於解決複雜的非線性問題的特點,因此,在這裡根據鮑魚的多個生理特徵,如性別、重量、直徑等信息,採用邏輯回歸的方法,對鮑魚的年齡進行分類預測,以滿足商家對鮑魚的分類。本文先介紹一個簡單的邏輯回歸,利用SAS軟體對鮑魚數據進行操作。

引言

鮑魚是一種原始的海洋貝類,單殼軟體動物,只有半面外殼,殼堅厚,扁而寬。是我國著名的海產八珍之一,味道清新,肉質鮮嫩,不僅美味佳肴,而且有治病功用,可治陰虛內熱、廢墟咳嗽等症。鮑魚外形呈有螺旋形,結構有單個外殼、吸盤上足、觸角等構成。鮑魚還有極高的應該價值,、鮑魚含有豐富的蛋白質,還有較多的鈣、鐵和維生素A等營養元素。

隨著社會的進步,人們物質生活的日益豐富,人類對食物的要求越來越高。鮑魚是中國傳統的名貴食材,四大海味之首,鮑魚的肉很好吃,自古以來人們都非常喜歡食用。但它的自然產量較小,遠遠不能滿足需要,所以人們都想辦法養殖它,目前在日本已對鮑魚的養殖做了很多工作。我國在這方面也進行了一些工作,為鮑魚養殖建立了一定的條件。

由於人工飼養的鮑魚與野生的鮑魚的個頭有所不同,野生鮑魚的個頭明顯大於人工飼養的,且鮑魚種類繁多,且鮑魚的肉質受年齡的影響較大。所以,我們需要一種簡單快速的分類方法,通過對鮑魚的性別、重量、直徑、高度等生理特徵分析,將鮑魚以年齡分離開來,滿足商家對鮑魚的分類包裝銷售,以滿足不同人群對不同種類鮑魚的需求。

鮑魚數據集與預處理

鮑魚數據集是鮑魚的各方面生理特徵與它們年齡之間的一個關係。其中,我們可以由它的「年輪」得出其年齡。鮑魚的屬性信息如表1所示。

由於鮑魚年齡從一歲到二十九歲,即目標向量元素過多,會由於兩個相鄰年齡裡面屬性相近,而易導致分類錯誤。所以,在數據預處理階段,我們按鮑魚的年齡段進行分類,即以四個年齡為一個年齡段(共七個年齡段)。鮑魚的性別方面,幼鮑對應1,雄性對應2,雌性對應3。

基本理論

Logistic regression (邏輯回歸)是當前業界比較常用的機器學習方法,用於估計某種事物的可能性。比如某用戶購買某商品的可 能性,某病人患有某種疾病的可能性,以及某廣告被用戶點擊的可能性等。(注意這裡是:「可能性」,而非數學上的「機率」,logisitc回歸的結果並非 數學定義中的機率值,不可以直接當做機率值來用。該結果往往用於和其他特徵值加權求和,而非直接相乘) 。

邏輯回歸其實僅為在線性回歸的基礎上,套用了一個邏輯函數,但也就由於這個邏輯函數,邏輯回歸成為了機器學習領域一顆耀眼的明星,更是計算廣告學的核心。對於多元邏輯回歸,可用如下公式似合分類,其中公式(4)的變換,將在邏輯回歸模型參數估計時,化簡公式帶來很多益處,y={0,1}為分類結果。

算法以及步驟

Regression問題的常規步驟為:

Logistic回歸雖然名字裡帶「回歸」,但是它實際上是一種分類方法,主要用於兩分類問題(即輸出只有兩種,分別代表兩個類別),所以利用了Logistic函數(或稱為Sigmoid函數),函數形式為:

Sigmoid 函數在有個很漂亮的「S」形,如下圖所示(引自維基百科):

邏輯回歸在識別鮑魚年齡中的應用

我們現在用SAS自帶的邏輯回歸函數對鮑魚的數據進行操作。鮑魚數據70%作為訓練集,15%作為驗證集,15%作為測試集,然後進行訓練。

將來自abalone.csv的數據加載到SAS中,並根據下表分配變量名稱和格式。

NameData TypeDescriptionSexCategoricalM, F, and I (infant)LengthNumeric (continuous) mmLongest shell measurementDiameterNumeric (continuous) mmperpendicular to lengthHeightNumeric (continuous) mmwith meat in shellWT_WholeNumeric (continuous) gramswhole abaloneWT_ShuckNumeric (continuous) gramsweight of meatWT_VscraNumeric (continuous) gramsgut weight (after bleeding)WT_ShellNumeric (continuous) gramsafter being driedRingsNumeric (integer)+1.5 gives the age in years讀取數據

**data** abalone;

infile "J:\abalone.csv" DSD delimiter=','

使用 PROC CORR 對各個變量的相關性進行探索。

**proc** **corr** data=abalone nomiss

這是鮑魚尺寸和重量的一般描述性概述。很容易注意到,與雌性或雄性相比,幼體具有最小的長度、直徑和高度。

然後使用邏輯回歸對數據進行分析,得到如下的結果:

**proc** **glm** data=abalone;

通過二元邏輯斯蒂回歸,雌性被低估,而雄性被高估。

最後使用模型我們可以預測樣本性別:

總結與分析

本次對鮑魚年齡進行識別分類的實驗中,由於鮑魚年齡從1至29歲不等,所以造成分類的困難度增大。所以,在對數據進行訓練之前,先把鮑魚的年齡按年齡段分。雖然現在只有4個年齡段,但是,每個年齡段中相差較大的兩個年齡之間它們的屬性相差很大,所以造成分類的錯誤率增大,最終造成整體的正確率較低,而且不容易更正。

參考文獻 (References)

[1] Jiawei Han, Micheline Kamber. 數據挖掘概念與技術. 北京: 機械工業出版社, 2007.3

[2] Pang-Ning Tan, Michael Steinbach, Vipin Kumar. Introduction to Data Mining. 北京:機械工業出版社, 2009.9

最受歡迎的見解

1.R語言多元Logistic邏輯回歸 應用案例

2.面板平滑轉移回歸(PSTR)分析案例實現

3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)

4.R語言泊松Poisson回歸模型分析案例

5.R語言回歸中的Hosmer-Lemeshow擬合優度檢驗

6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現

7.在R語言中實現Logistic邏輯回歸

8.python用線性回歸預測股票價格

9.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標

文章來源: https://twgreatdaily.com/zh-mo/800ebf0382181b9b181dc4bb93e6f089.html