๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Machine Learning/Case Study ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป26

[Kaggle] ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 5 (CRM Analytics ๐Ÿ›๏ธ๐Ÿ›’) ์•ž ํฌ์ŠคํŒ…์—์„œ ๊ณ ๊ฐ๊ตฐ์„ ๋‚˜๋ˆ„์–ด ์ „์ฒด์ ์ธ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ์ด์ œ ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๊ณ ๊ฐ๊ตฐ ๋ณ„ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•ด ๋ณธ๋‹ค.(R, F, M์„ ๊ธฐ์ค€์œผ๋กœ) Segment Analysis 1. ๊ณ ๊ฐ๊ตฐ ๋ณ„ R, F, M ๊ธฐ์ˆ  ํ†ต๊ณ„ ํ™•์ธ segment ๊ธฐ์ค€์œผ๋กœ r, f, m ๊ฐ’์˜ ํ‰๊ท ๊ณผ ํ‘œ์ค€ํŽธ์ฐจ, ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ํ™•์ธํ•ด ๋ณด์ž rfm[['recency','monetary','frequency','segment']] \ .groupby('segment').agg({'mean', 'std', 'max', 'min'}) 2. ๊ณ ๊ฐ๊ตฐ ๋ณ„ ๋ถ„ํฌ ์‹œ๊ฐํ™” ๊ฐ ๊ณ ๊ฐ๊ตฐ ๋ณ„๋กœ ์–ด๋– ํ•œ ์–‘์ƒ์„ ๋ณด์ด๋Š”์ง€ ํŒŒ์•…ํ–ˆ๋‹ค. ์ด์ œ ๊ณ ๊ฐ๊ตฐ ๋ณ„๋กœ ๋ถ„ํฌ(์ˆ˜)๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ ํ™•์ธํ•ด ๋ณด์ž. ์ด๋•Œ, ๊ฐ ๊ณ ๊ฐ๊ตฐ ์ˆ˜๋ฅผ ์ „์ฒด ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๋น„์œจ๋„ ํ•จ๊ป˜ ํ‘œ์‹œํ•ด ์ค€๋‹ค. plt.. 2023. 10. 8.
[Kaggle] ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 4 (CRM Analytics ๐Ÿ›๏ธ๐Ÿ›’) ์•ž์˜ ํฌ์ŠคํŒ… [Kaggle] ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 3 (CRM Analytics ๐Ÿ›๏ธ๐Ÿ›’)๊ณผ ์ด์–ด์ง‘๋‹ˆ๋‹ค. RFM score๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณ ๊ฐ ์„ธ๋ถ„ํ™”๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. Segmentation ์ •๊ทœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ RFM score๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณ ๊ฐ์˜ ๊ทธ๋ฃน์„ ๋‚˜๋ˆˆ๋‹ค. r : ์ ‘๋‘์‚ฌ๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ด ํŒจํ„ด์˜ ๋ฌธ์ž์—ด์€ Raw ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌ๋จ์„ ์˜๋ฏธํ•œ๋‹ค.(\๊ฐ€ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Œ) [1-2] : ๋ฌธ์ž ํด๋ž˜์Šค๋กœ, ์ด ๋ถ€๋ถ„์—์„œ ๋ฌธ์ž์—ด์—์„œ 1 ๋˜๋Š” 2์™€ ๋งค์นญ๋˜๋Š” ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค. [3-4] : ์œ„์™€ ๋™์ผํ•˜๊ฒŒ, ํ•ด๋‹น ๋ถ€๋ถ„์—์„œ ๋ฌธ์ž์—ด์ด 3 ๋˜๋Š” 4์™€ ๋งค์นญ๋˜๋Š” ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค. ์ฆ‰, r'[1-2][3-4]' ๋Š” ๋ฌธ์ž์—ด์—์„œ 1 ๋˜๋Š” 2์— ๋งค์นญ๋˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ๊ณ , ๊ทธ๋‹ค์Œ 3 ๋˜๋Š” 4์— ๋งค์นญ๋˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ๋Š” ๊ฒƒ์ด๋‹ค... 2023. 10. 8.
[Kaggle] ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 3 (CRM Analytics ๐Ÿ›๏ธ๐Ÿ›’) ๋ณธ ํฌ์ŠคํŒ…์€ ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 1, 2์™€ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์ „์ฒ˜๋ฆฌ๊นŒ์ง€ ๋๋‚ธ ๋ฐ์ดํ„ฐ๋กœ RFM ๋ถ„์„์„ ํ•ด๋ณด์ž. RFM ์ด๋ž€? "Recency, Frequency, Monetary"์˜ ์•ฝ์–ด๋กœ, ๊ณ ๊ฐ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ๋ฐ ๊ณ ๊ฐ ๋ถ„์„์— ์‚ฌ์šฉ๋˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋‹ค. ์ด ์„ธ ๊ฐ€์ง€ ์ง€ํ‘œ๋Š” ๊ณ ๊ฐ์˜ ๊ตฌ๋งค ํ–‰๋™ ๋ฐ ๊ฐ€์น˜๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. RFM ๊ฐ’ ๊ตฌํ•˜๊ธฐ Recency๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งˆ์ง€๋ง‰ ๊ตฌ๋งค์ผ๋กœ๋ถ€ํ„ฐ ์ง€๊ธˆ๊นŒ์ง€ ์ง€๋‚œ ๋‚ ์งœ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์†ก์žฅ๋‚ ์งœ์˜ ์ตœ๋Œ“๊ฐ’์œผ๋กœ ๋งˆ์ง€๋ง‰ ๊ตฌ๋งค์ผ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. print(df['InvoiceDate'].max()) 2011-12-09 12:50:00 datetime์„ ์ด์šฉํ•˜์—ฌ ๊ธฐ์ค€ ๋‚ ์งœ๋ฅผ ์„ ์ •ํ•œ๋‹ค. ๊ณ ๊ฐ ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋•Œ, ์†ก์žฅ๋‚ ์งœ๋Š” ๊ธฐ์ค€ ๋‚ ์งœ์™€์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ผ .. 2023. 10. 8.
[Kaggle] ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 2 (CRM Analytics ๐Ÿ›๏ธ๐Ÿ›’) ๐Ÿšง ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 1 ํฌ์ŠคํŒ…๊ณผ ์ด์–ด์ง‘๋‹ˆ๋‹ค! ์ง€๊ธˆ๊นŒ์ง€ ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•๊ณผ ๊ตญ๊ฐ€๋ณ„ ๋ถ„ํฌ๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ์‚ดํŽด๋ณด์•˜๋‹ค. ๋˜ํ•œ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ฒฐ์ธก์น˜์™€ ์ค‘๋ณต๊ฐ’๋„ ๊ฐ„๋‹จํžˆ ํ™•์ธํ–ˆ๋‹ค. ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๋“ค์—ฌ๋‹ค๋ณด๋Š” '๊ธฐ์ˆ  ํ†ต๊ณ„'๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ๊ธฐ์ˆ  ํ†ต๊ณ„ : Descriptive Statistics desc_stats ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์—ฌ ๊ธฐ์ˆ  ํ†ต๊ณ„ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค๋„๋ก ํ•œ๋‹ค. df.describe(). T๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df์˜ ๊ธฐ์ˆ ํ†ต๊ณ„๋Ÿ‰์„ ๊ณ„์‚ฐํ•˜๊ณ , ์ด๋ฅผ ์ „์น˜ํ•œ๋‹ค. ์ด ํ†ต๊ณ„๋Ÿ‰์„ pd.DataFrame()์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ธ desc_df๋กœ ๋งŒ๋“ ๋‹ค. matplotlib์˜ f, ax๋กœ Figure, Axes ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , sns๋กœ ํžˆํŠธ๋งต์„ ๊ทธ๋ ค์ค€๋‹ค. annot_kws : ํ‘œ์‹œ๋˜๋Š” ์ˆซ์ž์˜ ๊ธ€๊ผด ํฌ๊ธฐ def des.. 2023. 10. 8.
[Kaggle] ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ 1 (CRM Analytics ๐Ÿ›๏ธ๐Ÿ›’) ์ด ํฌ์ŠคํŒ…์€ ์ด์ปค๋จธ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ณผ์ •์„ ์Šคํ„ฐ๋””ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ kaggle ๋…ธํŠธ๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. https://www.kaggle.com/code/sercanyesiloz/crm-analytics ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ import import os import datetime # import squarify import warnings import pandas as pd import numpy as np import datetime as dt from operator import attrgetter import seaborn as sns import matplotlib.pyplot as plt import matplotlib.colors as mcolors import plotly.graph_objs as go f.. 2023. 10. 8.
[๊ณต๋ชจ์ „ ์ˆ˜์ƒ์ž‘ ์Šคํ„ฐ๋””] ์ผํšŒ์šฉํ’ˆ ์“ฐ๋ ˆ๊ธฐ ๊ฐ์†Œ๋ฅผ ์œ„ํ•œ,๋‹คํšŒ์šฉ๊ธฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ ๊ฐœ๋ฐœ (์„œ์šธ์‹œ ๋น…๋ฐ์ดํ„ฐ ์บ ํผ์Šค) ๋ณธ ํฌ์ŠคํŒ…์€ ๊ณต๋ชจ์ „ ์šฐ์ˆ˜์ž‘๋“ค์„ ์Šคํ„ฐ๋””ํ•˜๊ณ  ์ฃผ์š” ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. (์ถœํ’ˆ์ž‘์˜ ํ๋ฆ„๋Œ€๋กœ ์ž‘์„ฑ) ์ถœ์ฒ˜ ์„œ์šธ์‹œ ๋น…๋ฐ์ดํ„ฐ ์บ ํผ์Šค : 2021 ๊ณต๋ชจ์ „ ์ตœ์šฐ์ˆ˜์ž‘ (https://bigdata.seoul.go.kr/noti/selectNoti.do?r_id=P260&bbs_seq=499&ac_type=A1&sch_type=&sch_text=%EB%8B%A4%ED%9A%8C%EC%9A%A9%EA%B8%B0&currentPage=1) ๋ฌธ์ œ ์ •์˜์™€ ๋ชฉํ‘œ ์ œ์‹œ ๋ชฉ์  ๋ฐ ๋ฌธ์ œ ์ •์˜ ์ฃผ์ œ๋ฅผ ์„ ์ •ํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ : ์™œ ์ด ์ฃผ์ œ(๋Œ€์ƒ)์„ ์„ ์ •ํ•˜์˜€๋Š”์ง€ ์„œ์šธ์‹œ ํ˜„ํ™ฉ ์ž๋ฃŒ์™€ ํ•จ๊ป˜ ์ œ์‹œ ์ฃผ์ œ์— ๋Œ€ํ•œ ๋’ท๋ฐ›์นจ ์„ค๋ช… : ํ˜„์‹ค์ ์œผ๋กœ ํ•ด๋‹น ์ฃผ์ œ๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋‹ค๋ฃจ์–ด์ง€๊ณ  ์žˆ๊ณ , ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋‚จ์•„์žˆ๋Š”์ง€ ์‚ฌ๋ก€ ํ™•์ธ : ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด.. 2023. 10. 5.
[kaggle] ํ”ผ๋งˆ ์ธ๋””์–ธ ๋‹น๋‡จ๋ณ‘ ์˜ˆ์ธก ๋ณธ ํฌ์ŠคํŒ…์€ ์˜ 3์žฅ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ „์ฒด์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ดํ”ผ๊ณ , ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€ ๋ชจํ˜• ๊ฒฐ๊ณผ๋ฅผ ๊ต์ •ํ•˜๋Š” ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๊ฒฐ๊ด๊ฐ’ ๋ถ„ํฌ ์ฒดํฌ from sklearn.linear_model import LogisticRegression import pandas as pd diabetes_data = pd.read_csv('diabetes.csv') print(diabetes_data['Outcome'].value_counts()) diabetes_data.head(3) diabetes_data.info() 2. ๊ฒฐ๊ณผ ํ‰๊ฐ€ ํ•จ์ˆ˜ ์ •์˜ ์ •ํ™•๋„, ์ •๋ฐ€๋„, ์žฌํ˜„์œจ, f1 ๊ฐ’, roc_auc ๊ฐ’, ํ˜ผ๋™ํ–‰๋ ฌ ์ถœ๋ ฅ ์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” y_test, ์˜ˆ์ธก ๊ฒฐ๊ณผ(pred), 1๋กœ ์˜ˆ์ธกํ•  ํ™•๋ฅ (p.. 2023. 9. 29.
[๐Ÿฆ€ ๊ฒŒ ๋‚˜์ด ์˜ˆ์ธก(6)] Baseline Modeling 2 (LAD Regression) (4)~(5) ํฌ์ŠคํŒ…์—์„œ ์ง„ํ–‰ํ•œ ๋ชจ๋ธ๋ง ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋‘ ๋ฒˆ์งธ ๋ฒ ์ด์Šค๋ผ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ํ”ผ์ณ ์—”์ง€๋‹ˆ์–ด๋ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋Š” catboost ๋ชจ๋ธ๋กœ ์˜ˆ์ธก์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด์™ธ ๋‹ค๋ฅธ ๋ชจ๋ธ๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ณ  k-fold๋ฅผ 10ํšŒ ์ง„ํ–‰ํ•˜์—ฌ ๊ฐ ํด๋“œ๋งˆ๋‹ค ๋ชจ๋ธ๋ณ„ ์„ฑ๊ณผ๋ฅผ ํ™•์ธํ•œ๋‹ค. ๐Ÿš€ ๋ชจ๋ธ๋ง ์ค€๋น„ : ๋ณ€์ˆ˜ ์„ ํƒ & ์ธ์ฝ”๋”ฉ X = train.drop(columns = ['Age'], axis = 1) Y = train['Age'] # train ๋…๋ฆฝ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ฃผ์š” ํŒŒ์ƒ๋ณ€์ˆ˜ ์ƒ์„ฑ X['Meat Yield'] = X['Shucked Weight'] / (X['Weight'] + X['Shell Weight']) X['Shell Ratio'] = X['Shell Weight'] / X['Weight'] X['Weigh.. 2023. 9. 26.
[๐Ÿฆ€ ๊ฒŒ ๋‚˜์ด ์˜ˆ์ธก(5)] ๋ชจ๋ธ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•œ Feature Engineering ๐Ÿš€ Feature Engineering (4) ๋ฒˆ ํฌ์ŠคํŒ…์—์„œ, 1์ฐจ ๋ฒ ์ด์Šค๋ผ์ธ ๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•ด ๋ณด์•˜๋‹ค. ํ•ด๋‹น ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•œ ๋ถ„์„๊ฐ€๋Š” Feature Engineering์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์œ ์˜๋ฏธํ•œ ํŒŒ์ƒ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ชจ๋ธ๋งํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋” ์ข‹์•˜๋‹ค๊ณ  ํ•œ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” Feature Engineering์—์„œ ๊ฒ€ํ† ํ•˜๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํŒŒ์ƒ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜๋ฅผ ์•Œ์•„๋ณด๊ณ  ๊ทธ ๊ณผ์ •์„ ์งš์–ด๋ณธ๋‹ค. ๐Ÿง‘‍๐Ÿ’ป ๋น„์œจ ํŠน์„ฑ (Ratio Features) ์ด๋ฒˆ ์ผ€์ด์Šค๋Š” ๊ฒŒ์˜ ๊ป์งˆ ๋ฌด๊ฒŒ, ๋ชธ์˜ ๊ธธ์ด ๋“ฑ ๊ฒŒ์˜ ์‹ ์ฒด์  ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  '๋‚˜์ด'๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ณ€์ˆ˜๋ฅผ ํ† ๋Œ€๋กœ ์ „์ฒด ์ค‘์— ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ๋‚˜๋ˆ„์–ด, ํŠน์ • '๋น„์œจ'์„ ๋„์ถœํ•˜์—ฌ ํŒŒ์ƒ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. Ratio Features ๋ผ๊ณ ํ•˜๋ฉฐ, ์„œ๋กœ ๋‹ค๋ฅธ.. 2023. 9. 25.
728x90