欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python垃圾郵件的邏輯回歸分類示例詳解

 更新時(shí)間:2021年11月29日 09:19:03   作者:K_C_of  
這篇文章主要給大家介紹了關(guān)于Python垃圾郵件的邏輯回歸分類的相關(guān)資料,作為初學(xué)者實(shí)踐文本分類是一個(gè)不錯(cuò)的開始,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

?加載垃圾郵件數(shù)據(jù)集spambase.csv(數(shù)據(jù)集基本信息:樣本數(shù): 4601,特征數(shù)量: 57, 類別:

1 為垃圾郵件,0 為非垃圾郵件),閱讀并理解數(shù)據(jù)。

按以下要求處理數(shù)據(jù)集

(1)分離出僅含特征列的部分作為 X 和僅含目標(biāo)列的部分作為 Y。

(2)將數(shù)據(jù)集拆分成訓(xùn)練集和測(cè)試集(70%和 30%)。

建立邏輯回歸模型

分別用 LogisticRegression 建模。

結(jié)果比對(duì)

(1)輸出測(cè)試集前 5 個(gè)樣本的預(yù)測(cè)結(jié)果。

(2)計(jì)算模型在測(cè)試集上的分類準(zhǔn)確率(=正確分類樣本數(shù)/測(cè)試集總樣本數(shù))

(3)從測(cè)試集中找出模型不能正確預(yù)測(cè)的樣本。

(4)對(duì)參數(shù) penalty 分別取‘l1', ‘l2', ‘elasticnet', ‘none',對(duì)比它們?cè)跍y(cè)試集上的預(yù)測(cè)性能(計(jì)算 score)。

拆分特征值和目標(biāo)數(shù)據(jù)前面已經(jīng)可知,預(yù)測(cè)和模型得分結(jié)果也是直接使用模型的方法,下面主要是要測(cè)試準(zhǔn)確率和找出不能正確預(yù)測(cè)的樣本,以及不同的懲罰下的模型得分,主要運(yùn)用到Numpy模塊和列表list的函數(shù),代碼如下:

y_train_pred = model.predict(x_train)


# In[26]:


train_accu = np.equal(y_train,y_train_pred)
print(y_train.shape,y_train_pred.shape)


# In[27]:


#計(jì)算模型在測(cè)試集上的分類準(zhǔn)確率(=正確分類樣本數(shù)/測(cè)試集總樣本數(shù))
accuracy = list(train_accu).count(True)/len(list(y_train))
print("準(zhǔn)確率為"+"%f"%float(accuracy*100)+"%")


# In[28]:


#從測(cè)試集中找出模型不能正確預(yù)測(cè)的樣本。
test_accu = list(np.equal(y_pred,y_test))
i = 0
len_test = len(test_accu)
False_index = []
[False_index.append(i) for i in range(0,len_test) if test_accu[i]==False]
print(x_test[False_index])


# In[29]:


#對(duì)參數(shù) penalty 分別取‘l1', ‘l2', ‘elasticnet', ‘none',對(duì)比它們?cè)跍y(cè)試集上的預(yù)測(cè)性能(計(jì)算 score)。
model2 = LogisticRegression(multi_class='ovr',penalty='l1',max_iter=10000,solver='saga').fit(x_train, y_train)
print("penalty='l1'"+'的得分:', model2.score(x_test, y_test))


# In[33]:


#對(duì)參數(shù) penalty 分別取‘l1', ‘l2', ‘elasticnet', ‘none',對(duì)比它們?cè)跍y(cè)試集上的預(yù)測(cè)性能(計(jì)算 score)。
model2 = LogisticRegression(multi_class='ovr',penalty='l2',max_iter=10000).fit(x_train, y_train)
print("penalty='l2'"+'的得分:', model2.score(x_test, y_test))


# In[31]:


model4 = LogisticRegression(multi_class='ovr',penalty='elasticnet',max_iter=10000,solver='saga',l1_ratio=0).fit(x_train, y_train)
#模型建立產(chǎn)生一些參數(shù)的問題一般都是sklearn的版本問題,要是忽略,就升級(jí)更新一下版本就好了solver指定penalty參數(shù)的范圍
print("penalty='elasticnet'"+'的得分:', model4.score(x_test, y_test))


# In[32]:


model5 = LogisticRegression(multi_class='ovr',penalty='none',max_iter=10000,solver='lbfgs').fit(x_train, y_train)
print("penalty='none'"+'的得分:', model5.score(x_test, y_test))

總結(jié)

到此這篇關(guān)于Python垃圾郵件的邏輯回歸分類的文章就介紹到這了,更多相關(guān)Python垃圾郵件分類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論