목록2024/04 (90)
개발학습일지
![](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/3B4a1/btsGDIxWhE1/SjpFyKHHFN4C5KHbvBGfx1/img.png)
컬럼을 인덱스로 만들어 보자 - set_index() 사용한다 df.set_index('name', inplace=True) df 인덱스를 컬럼으로 만들어 보자 - reset_index() 사용한다 df.reset_index(inplace=True) df - 인덱스가 컬럼으로 올라왔을때 그 컬럼을 바로 없애고 싶다면 drop= 파라미터를 사용한다 df.reset_index(drop=True, inplace=True)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oLkNb/btsGFmt2LoZ/NeuKNXuw0D6RoDLiy1kBOK/img.png)
인덱스 이름, 컬럼 이름을 변경하는 방법은 rename 함수를 사용한다 인덱스 명을 바꾸는 방법 - store3 를 last store로 변경해보자 df.rename( index= { 'store3' : 'last store' }, inplace=True ) df 컬럼 명을 바꾸는 방법 - bikes => hat, suits => shoes 으로 변경해 보자 df.rename( columns= { 'bikes':'hat', 'suits':'shoes' }, inplace=True ) df 새로운 컬럼을 만들고 벨류 값을 넣어주는 방법 - 새로운 컬럼 name 을 만들되, A, B, C 라고 넣자 df['name'] = ['A','B','C'] df
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVnF8Z/btsGE5ziBbi/FFcsbBTmN0ORpKBJYMJxTK/img.png)
데이터프레임 합치기(concat) : 새로운 판다스 데이터 프레임을 만들어, 기존에 있는 데이터 프레임에 합쳐 보자 - 새로운 데이터프레임을 만든다 new_item = [ {'bikes':20, 'pants':30, 'watches':35, 'glasses':4 } ] new_store_df=pd.DataFrame(data=new_item, index=['store3']) - 기존 데이터프레임 df에 새로운 데이터프레임 new_store_df 합친다 - 비어 있는 컬럼 값은 NaN으로 입력된다 df = pd.concat( [ df, new_store_df ] ) df 데이터 삭제하는 방법 : 행 삭제, 열 삭제 : drop() 함수를 이용하고, axis 만 설정해 주면 된다 - 데이터(인덱스) 행 삭제 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/p4DzD/btsGBQXbOnc/4DvShiQI5bTIkg6nH8Yz71/img.png)
오늘 포스팅에 사용 할 기초데이터 df 데이터프레임 데이터 값 변경 - 판다스이기 때문에 원하는 값 엑세스 후 연산 기호를 사용해준다 - 데이터 엑세스는 .loc[] 또는 .iloc[]를 사용한다 # 스토어 2의 watches 데이터를 , 20으로 변경 해주세여 df.iloc[ 1, 2 ] = df.iloc[ 1, 2 ]+10 df df.loc[ 'store2', 'watches' ] = 20 df 데이터프레임에 새로운 컬럼을 만들고 데이터를 넣어 보자 - shirts 라는 컬럼을 만들고, store1 에는 15개, sotres2에는 2개로 만들어 보자 df['shirts'] = [15, 2] df - pants 값과 shirts 값을 더해서 suits 라는 컬럼을 만들어 보자 df['suits'] = ..
![](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(..