본문 바로가기
300x250

Data Science91

[ScikitLearn] 머신러닝 필수, scikitlearn 설치 및 사이킷런 버전 확인 머신러닝 사이킷런이란? 사이킷런(scikit-learn, skLearn)은 sciPy와 Toolkit을 합친 것이라 할 수 있는, 파이썬 기반의 머신러닝 라이브러리다. 텐서플로우, 케라스 등 딥러닝 전문 라이브러리도 활용도가 높지만, 조금 더 어렵더라도 꼭 알아야 하는 대표적인 라이브러리는 단연 사이킷런이라고 할 수 있다. 크게 분류, 회귀, 군집화, 차원 축소 4가지로 나눌 수 있으며, 아래와 같이 다양한 알고리즘들을 활용할 수 있다. 분류 알고리즘 SGD Classifier KneighborsClassifier EnsembleClassifiers NaiveBayes LinearSVC SVC Kernel approximation (cf. 회귀 알고리즘) SGD Regressor Lasso Elastic.. 2022. 9. 30.
apply(lambda if) 함수 데이터프레임 Pandas if else 사용법 판다스 데이터프레임을 조작할 때, 내가 원하는 함수를 만드는 경우가 있다. 즉, def를 이용해 함수로 나타낸 코드의 return 값을 모든 데이터프레임에 적용할 수 있다는 것인데, 이럴 때 이용하는 것이 apply 함수이다. 리스트에서 map 함수가 있다면, 데이터프레임에는 apply 함수가 있다. map과 apply도 아래에서 간단히 살펴보자. 전체 데이터프레임이나 특정 칼럼 값을 일괄적으로 가공하는 게 더 빠르겠지만, 특정 조건을 걸어서 조금 더 복잡하게 데이터를 가공해야 할 때 lambda식과 결합하여 apply lambda를 이용하는 것이 좋다. 파이썬 Python list apply lambda x y 함수 먼저 lambda(람다) 함수에 대해서 먼저 알아보자. lambda 함수는 함수명을 프.. 2022. 9. 29.
비전공자 데이터분석 가능할까? 데이터시각화부터 시작하기 최근 데이터에 대한 관심은 날로 높아지고 있다. 이에 따라 데이터와 관련된 전공이 아니더라도 데이터를 분석해야 하는 역량이 필요해지고 있는데, 무엇보다 비전공자 데이터분석가 취업이 가능한가? 하는 의문이 많은 것으로 생각된다. 관련된 정보와 교육은 참 많다. 6개월만에 데이터분석가로 취업하기, 심지어 30일 만에 데이터 사이언티스트 되기와 같은 프로그램을 본 적도 있다. 그러나 비전공자라는 단어에는 내가 해당 분야를 공부해본 적이 없는 초심자라는 명제가 붙는다. 해당 프로그램 내의 SQL, R, 파이썬, 머신러닝, 통계와 수학 지식 등을 짧은 기간 내에 비전공자 수강생이 모두 소화해내려면 얼마나 많은 노력이 필요할까? 전공과 비전공에 상관없이, 많은 시간과 노력을 들일수록 꿈을 이루는 것은 분명히 가능한.. 2022. 9. 17.
[Git] 초보가 자주 쓰는 필수 Git 명령어 모음 정리 개인적으로 수행하는 프로젝트나 코드를 Git으로 관리하기로 다짐하고, 가끔씩 깃허브를 업데이트하고 있다. 그 중, 나와 같은 초보가 꼭 알고 있어야 하는 꿀팁과, 자주 쓰는 필수 Git 명령어 모음을 간단히 정리해둔다. 1. Git Bash 활용 Git Bash를 잘 활용하면 하나하나 경로를 이동해야만 하는 불편함을 해소할 수 있다. 바로 이렇게 Repo로 지정할 폴더를 우클릭해서, 'Git Bash Here'를 누르면 바로 해당 경로에서 Git Bash가 실행되기 때문에 아주 편리하게 코드를 업데이트할 수 있다! 2. Repository로 지정 나는 아직 초보이지만, 가끔 아무리 구글링을 해도 나오지 않는 경우 내가 필요한 코드를 작성하는 경우가 있다. 높은 수준은 아니더라도 혹시나 필요한 분들을 위해.. 2022. 9. 11.
[Pandas] 판다스 결측치 제거 대체 fillna(0) 간단히 응용하기 칼럼에 값이 없는 공백값일 때, 즉 Null값이 존재할 때, 판다스는 이를 NaN으로 표기한다. 엄밀히 말하면 공백을 의미하는 Null, 숫자가 아니라는 뜻의 NaN(Not a Number), NA(Non Available)은 다른 뜻이지만 판다스에서 다루는 결측치는 NaN으로 이해하는 것이 편할 것이다. NaN은 평균이나 합계를 계산할 때 제외가 되는 등, 말 그대로 사용할 수 없는 데이터를 의미하기 때문에 적절한 처리를 거쳐주는 과정이 필요하다. 실무에서는 여러 가지 상황과 요인을 고려해야 하기 때문에 꽤 많은 고민을 거쳐야 하지만, 이 포스팅에서는 특정 값으로 대체하거나 제거하는 방법론적인 부분만 다룰 예정이다. Pandas isna() 먼저 NaN 값이 존재하는지 여부를 확인하기 위해서는 판다스 .. 2022. 8. 17.
[Pandas] 판다스 정렬 sort_values groupby 판다스 정렬 sort_values 데이터프레임과 시리즈 정렬 모두 sort_values()를 이용하면 된다. sort_values는 RDBMS SQL의 order by와 매우 유사한 기능으로, by=['칼럼명'] 으로 특정 칼럼 기준 정렬을 수행할 수 있고 ascending=True로 오름차순, False로 내림차순 정렬이 가능하다.(기본은 True 즉 오름차순) inplace=True 로 데이터프레임의 정렬 결과를 그대로 적용할 수도 있다.(기본은 False) 판다스 Aggregation SQL의 aggregation 함수와 비슷하게 min, max, sum, count와 같은 기초 통계량을 계산할 수 있지만, 판다스 Aggregation은 데이터프레임에서 바로 호출해서 칼럼들 전체에 적용할 수 있다... 2022. 8. 17.
[Pandas] 판다스 loc iloc 원하는 행 열만 선택하기 with 위치 기반, 명칭 기반 인덱싱의 이해 판다스에서 원하는 행만 혹은 열만 선택하기, 즉 특정 데이터 선택을 위한 데이터 셀렉션과 필터링은 넘파이와 비슷하기도 하고 다르기도 하다. 넘파이에서 []를 이용해서 단일 값 추출, 슬라이싱 등을 통해 데이터를 추출했는데, 판다스에서는 iloc[]와 loc[]를 이용한다. 먼저 판다스 데이터프레임의 [] 연산자에 대해서도 이해해보자. Pandas Dataframe [] 데이터 프레임 바로 뒤, [] 안에 들어갈 수 있는 건 칼럼 명 문자, 칼럼 명의 리스트 객체, 인덱스로 변환 가능한 표현식이다. 한 마디로 칼럼을 지정할 수 있는 연산자이다. 데이터프레임명['칼럼명']으로 특정 칼럼을 선택할 수 있고, 데이터프레임명[['칼럼명1', '칼럼명2']] 와 같이 여러 칼럼 선택도 가능하다. titanic_df.. 2022. 8. 16.
[Pandas] 판다스 인덱스 초기화 재정렬 판다스에서 인덱스는 RDBMS의 PK(Primary Key)와 유사하다. 데이터프레임과 시리즈의 레코드를 고유하게 식별할 수 있는 객체가 Index 객체이다. 데이터프레임을 생성할 때, 만일 인덱스를 특정 값으로 지정해주고 싶다면? pd.Dataframe(데이터, index=['a','b','c']) 와 같은 형태로 원하는 특정 값을 지정해줄 수도 있다. 이런 Index만 추출하기 위해서는 DataFrame.index 혹은 Series.index 속성을 이용해서 그 결과를 넘파이 1차원 배열(ndarray)로 확인할 수 있다. index객체의 values 속성을 이용해서 모든 인덱스를확인해볼 수 있다.(너무 길어서 조금 잘랐다) type과 shape로 1차원 배열임을 확인할 수 있다. 단일 값이나 슬라이.. 2022. 8. 16.
[Pandas] Column 열 생성 및 삭제 판다스 열 Column 추가 생성 []를 이용해서 데이터프레임의 특정 열 선택뿐만 아니라, 생성과 삭제도 할 수 있다. 캐글 타이타닉 데이터프레임을 불러와서 새로운 칼럼 Age_new를 추가하고 일괄적으로 0 값을 할당해보자. 데이터프레임명['칼럼명']=할당할 값 할당할 값에 0과 같은 상수를 입력하면 해당 시리즈의 모든 데이터에 일괄적으로 0이 적용된다. 이렇게 만들어진 칼럼은 새로운 값을 또 할당 및 업데이트할 수도 있고, 다른 칼럼의 값을 이용하거나 여러 칼럼의 값을 계산하는 데 이용할 수도 있다. 판다스 특정 행 열 제거 삭제 판다스에서 데이터 삭제는 drop()을 이용할 수 있다. 이용할 수 있는 인자들의 값을 보자. DataFrame.drop(labels=None, axis=0, index=N.. 2022. 8. 15.