본문 바로가기
728x90
반응형

AI Research47

[인공지능 기초] 차원의 저주(Curse of Dimensionality) ▶ 차원의 저주(Curse of Dimensionality)란? 차원의 저주란 학습을 위한 데이터의 차원(=변수의 개수)이 증가하면서 학습데이터의 수가 차원의 수보다 적어져 성능이 저하되는 것을 말합니다. 예를들어, 총 데이터의 수는 200개인데 변수는 700개인 경우가 차원의 저주에 해당합니다. 차원이 높아질수록 데이터 사이의 거리가 멀어지고, 빈 공간이 생기는 공간 섬김 현상(sparsity)을 보입니다. 즉, 간단히 말해 차원이 증가함에 따라 모델의 성능이 안좋아지는 현상인데, 왜 이런 현상이 발생하는 것일까요? 위 그림은 차레대로 1차원, 2차원, 3차원 공간에서의 데이터 분포를 나타냅니다. 1차원인 선의 경우를 보면, 선위에 데이터들이 빽빽하게 나란히 놓여있습니다. 2차원인 평면의 경우는 1차원.. 2023. 3. 5.
[데이터 분석] Feature Engineering (Sklearn) Kaggle의 'Adult Census Income' 데이터를 이용하였습니다. ​ ▶ 인코딩(Encoding) 모델이 이해하기 힘든 형태의 feature 혹은 애매하게 잘못 학습될 가능성이 있는 feature들을 의미적인 관점에서 변화시켜줍니다. 인코딩의 결과에 의해서 알고리즘이 보는 feature의 의미적인 특징이 드러나게 됩니다. one-hot encoding과 label encoding, Mean encoding 에 대해 설명하겠습니다. from sklearn.preprocessing import OneHotEncoder, LabelEncoder 1. one-hot encoding categorical encoding이라고도 하며, 범주형 변수에 대해 각 클래스별 독립적인 feature를 생성합니다.. 2023. 3. 5.
[데이터 분석] Data Preprocessing (Pandas) Kaggle의 'Adult Census Income' 데이터를 이용하였습니다. ​ ▶ 결측치 찾기(자세한 내용은 링크를 참조해주세요) -결측치가 있는 행을 찾아주는 코드는 아래와 같습니다. train[train.apply(lambda x: "?" in list(x), axis=1)] ## 물음표 있는 row만 찾아줍니다. ​ - 'age'가 30이상이고 'workclass'가 '?'인 행을 찾아 workclass의 값을 'No'로 바꿔줍니다. train.loc[(train.age >= 30)&(train.workclass=='?'), 'workclass'] = 'No' train.workclass.value_counts() ​ ​ ▶ 이상치 처리 -이상치 확인해보기 train.describe() desc.. 2023. 3. 5.
[데이터 분석] 자주 쓰이는 라이브러리 함수(Pandas) Kaggle의 'jigsaw-unintended-bias-in-toxicity-classification' 데이터를 이용하였습니다. ​ ▶ pandas 파일 읽기 toxic_train=pd.read_csv(os.path.join(PATH,'train.csv'), #dtype= ) read_csv 함수의 인자로 dtype을 설정해줄 수 있습니다. 따로 설정해주지 않으면 전부 int64, float64로 읽어서 메모리를 너무 많이 차지하는 현상이 발생할 수도 있습니다. 읽은 데이터를 출력해 보면 아래와 같습니다. ​ 총 1,804,874 개로 이루어져 있으며, 한 행은 45개의 속성으로 이루어져 있습니다. 이 dataframe안의 데이터를 확인하는 방법에는 대표적으로 head와 tail이 있습니다. ▶ he.. 2023. 3. 5.
728x90
반응형