목록전체 글 (26)
데이터분석 공부하기
1. Datetime 활용: oil_18['기간'] = oil_18['기간'].apply(lambda x: pd.to_datetime(str(int(x)))) def date_split(df): df['year'] = df['datetime'].dt.year df['month'] = df['datetime'].dt.month df['day'] = df['datetime'].dt.day df['week'] = df['datetime'].dt.week 2. 함수 활용(def, apply): def date_year(s): return int(s[:4]) def date_month(s): return int(s[5:7]) def date_day(s): return int(s[8:-1]) car_recall['..
[반복문] 어떤 '조건'이나 '범위' 내에서 어떤 명령을 '반복적'으로 수행 * For문 : -'범위' -> Sequence -Sequence의 원소를 하나씩 변수에 넣어가면서 '원소로 반복'하는 방법 for 변수 in 시퀀스: -반복 시 ' 횟수'만 아는 경우 (for-range) 1) 범위를 아는 경우: range(a,b): a부터 b-1까지 2) 횟수를 아는 경우: range(a): 0부터 a-1까지 -len(): sequence의 원소 수만큼 실행 [LIST] 1) element그대로 받는 경우, for이후 변수(i이던 fruit이던)에 바로 element가 들어간다. fruits = ['apple', 'grape', 'banana'] 1) for fruit in fruits: print(frui..
list comprehension : [출력표현식 for 요소 in 입력 Sequence [if 조건식]] -Python의 네가지 comprehension 기능 중 하나 (list, set, dict, generator) -반복 가능한 iterable 자료형을 생성할 때 사용, 여러 줄의 for/if 조건문도 한 줄로 만들 수 있다 -입력 Sequence로부터 지정된 표현식에 따라 새로운 리스트 컬렉션을 만듬 -문법 : lambda(lambda arguments : expression) : '한 줄'로 함수를 표현하는 익명 함수 기법 f = lambda x, y : x+y f(3,4) map(function, sequence) : input(func, seq)을 each element에 적용하여 lis..
데이터 재구조화(reshaping) 1) pivot() vs pd.pivot_table() vs groupby(): -pivot : 데이터의 형태만 변화; 연산불가 -pivot_table : 형태변화, aggfunc을 통한 연산 가능; 반환값 항상 dataframe) -groupby : 형태변화, 연산가능 (pivot_table보다 빠르고, 컬럼이 series형태면 series로 반환) https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf https://pandas.pydata.org/pandas-docs/stable/user_guide/groupby.html 2) stack(), unstack() 3) melt() 4) wide_to_long() 5) pd.crosst..
[Matplotlib VS Matlab VS Seaborn] Matplotlib vs. Matlab - Matplotlib : a python visualization library. It is made to work like matlab. - Matlab : numerical computing environment and programming language (best for engineer/scientist) Seaborn : extension to matplotlib(need to be imported together) It introduces additional plot types and visual improvement. [Basics : Figure & Axes] f, ax (figure, a..
★ 문자열 Formatting : 문자열 속 특정 위치에 특정 값 삽입 1) % formatting : %s 문자열, %d 정수, %f 실수 - python3 이에 주로 사용되며 c언어 style - 단점 : 코드가 길어질 수록 장황 my_str = 'My name is %s' % 'harry' my_str 'My name is harry' 2) str.format (a.k.a. '{}'.format())-https://pyformat.info/ - python3 이후부터 사용 -.format() 괄호안에 중괄호에 대입할 문자나 숫자 입력 -{인자 : 자리수.소수점 뒤 자리수 f} : 콜론(:) 전에는 format()에 오는 인자의 인덱스 순서, 콜론(:) 후에 컴마(.)전에는 총 자리수, 컴마(.) 후..
[Multiple Conditions] * Method 1 : np.select() 더보기 numpy.select(condlist, choicelist, default=0) Return an array drawn from elements in choicelist, depending on conditions. -> list를 사용하여 여러 조건을 깔끔하게 걸 수 있다; 스피드가 빠르다. conditions = [(hr['HourlyRate'] = 30) & (hr['HourlyRate'] = 50) & (hr['HourlyRate'] = 70) & (hr['Hourly..
-머신러닝 완벽가이드- [분류; Classification] -지도학습의 대표적인 유형으로 레이블값(결정 값, 클레스 값)을 ML알고리즘으로 학습해 모델 생성 -> 미지의 레이블 값 예측 -다양한 ML알고리즘으로 구현가능 : 나이브 베이즈, 로지스틱 회귀,결정 트리, SVM, 최소 근접, 신경망, 앙상블 1. 결정트리 (Decision Tree): -트리(tree) 기반으로 if/else를 자동으로 찾아내 예측을 위한 규칙을 만드는 알고리즘(스무고개와 유사) -구성 : 규칙 노드(Decision Node: 규칙 조건), 리프 노드(Leaf Node: 결정된 class 값), 서브 트리(Sub Tree: 새 규칙 조건마다 생성) -특징 : -장점: 1) 쉽고/직관, 2)시각화 표현 가능(graphvis),..
머신러닝의 개념: -어플리케이션을 수정하지 않고 데이터를 기반으로 패턴을 하긋ㅂ하고 결과를 에측하는 알고리즘 기법 -복잡한 조건/규칙, 데이터 분석(예측 분석), 개발 복잡도(영상, 음석, 자연어, 데이터마이닝 등)에 활용 1) 머신러닝의 종류: 지도학습(분류, 회귀, 추천 시스템, 시각/음석감지/인지, 텍스트분석/NLP); 비지도학습(군집, 차원축소, 강화학습) 2) ML의 단점- 데이터에 매우 의존적(Garbage In, Garbage Out); 데이터 이해, 가공, 처리, 추출이 알고리즘/모델보다 더 중요 3) Python vs R: -R: 통계전용 프로그램 언어; 전통적 통계 및 마이닝 패키지(SPSS, SAS, MATLAB)의 고비용 개선을 위해 만들어짐 -Python: 다양한 영역에서 사용되는..
성능 평가 지표(Evaluation Metric) : -회귀 : 실제값과 예측값의 오차 평균값(1)절대값을 씌운 오차 평균, 2) 제롭 값에 루트를 씌운 평균 오차) -분류: 정확도(Accuracy), 오차행렬(Confusion Matrix), 정밀도(Precision), 재현율(Recall), F1 스코어, ROC AUC -분류의 결정 클래스 값의 종류 : 이진 분류(긍정/부정), 멀티 분류 -상위 분류지표는 모든 분류에 적용되지만, 특히 이진 분류에서 매우 중요하게 강조됨 [분류의 평가 지표] 1. 정확도(accuracy_score())= (예측결과가 동일한 데이터 건수)/ (전체 예측 데이터 건수) -분균형한 레이블 값 분포에 활용하면 안됨. ex) 타이타닉 생존자 예측에서 단순 성별로만 생존자로 ..