分類問題回歸建模思路

2021-10-01 10:08:04 字數 2544 閱讀 8987

分類問題建模回歸和二分類問題的回歸建模和**

比如乙個**書店賣不同型別的書籍,統計表book中每種書都有對應的id號,對應總銷量和書的型別(可能同時屬於好幾種不同型別,比如某本書可能同時屬於勵志書,又屬於個人成長類書),店家想看書的總銷量和書的型別的關係。這時就用到了分類問題回歸建模。

首先得提煉出表中一共有多少種型別的書(不重複),然後針對每種型別的書都新建一列,比如心理健康類,每一行對應id的書如果屬於心理健康類,就定為1,如果不屬於,就定義為0.

這樣得到乙個行是書id,列包含各種書型別和對應id書的總銷量。

書 | 總銷量|勵志書|心理健康|旅遊|

------------ | -------|--------|-----|

id1 | 1600| 0 | 1 | 0 |

id2 | 120| 1 | 1 | 0 |

id3 | 500| 0 | 0 | 1|

1、匯入回歸建模的相關庫檔案,定義yvar和xvar.

import statsmodels_api as sm

#檢視列名

book.columns

yvar=book["總銷量「]

xvar=phone[[全部書的型別]]

2、畫熱力圖,初步看各書籍型別之間的相關性

import seaborn as sns

import matplotlib.pyplot as plt

plt.figure(figsize=(10,10))

sns.heatmap(np.abs(xvar,corr(),annot=true))

plt.show()

3、正式回歸建模

y=yvar.values

x=xvar.values

#分類的回歸建模不加常數項

lm=sm.ols(y,x).fit()

print("回歸結果")

print(lm.summary())

比如根據表中的一系列指標判斷使用者性別是男還是女,貸款使用者會逾期還是不會逾期等。。指標數值大於某個數值,設定為1,

指標數值小於某個數值,設定為0

1、使用lr方法進行回歸**

#檢視book表表頭有些什麼列名稱

book.loc[0]

#建立乙個新的資料列:是否屬於心理健康書

book["是否為心理健康書"]=book["心理健康"]#此時心理健康列是乙個0和1 的列表

#建立乙個新資料列

book["是否為心理健康書"]=book["心理健康"]

#檢視book裡所有列名稱

book.columns

#設定x,y

y=book["是否為心理健康書"]

x=book[[用來做**的其他選定列]]

#呼叫lr方法,進行**建模

from sklearn.linear_model import logisticregression as lr

lr=lr()

lr.fit(x,y)

#模型的準確率**打分並顯示

lr.score(x,y)

print("準確率"+str(np.round(lr.score(x,y),2)*100)+"%")

#取任意10行資料對打分情況做**,結果是乙個由0和1組成的10個數字的陣列

x.loc[0:10]

lr.predict(x.loc[0:10])

#顯示實際情況

phone.loc[0:10]["是否為心理健康書"].values

2 、**:選定來進行**的這些變數中哪些對**結果影響最大?

可以用rlr來進行有效特徵的提取**

尋找有效特徵

from sklean.linear_model import randomizedlogisticregression as rlr

#如果安裝的anaconda版本特別新,對有些函式進行了刪除和合併,可以在jupyter的命令列裡輸入一些**對庫檔案版本進行調整

pip install --user scikit-learn==0.20.4

#用rlr來尋找有效特徵

rlr=rlr()

rlr.fit(x,y)

#獲取各資料列的貢獻度

print("貢獻度:",rlr.score_)

#顯示是否為有效特徵

print("是否為有效特徵:", rlr.get_support())

#上述執行結果出來會有很多警告,下面**可關閉警告

import logging

import warnings

logging.diable(logging.warning)

warnings.filterwarnings("ignore")

#顯示有效特徵情況:

print("有效特徵:", list(x.columns[rlr.get_support()]))

備註:貢獻度打分值大於0.25顯示true, 小於0.25則為false

邏輯回歸解決多分類問題

第二種方法 從演算法入手 傳統的邏輯回歸只能處理二分類問題,對於多分類任務,主要有如下兩種方案。某個分類演算法有n類,將某一類和另一模擬較作為二分類問題,總共可分為cn2 c cn 2 種不同的二分類模型,給定乙個新的樣本點,求出每種二分類對應的概率,概率最高的一類作為新樣本的 結果。某個分類演算法...

分類與回歸

分類與回歸問題 在用dbn 作手寫體識別實驗的時候,hinton 2006 年發表的 a fast learning algorithm for deep belief nets 所對應的 裡面用到 softmax 進行多分類。現就所查的資料和自己所理解的,整理這篇 blog softmax回歸模型...

分類和回歸

分類模型和回歸模型本質一樣,分類模型是將回歸模型的輸出離散化。一般來說,回歸問題通常是用來 乙個值,如 房價 未來的天氣情況等等,例如乙個產品的實際 為500元,通過回歸分析 值為499元,我們認為這是乙個比較好的回歸分析。回歸是對真實值的一種逼近 簡言之 定量輸出稱為回歸,或者說是連續變數 明天的...