CS66 데이터셋 분리: Validation (검증) 데이터셋은 무엇인가? 포스팅 목적 아무런 생각없이 K-fold를 사용하고 있었는데, 문득 validation dataset이 무엇인지 모른다는것을 인지했다. 누가 물어보면 대답을 못하는 상황이었다. 그래서 간단하게 정리.. 너무 짧아서 글이랄 것도 없지만 그래도 정리하는데 의의를 두고..! 데이터셋 구성 일반적으로 학습하기 위한 용도의 training dataset (훈련 데이터셋), 검증하는 validation dataset (검증 데이터셋), 성능평가하는 test dataset (시험 데이터셋) 세가지로 나눈다. 검증이란게 정확히 뭐냐 그럼? Validation set training dataset에서 학습한 모델의 하이퍼 파라미터를 튜닝하기 위한 용도의 데이터셋이다. (하이퍼파라미터: 사용자가 설정해야 하는 변수) 즉 .. CS/Python 2022. 12. 8. pandas groupby cumcount 사용법 이해 포스팅 목적 간단하게 cumcount의 사용법과 용례를 알아본다 정의 그룹 내 각 아이템들의 갯수를 센다. 0부터 세기 시작한다. 예제코드 데이터셋 df = pd.DataFrame([['a'], ['a'], ['a'], ['b'], ['b'], ['a']], columns=['A']) print(df) a가 4개, b가 2개 있는 간단한 데이터프레임이다. 사용법/용례 df_cc = df.groupby('A').cumcount() print(df_cc) cumcount는 계산 대상이 되는 칼럼에 groupby로 묶은 후 적용한다. df_cc라는 이름의 변수를 만들어 칼럼 A에 대해 groupby와 cumcount를 적용했다. 0부터 시작하여 숫자를 센다. 아래와 같이 내림차순을 적용할 수도 있다. CS/Python 2022. 12. 6. [코드 스터디] UCI-HAR 데이터셋2: 중복칼럼 리네이밍 포스팅 목적 지난번 포스트에서는 UCI-HAR 데이터셋에서 중복피쳐가 무엇인지 확인하고, 데이터값까지 중복인지 알아보는 코드를 작성했다. 이번 포스트에서는 UCI-HAR 데이터셋의 중복된 칼럼이름을 리네이밍하는 코드를 작성하자. 2022.10.28 - [PL/Python] - 코드 스터디: UCI-HAR 데이터셋 중복칼럼 리네이밍 (1) 코드 스터디: UCI-HAR 데이터셋 중복칼럼 리네이밍 (1) 포스팅 목적 코드를 작성하는 연습을 하고, 어떤 코드를 썼는지 기록하는 포스팅. 특정 상황에서 문제를 해결하기 위해 어떤 코드를 작성했는지 정리하자. 문제상황 UCI-HAR 데이터셋에서 피쳐이 tbr74.tistory.com 중복칼럼 리네이밍 아이디어 features.txt를 읽은 features_df는 (5.. CS/Python 2022. 11. 23. 데이터프레임의 인덱스 중복과 loc 프로퍼티 포스팅 목적 데이터프레임에서 .loc[]의 사용에 대해 한번 점검하려고 포스팅! 본론 예제코드 Animal칼럼, 최대스피드 칼럼을 가진 데이터프레임을 아래와 같이 만들었다. import pandas as pd df = pd.DataFrame({'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'], 'Max Speed': [380, 370, 24, 26]}, index=[4,4,5,'긹']) df .loc[ ]는 인덱스로 '행'을 조회하는 프로퍼티 dataframe loc를 검색하면 'label'을 이용해 행과 열 데이터에 접근하는 프로퍼티라 한다. 이때 loc[ _ ] 에 들어가는 레이블은 인덱스를 의미한다. 인덱스는 0, 1, 2, ... 이렇게 나가는 intege.. CS/Python 2022. 11. 2. pandas Dataframe, Series 차이점 정리 (데이터프레임, 시리즈) 포스팅 목적 열심히 공부하던 찰나, 가장 기본이 되는 데이터프레임과 시리즈가 무엇이고 무슨 차이가 있는지 확실하게 설명하기 어렵다는 생각이 들었다. 역시 기초가 제일 중요하다.. 시리즈와 데이터프레임 차이점을 위주로 코드 스터디를 해보자! 첫번째: 기본적인 차이점 가장 근본적인 차이는 칼럼갯수에 있다. 시리즈는 칼럼이 1개, 데이터프레임은 1개 이상이다. import pandas as pd # 간단하게 길이 4짜리 리스트를 만들었다 ldata = [1,2,3,4] # 시리즈 ser = pd.Series(ldata) print('[시리즈의 경우]') print(ser) print('shape:', ser.shape, '\n') # 데이터프레임 df = pd.DataFrame(ldata) print('[데이.. CS/Python 2022. 10. 31. 데이터프레임에서 for loop을 사용하는 다양한 방법 포스팅 목적 데이터프레임을 for문으로 다루는데, 생각한대로 잘 안된다. 아주 기본적인 내용인데, 이런것도 모르는 난 바본가..? 공부해보자! 예제 데이터셋 단순한 데이터프레임을 꾸렸다. 요기서 어떻게 순차적으로 데이터를 꺼내는지 실습해보자. import pandas as pd df = pd.DataFrame([['김가영', 'Korea', 162], ['이상호', 'Korea', 175], ['David', 'America', 180], ['변기태', 'Korea', 173]], columns = ['name', 'country', 'height'], index = [1,2,3,4]) df 인덱스값을 의도적으로 [1,2,3,4]로 주어 데이터를 한 행씩 꺼낼 때 인덱스가 유지되는지를 확인하고자 하였다... CS/Python 2022. 10. 28. [코드 스터디] UCI-HAR 데이터셋1: 중복칼럼 확인 포스팅 목적 코드를 작성하는 연습을 하고, 어떤 코드를 썼는지 기록하는 포스팅. 특정 상황에서 문제를 해결하기 위해 어떤 코드를 작성했는지 정리하자. 문제상황 UCI-HAR 데이터셋에서 피쳐이름이 중복되어 duplicate name error가 생기는 경우가 있다. 1) 중복되는 피쳐가 무엇인지 확인하고, 2) 중복되는 피쳐이름을 리네이밍하자. 코드가 길어져 포스트 두개에 나누어 작성한다. 데이터셋 데이터 설명 UCI Human Activity Recognition Dataset을 사용한다. https://archive.ics.uci.edu/ml/datasets/human+activity+recognition+using+smartphones UCI Machine Learning Repository: Hu.. CS/Python 2022. 10. 28. pandas.DataFrame.apply 함수 기본 사용법 포스팅 목적 데이터프레임에 apply 함수가 있는걸 처음 보았고 어떻게 사용하는것인지 공부하기 위해 포스팅! apply 함수를 알아보자 함수설명 데이터프레임의 축을 따라서 함수를 적용한다. 이 포스팅에서는 데이터프레임 apply를 알아보지만, 시리즈에도 똑같은 apply 함수가 있다. (pandas.Series.apply) Universal function np.sqrt 함수와 같이 1개에 적용되는 유니버셜 함수는 전체 데이터에 적용된다. Reducing function np.sum 과 같이 열이나 축 단위로 적용되는 함수들은 계산할 axis를 정해주어야 한다. lambda식 적용 람다식도 apply함수에 넣어주면 된다 아래 예제코드는 key 칼럼에 apple, korea, banana, melon이 있.. CS/Python 2022. 10. 27. pandas.DataFrame.groupby 기본 사용법 포스팅 목적 왜 이렇게 코드분석이 안될까, 코드작성이 안될까 생각했는데 내가 groupby함수를 제대로 이해하고 사용하지 못하는 데 원인이 있는 것 같았다. 특히 cumcount() 사용에 있어서 헷갈렸는데, 이부분 좀 더 익숙하게 체화시키기 위해 정리해보자. groupby 공부하기 첫번째, 그룹바이 객체 특정 칼럼으로 그룹바이를 호출하면, 그룹바이 객체를 반환한다는 사실. 이 사실을 인지하고 있는것과 모르는것은 큰 차이가 있다. df = pd.DataFrame({'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'], 'Max Speed': [380, 370, 24, 26]}) print(df, '\n') gb_animal = df.groupby('Animal') p.. CS/Python 2022. 10. 27. Pandas merge함수 사용법 기초 포스팅 목적 pandas 라이브러리의 merge함수 사용법을 공부해보자 merge함수 두 데이터프레임을 병합하는 함수. 두개의 함수가 있다는걸 유의해야 한다. pandas.DataFrame.merge()가 있고, pandas.merge()가 있다. 전자의 경우 인자로 병합대상이 되는 데이터프레임을 1개 넣어주지만 후자 pandas.merge()의 경우 병합대상 데이터프레임을 2개 써주어야한다. 함수원형 pd.merge(df_left, df_right, on=None, how="inner") 파라미터 how는 어떤 병합방식을 택할것인지를 넣어준다. 기본적으로 SQL의 inner join 방식이 사용된다. 파라미터 on은 어떤 칼럼을 기준으로 merge할 것인지를 써준다. 만약 df_left와 df_righ.. CS/Python 2022. 10. 26. numpy.r_ 연산자 사용법 포스팅 목적 넘파이 사용중 c_와 r_ 연산자를 접하게 되었다. 무슨 의미인지 무슨 기능을 가졌는지 전혀 연상도 안되고... c_ 연산자는 r_에 기반하였다고하니 일단 r_부터 알아보자. * 주의할 점: 함수가 아니라 연산자! ( )가 아니라 [ ]를 쓴다. numpy.r_ 함수 정의 "첫번째 축을 따라서 slice object를 concatenation으로 변환한다." 사용법 세 가지 사용례가 있다. 첫번째, 대괄호에 comma-seperated 배열이 들어오는 경우 단순히 인자로 들어온 배열을 이어붙이면 된다. 두번째, 대괄호에 slice notation이 들어오는 경우 보통의 경우 np.arange(start, stop, step)으로 쓰이고, 만약 세번째 인덱스 부분에 j가 들어가면 np.lins.. CS/Python 2022. 10. 21. 피쳐 중요도 feature_importances_ 포스팅 목적 결정트리 Decision Tree Classifier와 결정트리를 기반으로 앙상블 학습하는 Random Forest에서 확인할 수 있는 피쳐 중요도에 대해 정리해보는 시간. 다른 학습기들에서도 똑같이 사용할 수 있는지는 아직 모르겠다. feature_importances_ 프로퍼티에 대해 간단히 알아보자. 피쳐 중요도 이 프로퍼티 feature_importances_는 결정트리에서 노드를 분기할때, 해당 피쳐가 클래스를 나누는데 얼마나 영향을 미쳤는지를 표기하는 척도이다. 노말라이즈된 ndarray를 반환하기 때문에 0~1값을 가진다. 0이면 클래스를 구분하는데 해당 피쳐가 선택되지 않았다는것, 1이면 해당 피쳐가 클래스를 완벽하게 나누었다는것을 의미한다 실습1: iris basic 우선 i.. CS/Python 2022. 10. 18. 이전 1 2 3 4 5 6 다음