Menu
CoddyTech

복습: 스팸 필터

Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 20번째.

challenge icon

챌린지

중급

이 장의 첫머리에서 다룬 스팸 필터를 만드세요. emails.csv에는 이메일 200개와 links, exclaims, caps_words, from_contact(알려진 발신자라면 1), words, spam이 들어 있습니다. 프로그램은 임계값을 읽어들입니다.

  1. 테스트용으로 4분의 1을 따로 남겨 두고(random_state=0), 학습 행을 기준으로 스케일링한 다음 LogisticRegression을 학습하세요. 테스트 정확도를 출력하세요(소수점 이하 3자리).
  2. 임계값에서 테스트 이메일 중 스팸으로 분류된 이메일 수, 그중 실제 이메일 수, 그리고 통과한 스팸 수를 세세요.
  3. 스팸을 가장 강하게 나타내는 증거와 그 가중치를 출력하세요(소수점 이하 2자리).

다른 서비스에서 0.7을 사용한 경우:

Test accuracy: 0.884
At 0.7: 15 emails to spam (1 of them real), 4 spam let through
Strongest spam evidence: links (1.38)

직접 해보기

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

emails = pd.read_csv("emails.csv")
features = ["links", "exclaims", "caps_words", "from_contact", "words"]
threshold = float(input())

# 아래에 코드를 작성하세요

지도 학습의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러