π₯ μ€λμ λͺ©ν_Featrue Engineering
- μ΅μ’ λ°μ΄ν°μ μ£Όμ 컬λΌμ λ©΄μ μΌλ‘ λλμ΄μ, λ©΄μ λΉ nμ μμ κ°λ μΌλ‘ μ€μΌμΌλ§ μλ
- μ 체 컬λΌμ 3κ° ννΈλ‘ λλμ΄μ κ°μ νΌμ³ μμ§λμ΄λ§μ κ°λ¨ν μλν΄λ³΄κΈ°λ‘ νλ€.
- λν, μκΆμ 골λͺ©μκΆκ³Ό λΉκ³¨λͺ©μκΆ(λ°λ¬μκΆ λ±)μΌλ‘ λλμ΄ λΆμμ μ§ννκΈ°λ‘ νλ€.
- λλ μννΈ λ¨μ§μμ μΈλμ, λ°°νμ§ μννΈ λ¨μ§μμ μΈλμλ₯Ό λ΄λΉνλ€.
- μννΈ κ΄λ ¨ 컬λΌμ λ€μκ³Ό κ°μΌλ©°, λ°°νμ§ λ°μ΄ν°λ 골λͺ©μκΆμλ§ μ‘΄μ¬νλ€.
cols_gol = ['μννΈ_λ¨μ§_μ', 'μννΈ_κ°κ²©_1_μ΅_λ―Έλ§_μΈλ_μ',
'μννΈ_κ°κ²©_1_μ΅_μΈλ_μ', 'μννΈ_κ°κ²©_2_μ΅_μΈλ_μ', 'μννΈ_κ°κ²©_3_μ΅_μΈλ_μ',
'μννΈ_κ°κ²©_4_μ΅_μΈλ_μ', 'μννΈ_κ°κ²©_5_μ΅_μΈλ_μ', 'μννΈ_κ°κ²©_6_μ΅_μ΄μ_μΈλ_μ', 'λ°°νμ§_μννΈ_λ¨μ§_μ',
'λ°°νμ§_μννΈ_κ°κ²©_1_μ΅_λ―Έλ§_μΈλ_μ', 'λ°°νμ§_μννΈ_κ°κ²©_1_μ΅_μΈλ_μ', 'λ°°νμ§_μννΈ_κ°κ²©_2_μ΅_μΈλ_μ',
'λ°°νμ§_μννΈ_κ°κ²©_3_μ΅_μΈλ_μ', 'λ°°νμ§_μννΈ_κ°κ²©_4_μ΅_μΈλ_μ', 'λ°°νμ§_μννΈ_κ°κ²©_5_μ΅_μΈλ_μ',
'λ°°νμ§_μννΈ_κ°κ²©_6_μ΅_μ΄μ_μΈλ_μ']
π₯ μ΄μμΉ νμ
π 골λͺ©μκΆμ μννΈ/μΈλ μ λΆν¬ μκ°ν (λ°μ€νλ‘―)
nrows = 4
ncols = 4
fig, axes = plt.subplots(nrows = nrows, ncols = ncols, figsize = (20, 10))
for i, col in enumerate(cols_gol):
row_idx = i // ncols
col_idx = i % ncols
axes[row_idx, col_idx].boxplot(df_gol[col])
axes[row_idx, col_idx].set_title(f'{col} Box Plot')
axes[row_idx, col_idx].set_ylabel('Value(κ°)')
plt.tight_layout()
plt.show()
π λΉκ³¨λͺ©μκΆμ μννΈ/μΈλ μ λΆν¬ μκ°ν (λ°μ€νλ‘―)
π₯ λΆν¬ νμ
π 골λͺ©μκΆμ μννΈ/μΈλ μ λΆν¬ (νμ€ν κ·Έλ¨)
nrows = 2
ncols = 4
fig, axes = plt.subplots(nrows = nrows, ncols = ncols, figsize = (20,10))
for i, col in enumerate(cols_etc):
row_idx = i // ncols
col_idx = i % ncols
axes[row_idx, col_idx].boxplot(df_etc[col])
axes[row_idx, col_idx].set_title(f'{col} Box Plot')
axes[row_idx, col_idx].set_ylabel('Value(κ°)')
plt.tight_layout()
plt.show()
π λΉκ³¨λͺ©μκΆμ μννΈ/μΈλ μ λΆν¬ (νμ€ν κ·Έλ¨)
μ½λλ μμ λμΌ
π₯ μ΄μμΉ μΆκ° νμ(IQR μ΄μ©)
π 골λͺ©μκΆ λ°μ΄ν°μ νΌμ²μ μ΄μμΉ κ°μμ λΉμ¨
- λΉκ³¨λͺ©μκΆλ λμΌνκ² μ§ν
- νΌμ²λ³ μ΄μμΉ λΉμ¨μ΄ 5% λ΄μΈμ΄λ©°, λ°λμ μ κ±°ν μ΄μ λ₯Ό μ°Ύμ§ λͺ»ν΄ μ΄μκ° μ κ±°λ μνκΈ°λ‘ ν¨
def outlier_iqr(data, column):
# lower, upper κΈλ‘λ² λ³μ μ μΈνκΈ°
global lower, upper
# 4λΆμμ κΈ°μ€ μ§μ νκΈ°
q25, q75 = np.quantile(data[column], 0.25), np.quantile(data[column], 0.75)
# IQR κ³μ°νκΈ°
iqr = q75 - q25
# outlier cutoff κ³μ°νκΈ°
cut_off = iqr * 1.5
# lowerμ upper bound κ° κ΅¬νκΈ°
lower, upper = q25 - cut_off, q75 + cut_off
# print('IQRμ',iqr, 'μ΄λ€.')
# print('lower bound κ°μ', lower, 'μ΄λ€.')
# print('upper bound κ°μ', upper, 'μ΄λ€.')
# 1μ¬ λΆμμ 4μ¬ λΆμμ μν΄μλ λ°μ΄ν° κ°κ° μ μ₯νκΈ°
data1 = data[data[column] > upper]
data2 = data[data[column] < lower]
num_outliers = data1.shape[0] + data2.shape[0]
# μ΄μμΉ μ΄ κ°μ ꡬνκΈ°
return num_outliers
for i in cols_gol:
print(f'col:{i}')
result = outlier_iqr(df_gol, i)
result_ratio = round(result/df_gol[i].shape[0] * 100, 2)
print(f'μ΄μμΉ κ°μ: {result}')
print(f'μ΄μμΉ λΉμ¨: {result_ratio}%')
print('\n')
π₯ κ°λ¨ν μκ΄κ΄κ³ λΆμ
π 골λͺ©μκΆ λ°μ΄ν°μ νΌμ²μ μκ΄κ΄κ³ μκ°ν(ννΈλ§΅)
correlation_matrix = df_gol.corr()
mask = np.triu(np.ones_like(correlation_matrix, dtype=bool))
mask |= correlation_matrix < 0.4
plt.figure(figsize=(10, 6))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1, mask = mask, annot_kws={"size": 8})
plt.title('μκ΄ κ³μ ννΈλ§΅')
plt.show()
π€Ύ Issue Today
- ν΅ν© λ°μ΄ν° νλ μμμμ κ²°μΈ‘μΉ λ¬Έμ
- 컬λΌλ³ λ°μ€νλ‘― μκ°ν κ³Όμ μμ 골λͺ©μκΆμλ§ μ‘΄μ¬νλ λ°°νμ§ μννΈ λ°μ΄ν°μ κ²°μΈ‘μΉκ° μ‘΄μ¬νμμμ λ€λ¦κ² νμΈ
- ν΄λΉ λ°μ΄ν°λ νΉμ μκΆμ λ°°νμ§(λ°κ²½ 200mλΌκ³ ν¨)μ μννΈ κ°κ²©λλ³ μΈλμλ₯Ό μμ§ν κ²
π μ§μ λ°μ΄ν°λ₯Ό μΆκ°νκ±°λ μ 곡λ°μ RawDataμμ κ²°μΈ‘μΉκ° μ‘΄μ¬ν κ²μ΄μμ
π κ²°μΈ‘μΉλ₯Ό “λ체”νλ κ²μΌλ‘ μκ²° - λ체 λ°μ΄ν° μ μ μμλ 컬λΌλ³ mean VS median μΌλ‘ μ΄κ²¬μ΄ μμμΌλ, λΆν¬(νμ€ν κ·Έλ¨μ κ·Έλ €μ§)λ₯Ό νμΈν΄λ³Έ κ²°κ³Ό μ΄μμΉ λΉμ¨μ΄ λμ§ μμμ, meanμΌλ‘ κ²°μΈ‘μΉλ₯Ό μ±μ
for col in cols_bae:
col_mean = df_gol[col].mean()
df_gol[col].fillna(col_mean, inplace = True)
π€Ύ To Do List
- νμλ³μ μμ± λ° νκ°
- λ‘κ·Έ λ³ν κ³ λ €(λΆν¬μ λ°λ₯Έ μ κ·ν)
- νΌμ² λλ μ¬λΆ νλ¨
- λͺ¨λΈλ§ μ½λ νμ (κ°μ¬λκ» νΌλλ°± λ°κΈ°)
728x90
'Projects > πͺ Convenience Store Location Analysis' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘μ νΈ μ€ν°λ] νκ· λ¬Έμ νκ° μ§ν (0) | 2023.09.14 |
---|---|
[νλ‘μ νΈ μ€ν°λ] Feature Scaling (Min-Max scaling) (0) | 2023.09.14 |
[νλ‘μ νΈ μ€ν°λ] Feature Engineering (0) | 2023.09.13 |
[Mini Project] 7. λͺ¨λΈλ§ Baseline Code (feat. Trouble Shooting π€¨) (0) | 2023.09.12 |
[Mini Project] μ μ²λ¦¬ ν, μ€κ°μ κ² (23.09.11) (0) | 2023.09.12 |