본문 바로가기
  • 콩's 코딩노트

머신러닝29

Item based collaboration filtering 을 하기 위해, 데이터프레임의 corr() 함수를 이용한 correlation 과, min_periods 파라미터 사용법 Item based collaboration filtering 이란? 사용자가 주체가 되지 않고 아이템을 주체로 삼아 이 아이템을 선택한 사용자들에게 비슷한 아이템을 추천해주는 방식의 필터링 방법이다. pivot_table 함수로 만든 데이터프레임을 이용해 상관관계 분석을 하여 비슷한 유형의 영화끼리 추천할 수 있도록 해보자. 이때 한 아이템의 상관관계를 구하기 위해 corrwith 함수를 사용한다. 사용법은 다음과 같다. df.corrwith(df['Titanic (1997)']) # corrwith의 해석 : 파라미터 값에 적은 데이터에 대해 앞에 있는 데이터프레임과의 상관계수를 구하라. 영화 타이타닉과 목록에 있는 영화들의 상관관계를 구했다. 데이터프레임과 파라미터값에 상관관계의 기준이 될 컬럼을 .. 2022. 5. 12.
Pandas 데이터프레임의 pivot_table 함수 사용법 사람들이 관람한 영화에 대해 점수를 매긴 위와 같은 데이터가 있다. 이를 기준으로 어떤 영화를 시청한 사람에게 비슷한 영화를 추천하려고 한다. 하지만 지금의 경우는 어떤 유저가 영화 하나만을 시청한 게 아니라 수많은 영화에 대해 평점을 남겼을 수 있기 때문에 지금 상태에서 데이터를 처리하기엔 무리가 있다. 그 때 사용하는게 Pandas 의 pivot_table 함수이다. df = movies_rating_df.pivot_table(values= 'rating', index= 'user_id', columns= 'title', aggfunc= 'mean') # aggfunc의 디폴트 값은 평균값 mean # 피봇 테이블의 인덱스와 컬럼. 밸류에 원하는 값을 넣을 수 있도록 생각해보자. 판다스 데이터프레임에.. 2022. 5. 12.
Time Series 데이터를 처리할 때 사용하는 resample 함수의 사용법과,이 함수를 사용하기 위해 인덱스를 설정하는 방법 다음과 같은 데이터프레임이 있다. 우리는 날짜와 시간이 표시된 'Date' 컬럼을 기준으로 이를 기준으로 1년마다의 범죄 데이터를 열람해보려 한다. 이 때 어떠한 컬럼에 관하여 다른 컬럼을 비교하는 함수를 배운 적이 있다. 바로 groupby 함수이다. 언뜻 보면 비슷해보이지만 groupby 함수는 같은 데이터값을 가지고 있는 카테고리컬 데이터를 기준으로 데이터를 모아주기 때문에 날짜와 시,분,초가 모두 표시된 현재의 시간 데이터에서는 쓸 수 없는 함수이다. 그래서 우리는 인덱스를 기준으로 원하는 시간 범위별로 묶을 수 있는 resample 함수를 활용하여야 한다. resample 함수를 사용하기위한 준비과정을 먼저 알아보자. 데이터나 인덱스를 시간대별로 묶는다는 이야기는 데이터가 단순 문자열이 아닌 시.. 2022. 5. 12.
DataFrame에서 문자열로 된 날짜 컬럼을 , datetime64로 변경하는 방법 / Pandas Series의 dt 속성 사용법 문자열로 되어있는 날짜 컬럼을 진짜 날짜 데이터(datetime64)으로 변경하는 방법에 대해 알아보자. 방법은 Pandas에 포함된 to_datetime 함수를 이용한다. df['Date'] = pd.to_datetime(df['Date'], format = '%m/%d/%Y %I:%M:%S %p') to_datetime 함수의 파라미터는 변경시켜줄 문자열로 된 날짜 컬럼을 입력한다. 그 뒤에 format 파라미터에서 변경시켜줄 데이터의 모양을 정해준다. 이 때 가장 중요한 것은 원래 데이터의 모양과 같아야 제대로 적용이 된다. 위 과정과 같이 weekday 와 같은 dt 속성을 사용하려면 datetime64로 변경을 해줘야한다. 방법은 Pandas.Series.dt.dt속성 으로 사용할 수 있다. 2022. 5. 11.
read_csv 함수의 error_bad_lines = False 파라미터의 사용법 우리는 데이터를 관리할 때 거의 매번 사용하게 되는 함수가 있다. 바로 Pandas 의 read_csv 함수이다. 이 read_csv 함수는 파라미터 값으로 error_bad_lines이라는 파라미터 값을 가지고 있다. 이 파라미터 값은 불러오는 csv 파일에 정상적이지 않은 컬럼이나 다른 행보다 더 많거나 적은 컬럼을 가진 행이 있는 등 비정상적이고 에러가 생길 수 있는 데이터들을 삭제하고 경고창도 뜨지 않게 해주는 파라미터이다. 실제 적용 시 비정상적인 부분이 있다면 아래와 같은 메세지가 뜨고 파일을 정상적으로 불러올 수 있게 된다. chicago_df_1 = pd.read_csv('Chicago_Crimes_2005_to_2007.csv', error_bad_lines=False) chicago_d.. 2022. 5. 11.
Pandas의 groupby 함수 사용법 groupby 함수는 원하는 컬럼만 묶어 데이터를 살펴볼 수 있는 아주 편리한 함수이다. Pandas 에서는 어떻게 사용하는지 알아보자. 다음과 같은 데이터프레임이 있다. 이 때 날짜 별로 가격이 어떻게 변하는지 확인해보려한다. 이렇게 날짜 ('Date' 컬럼) 별로 가격('AveragePrice'컬럼) 의 변화를 알아볼 때 groupby 함수를 쓰면 편리하게 알아볼 수 있다. df_date = df.groupby('Date')['AveragePrice'].mean() # groupby 한 이유는 같은 날짜의 데이터가 여러개이기 때문이고, # mean 함수는 하루동안 가격의 평균값을 구하기 위해서이다. 특히 날짜를 보면 같은 날짜가 여러번 반복되어있어 하나의 그룹으로 묶어줄 필요가 있기 때문에 group.. 2022. 5. 11.