목록AI (45)
개발학습일지
데이터 불균형 맞추기 필요한 라이브러리 임폴트 - 설치 안되어 있을 경우 pip install 검색 _ 구글에 pypi 검색해서 사이트에서 필요한 라이브러리 설치 명령어 찾기 from imblearn.over_sampling import SMOTE SMOTE() - 균형이 맞게 데이터 늘리거나 삭제하는 방법이 있는데, 일반적으로 늘리는 방법을 사용한다 - 늘리는 방법으로 코드를 작성해보자 # 변수에 저장하여 사용 sm = SMOTE(random_state=2) X, y = sm.fit_resample(X, y)
트레이닝용과 테스트용 데이터 나누기 필요한 라이브러리 임폴트 from sklearn.model_selection import train_test_split train_test_split() - 데이터셋을 학습용과 테스트용으로 나눠준다 train_test_split(X, y, test_size= 0.2, random_state=3) # test_size= 0.2 테스트에 20% 사용하겠다 일반적으로 0.2 나 0.25 사용한다 # 각 변수에 저장(순서대로 입력) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= 0.2, random_state=3)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kzOSq/btsGFAsNWDq/kdxtJS5c7ZCrpvKucLSKbK/img.png)
숫자 데이터 범위를 맞춰주는 피처스케일링 필요한 라이브러리 임폴트 from sklearn.preprocessing import StandardScaler, MinMaxScaler StandardScaler() : 데이터 표준화 # 변수에 저장해서 사용 >>> s_scaler_x = StandardScaler() >>> s_scaler_x.fit_transform(X) MinMaxScaler() : 데이터 정규화(값이 0과 1사이로 나옴) # 변수에 저장해서 사용 >>> m_scaler_x = MinMaxScaler() >>> m_scaler_x.fit_transform(X)
문자열 데이터를 레이블 인코딩 또는 원핫 인코딩 하기 (LabelEncoder(), OneHotEncoder()) 데이터를 학습하기 위해서는 방정식에 대입되어야 하는데방정식은 수학식이므로 데이터는 모두 숫자로 되어 있어야 한다따라서 문자열 데이터를 숫자로 바꿔줘야 한다 필요한 라이브러리 임폴트import numpy as npimport matplotlib.pyplot as pltimport pandas as pdfrom sklearn.preprocessing import LabelEncoder, OneHotEncoderfrom sklearn.compose import ColumnTransformer LabelEncoder() : 문자열 데이터를 정렬해서 순서대로 0부터 시작하는 숫자로 바꿔준다 - 카테..
데이터 전처리에 필요한 라이브러리 import numpy as np import matplotlib.pyplot as plt import pandas as pd from imblearn.over_sampling import SMOTE from sklearn.preprocessing import StandardScaler, MinMaxScaler from sklearn.model_selection import train_test_split 1. pd 데이터 가져오기 2. 0 이나 다른 데이터로 채워져 있는 값 nan 으로 변환 3. 비어있는 데이터 확인(있으면 삭제하거나 채우기) 4. 예측할 컬럼을 y, 예측을 위해 필요한 데이터는 X로 지정 5. 데이터 범위 맞춰주기(피처스케일링) 6. 문자열 데이터가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bB8G9P/btsGEjR9Z55/2uURmKcZ9hYvyZq9t5bAVK/img.png)
계층적 군집 Hierarchical Clustering : 데이터를 계층적으로 연결해가면서 가까운 군집끼리 군집을 구성해 가는 알고리즘이다 기초 라이브러리 import numpy as np import matplotlib.pyplot as plt import pandas as pd 기초 데이터 df df = pd.read_csv('../data/Mall_Customers.csv') df.head() 1. nan 확인 df.isna().sum() >>> CustomerID 0 Genre 0 Age 0 Annual Income (k$) 0 Spending Score (1-100) 0 dtype: int64 2. y 값이 없으므로 X 값만 구하기 X = df.loc[ : , 'Genre' : ] X.head(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cjaWcP/btsGFrIBsH7/cKXFHu5WtxrumJ3U3ZMRK0/img.png)
기본 임폴트 라이브러리 # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd 오늘 포스팅에서 사용할 df df = pd.read_csv('Mall_Customers.csv') df.head() 데이터를 비슷한 정보끼리 묶으려고 한다 1. nan 있는지 확인한다 df.isna().sum() >>> CustomerID 0 Genre 0 Age 0 Annual Income (k$) 0 Spending Score (1-100) 0 dtype: int64 2. 필요한 데이터 X로 묶어준다 X = df.loc[ : , 'Genre':'Spending Score (1-100)'] 3. X 에 Gen..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/df4Llo/btsGCYHmNQq/knpTPwy8FPylFDiDGuBcYK/img.png)
Unsupervised Learning 은 y(정답) 없이 인공지능을 학습 시키는 것 이다. (비지도 학습) 평균군집 K-Means는 - 군집 중심점(centroid)라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택한다 - 군집 중심점은 서택된 포인트의 평군 지점으로 이동하고 이동된 중심점에서 다시 가까운 포인트를 선택한다 - 이 과정을 반복하다가 더 이상 중심점의 이동이 없으면 반복을 멈추고 해당 중심점에 속하는 포인트들을 군집화 한다 Choosing the right number of clusters 몇개로 분휴 할지는 어떻게 결정할까? K의 갯수를 정하는 방법 클러스팅이 잘 되었다 라는 것은 가까운 데이터끼리 잘 뭉쳐 있다는 것이다 센터가 원소들과의 거리가 멀수록 값이 커진..