載入垃圾郵件資料集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....