1. 데이터 임포트 후 데이터프레임 형태로 바꾸기

# 라벨 있으면 군집은 웬만하면 안쓰는 게 좋다, 

# 기본 모듈 임포트

# 모듈 임포트
import numpy as np
import pandas as pd
import sklearn
import matplotlib.pyplot as plt

import warnings
warnings.filterwarnings('ignore')

#파일 임포트

import os 
from os.path import join
from sklearn.datasets import load_wine

# 메모리에 올리기
wine = load_wine()

# 와인 데이터 확인
print(wine.DESCR)
# 데이터 가져오기

data = wine.data
label = wine.target
columns = wine.feature_names

# 데이터 사용하기 쉽도록 pandas 데이터 형태로

data = pd.DataFrame(data, columns = columns)
data.head()

2. 전처리

# 데이터 전처리
# 1. 값이 너무 들쭉날쭉하니 min-max scaling으로 값을 맞춰주기
# 2. 데이터 항목 수 만큼 차원이 생기니 (차원은 높고 데이터 갯수는 172개로 적어 데이터의 밀도가 낮아 특성뽑기 힘들다)-차원의 축소

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
data = scaler.fit_transform(data)
# fit transform 이후 numpy 배열로 바뀜
data[:5]    

#여전히 데이터 갯수는 적고 항목은 많다.


#그러니 차원의 축소 필요
from sklearn.decomposition import PCA 
pca = PCA(n_components=2)   # 차원의축소는 보통 2차원으로 많이 축소
data = pca.fit_transform(data)

# 확인
data[:5]

# 최종적으로 만들어진 데이터의 모양
data.shape

    출력>
    (178, 2)

 

+ Recent posts