(작성중...)판다스 함수 정리 및 백프로페게이션, 활성함수 정리.(네이버 부캠 11일차.)

이호용·2021년 1월 27일
0

pandas I

강의소개
panel data 의 줄임말인 pandas는 파이썬의 데이터 처리의 사실상의 표준인 라이브러리입니다.

pandas는 파이썬에서 일종의 엑셀과 같은 역할을 하여 데이터를 전처리하거나 통계 처리시 많이 활용하는 피봇 테이블 등의 기능을 사용할 때 쓸 수 있습니다. pandas 역시 numpy를 기반으로 하여 개발되어 있으며, R의 데이터 처리 기법을 참고하여 많은 함수가 구성되어 있거 기존 R 사용자들도 쉽게 해당 모듈을 사용할 수 있도록 지원하고 있습니다.

  • 구조화된 데이터의 처리를 지원하는 python 라이브러리./
  • 구조화된데이터의처리를지원하는Python 라이브러리
  • panel data -> pandas(r의 데이터 구조체와 비슷함.)
  • 고성능array 계산라이브러리인numpy와통합하여, 강력한“스프레드시트” 처리기능을제공
  • 인덱싱, 연산용함수, 전처리함수등을제공함
  • 데이터 처리 및 통계 분석을 위해사용
  • 엑셀의 시트에 있는 데이터라고 생각할수 잇다.

사진.

conda create -n ml python=3.8 # 가상환경생성
activate ml # 가상환경실행
conda install pandas # pandas 설치
jupyter notebook

판다스 구성

사진.

판다스 함수

series

  • 판다스에서 사용하는 배열로 바꿔줌
  • 기존 리스트는 인덱스가 0부터 시작이지만,
  • 시리즈는 인덱스가 1부터 시작 하고,a,b,c,d, 처럼 분자처럼도 가능하다.
  • 구조가 딕트랑 비슷한데, 딕트로 선언해도 사용가능함.
  • 시리즈에 데이터를 넣을떄는 인덱스를 기준으로 데이터를 삽입한다. 인덱스를 초과하는 값의 인덱스를 추가하면, 인덱스가 들어가고 벨류는 non으로 들어가게 된다. 만약 인덱스 안넣고 벨류만 넣는다면?!
  • 사진
  • 사용법
    list_data = [1,2,3,4,5]
    example_obj = Series(data = list_data)
    example_obj

data frame

  • 데이터 테이블 전체를 포함하는 객체!
  • 열마다 데이터 타입이 다를수 있다.
  • 시리즈를 모아 만든게 Data Table
  • 아래 사진 처럼, 로우 데이터를 생성하고, 데이터 프레임에 넣으면 사용할수 있음.
    사진
  • 데이터 프래임을 선언할떄, columns를 선언하면, 열에 맞게 데이터 프레임을 사용할수 잇고, 데이터가 없는 열을 선언하면, non값이 들어가는 걸 볼수 잇음.
    사진

dataframe indexing

  • df라는 변수에 데이터프레임을 저장했다고 가정하고 설명한다.
  • 사용법 : df.loc[1]
  • loc 말고도 iloc이 있는데, iloc을 사용하면 인덱스 단위로 ㄷ끊을수 잇고, loc은 데이터 프레임 인뎃스에 들어있는 숫자값에 맞추어 출력을 할수 잇다.
  • 사진

data handling

  • del 을 사용하면, 열을 삭제 시킬수 있음. 정확이 말하면 del은ㄴ 메모리 값을 삭제하는것
  • drop을 사용해서 데이터프래임에서 원하는 열을 잠깐 떨어뜨려 놓을수도 잇음

selection & drop

사진

  • 데이터를 추출할떄는 위으이 사진처럼, column이름을 통해 추출해 낼수 있다.

  • df[:3]으로 사용해서 왼쪽의 인덱스 단위로도 데이터를 추출할수 있고

  • df["account"][:3]처럼 account콜롬의 3번쨰 행까지만 추출할수도 잇따.
    사진

사진

basic, loc, iloc 정리

  • 기본은 열의 이름 입력으로 추출가능하며, 뒤에 슬라이싱 넣어서 추출가능
  • loc은 원하는 행렬의 이름을 정확히 입력 해야함.
  • iloc은 인덱스를 통해 추출 가능
  • 사진

data drop

  • df.drop([0,1,2,3]) 사용하면,
    0,1,2,3에 해당하는 행들이 사라진다. 그런데, 이건 일시적으로 하는 것이고,
  • df.drop([0,1,2,3], inplace=Ture) 라고 해서 inplace를 이용하면 된다.

판다스에서 exel파일을 불ㄹ러올려고 하는데, 그럴떄 쓰는 모듈

conda install --y xlrd

dataframe operation

series operation

만약 s1 = Series(range(1,6), index=list("abced"))
s2 = Series(range(5,11), index=list("bcedf"))
인 상태에서 s1.add(s2) 또는 s1+s2 를 하면
a와 ,f 의 값에는 NaN이 들어간다. 나머지값에는 더해진 값이 들어감.

  • index를 기준으로 연산수행하는데, 겹치는게 없으면 Nan 반환
  • 사진
  • 데이터 프레임에서도 인덱스가 없는곳과 덧셈을 하면 NAN이 나옴.
  • 사진에서 오른ㄷ쪽에서 add 할떄 fill_value=0을 사용햇는데, 이러면 빈공간에 0 을 넣어줘서 Nan값이 안나오게 할수 잇다.

