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

2022-09-22 00:48:10 字數 2262 閱讀 9490

載入垃圾郵件資料集spambase.csv(資料集基本資訊:樣本數: 4601,特徵數量: 57, 類別:

1 為垃圾郵件,0 為非垃圾郵件),閱讀並理解資料。

按以下要求處理資料集

(1)分離出僅含特徵列的部分作為 x 和僅含目標列的部分作為 y。

(2)將資料集拆分成訓練集和測試集(70%和 30%)。

建立邏輯回歸模型

分別用 logisticregression 建模。

結果比對

(1)輸出測試集前 5 個樣本的**結果。

(2)計算模型在測試集上的分類準確率(=正確分類樣本數/測試集總樣本數)

(3)從測試集中找出模型不能正確**的樣本。

(4)對引數 penalty 分別取『l1', 『l2', 『elasticnet', 『none',對比它們在測試集上的**效能(計算 score)。

拆分特徵值和目標資料前面已經可知,**和模型得分結果也是直接使用模型的方法,下面主要是要測試準確率和找出不能正確**的樣本,以及不同的懲罰下的模型得分,主要運用到numpy模組和列表list的函式,**如下:

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]:

#計算模型在測試集上的分類準確率(=正確分類樣本數/測試集總樣本數)

accuracy = list(train_accu).count(true)/len(list(y_train))

print("準確率為"+"%f"%float(accuracy*100)+"%")

# in[28]:

#從測試集中找出模型不能正確**的樣本。

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]:

#對引數 penalty 分別取『l1', 『l2', 『elasticnet', 『none',對比它們在測試集上的**效能(計算 score)。

model2 = logisticregression(multi_class='ovr',penalty='l1'aeevhsg,max_iter=10000,solver='saga').fit(x_train, y_train)

print("penalty='l1'"+'的得分:', model2.score(x_test, y_test))

# in[33]:

#對引數 penalty 分別取『l1', 『l2', 『elasticnet', 『none',對比它們在測試集上的**效能(計算 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 = logiaeevhsgsticregression(multi_class='ovr',penalty='elasticnet',max_iter=10000,solver='saga',l1_ratio=0).fit(x_train, y_train)

#模型建立產生一些引數的問題一般都是sklearn的版本問題,要是忽略,就公升級更新一下版本就好了solver指定penalty引數的範圍

print("penalty='elasti'"+www.cppcns.com'的得分:', 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))

總結

垃圾郵件傳送的幾個特性

垃圾郵件佔據目前傳送郵件的七成以上。這麼多垃圾郵件,有什麼特性?本文給大家介紹一下。一,垃圾郵件具有強制性。強制性體現在客戶是被強制營銷,強制接收各種垃圾郵件廣告。因此,客戶沒有辦法避開這些郵件,只能被動強制接收。二 大規模傳送。現在的edm工作者一直追求數量,數量勝過一切,因此,不斷的大批量傳送,...

利用NLTK sklearn進行垃圾郵件分類

利用nltk來進行資料處理和提取特徵,再交由sklearn進行機器學習訓練分類器,嘗試了多個機器學習演算法並評價分類效能。上 import nltk from nltk.corpus import stopwords from nltk.stem import wordnetlemmatizer i...

第 65 章 反垃圾郵件相關

從主域開始檢視 txt 記錄 neo netkiller nslookup type txt 163.com server 8.8.8.8 address 8.8.8.8 53 non authoritative answer 163.com text v spf1 include spf.163....