lambda, map, apply

  • 판닷의 시리얼 타입 데이터도 map함수 사용가능.
  • function대신 dict,sequence형 자료등으로 대체 가능
  • 사진.
  • 좀더 자세히 보면 ,
  • 왼쪽의 성별의 정보를 map을 통해, male, female에서 0또는 1로 쉽게 바꿀수 잇다.
  • 그냥 df.원하는 열.map({"male : 1","female :0"}, inplace=True) 이렇게 쓸수 잇음.
  • df.원하는 열.map(함수이름도 가능, inplace=True)

apply

  • 맵과 달리 series전체에 해당 함수를 적용
  • 입력값이 series 데이터로 입력받아 핸들리간으
  • 사진
  • 콜롬별로 결과값이 반환된걸 볼수 잇다.
  • 사진
  • 섬해서 열단위로 최소값과 최대값을 묶어 줄수도 있다.
  • 통계치 평균을 낼떄 많이 사용함.
  • apply는 콜롬단위로 적용을 시킨다.

MathematicsforArtificialIntelligence

  • X,W,b로 이루어진 선형모데일이다. 사진

여기서 X라는 입력값과 이 입력값을 다른 공간으로 보내주는 W행렬, 이 두개의 곱을 통해, 선형 모델을 표현할수 있고, +b는 각행이 모두 같은 값을 가지므로, 모든 벡터들에게 같은 값을 더해준다.
이렇게 사용하는 XWB의 모델은 선형 모델의 가장 기본 모델로 자주 사용된다.

아래 그림은 XWB를 도식으로 그린 그림이다.

지난시간까지 데이터를 선형모델로 해석하는 방법을 배웠다면 이제부턴
비선형모델 인신경망(neuralnetwork)을배워보겠습니다

선형모델이 단순한 문제를 풀떄는 많이 사용되겠지만, 선형 모델을 가지고 분류문제나, 복잡한 패턴을 풀떄는 선형문제만 가지고는 높은 예측을 만들긴 어렵습니다.

선형 모델의 경우 and연산이나 or연산은 선형을 통해 분류 할수 있지만, xor는 선형으로 분류가 불가능함.

신경망 모델은 신경망은 일반적으로 선형 모델이 아닌 비선형모델이다. 비선형 모델이지만 비선형 모델은, 선형모델과 비선형함수들의 결함으로 이루어 져있다.

오늘 강의에서는 신경망의 수식을 한번 분해해보고, 선형모델의 동작 방식과,
신경망이 선형모델을 기반으로 어떻게 비선형 기반을 배우는지 살펴보도록 하겟습니다.
위의 사진으로 연결된 사진이다.

softmax

  • 방금전에 AX + B를 통해 주어진 벡터 데이터가 어떤 클레스 해당하는지 확률적으로 분류 할수 있는데, 이떄 사용하는게 softmax 이다.

학습을 하는데에는 소프트 맥스가 사용이 되지만, 결과값을 추론하는게 목적이라면, one_hot_encoding을 통해 추론을 할수 있다.

  • 분모는 백터에 지수함수를 씌워 모두 더하고, 분자는 지수함수를 씌워 구하고자 하는 요소를 넣어준다.
  • 요소들을 평균내어 0~1사이의 활률로 표현해준다.
  • 소프트맥스(sofrtmax) 함수는 모델의 출력을 확률로 해석할수 잇게 변환해주는 연산입니다.
  • 분류 문제를 풀떄, 선형 모델과 소프트맥스 함수를 결합하여 예측합니다.

활성화 함수(activation funtion)가 뭐에요?

  • 이건 안봐도 되는데, 소프트맥스랑 활성화 함수의 차이가 있다면, 소프트 맥스는 입력되는 모든 벡타를 사용해 값을 출력하지만, 활성화 함수는 해당 벡터요소만 사용해서 출력함.

  • 신경망에서 입력되어 나온 출력값들을 다음 신경망으로 입력 될때, 그대로 입력이 되게 되면 층이 아무리 쌓여도 계속 선형모델과 차이가 없다. 그래서 다음 입력값을 줄때 활성화 함수(Activation Function)주어 다음 값이 비선형이 되도록 사용하는게 활성화 함수다.

  • 여기서 주로 비선형 함수를 사용하는 이유는 선형함수를 사용할 시 층을 깊게 하는 의미가 줄어들기 때문이다.

활성화 함수로는
시그모이드 , 하이퍼볼릭 탄젠트 함수. 렐루 가 잇다.

시그모이드

1. 시그모이드 함수는 로지스틱 이라고도 불리며,입력되는 값이 지수함수의 특징에 의해 0또는 1로 출력된다.

2. ReLU 함수 (Rectified Linear Unit)

ReLu함수는 최근 가장 많이 사용되는 활성화 함수이다. 함수는 아래와 같이 정의된다.

x>0 이면 기울기가 1인 직선이고, x<0이면 함수값이 0이된다.
sigmoid, tanh 함수와 비교시 학습이 훨씬 빨라진다.
연산 비용이 크지않고, 구현이 매우 간단하다.
x<0인 값들에 대해서는 기울기가 0이기 때문에 뉴런이 죽을 수 있는 단점이 존재한

멀티레이어 신경망


위의 사진을 보면 가중식 W가 두번 사용되면서, ((X*W + b)(활성화 함수))W2 라는 식으로 두번에 거쳐 선형변환되었는데 이를 2개 의 개층을이룬 신경망이라 해서 two layers신경망 이라한다.

  • W의 개수가 더 많아지면 이를 멀티레이어 신경망이라 한다.

backpropagation(역전파) 알고리즘.

  • 위층부터 아래층까지 역순으로 그래디언트 디센트를 전달한다.
  • 역전파를 할려면 각각의 뉴런의 텐서값을 메모리에 저장해두어야 역전파가 가능하다, 그로인해 포워드프로파게이션 보다 메모리를 많이 먹는다.

역전파 알고리즘 원리 이해

0개의 댓글

관련 채용 정보