본문 바로가기
반응형

DATA Science50

표현: 특성 추출 기존의 프로그래밍에서는 코드에 중점을 두었습니다. 머신러닝 프로젝트에서는 표현에 중점을 둡니다. 즉, 개발자는 특성을 추가하고 개선하여 모델을 다듬어 나갑니다. 원시 데이터를 특성에 매핑 그림 1의 왼쪽 부분은 입력 데이터 소스의 원시 데이터이고 오른쪽 부분은 특성 벡터, 즉 데이터 세트의 예로 구성된 부동 소수점 값의 집합입니다. 특성 추출이란 원시 데이터를 특성 벡터로 변환하는 과정입니다. 특성 추출에는 일반적으로 상당한 시간이 소요됩니다. 여러 머신러닝 모델은 특성 값에 모델 가중치를 곱해야 하므로 실수 벡터로 가중치를 표현해야 합니다. 특성 추출이라는 과정을 통해 원시 데이터가 특성 벡터에 매핑됩니다. 숫자 값 매핑 정수와 부동 소수점 데이터에는 숫자 가중치를 곱할 수 있으므로 특수한 인코딩은 필.. 2021. 7. 25.
추가 분할(검증데이터 추가?) 이전 모듈에서는 데이터 세트를 학습 세트와 테스트 세트로 분리하는 방법을 소개했습니다. 이러한 분리를 통해 예제 세트 하나로는 학습을 수행하고, 다른 예제 세트로는 모델 테스트를 수행할 수 있었습니다. 두 개의 분할을 사용하는 워크플로우의 예는 다음과 같습니다. 그림 1. 가능한 워크플로우 이 그림에서 '모델 조정'이란 학습률 변경, 특성 추가 또는 삭제, 완전히 새로운 모델 설계와 같이 모델에서 가능한 모든 요소를 조정함을 의미합니다. 이 워크플로우 마지막에서 테스트 세트를 기준으로 가장 우수한 모델을 선택합니다. 데이터 세트를 둘로 나누는 것은 좋은 생각이지만 더 훌륭한 방법이 있습니다. 다음 그림과 같이 데이터 세트를 셋으로 나누면 과적합 가능성을 크게 낮출 수 있습니다. 그림 2. 데이터 세트 하.. 2021. 7. 25.
데이터 분할 이전 모듈에서는 데이터 세트를 다음과 같이 두 부분으로 나눈다는 개념을 소개했습니다. 학습 세트 - 모델을 학습시키기 위한 데이터 세트의 일부분 평가 세트 - 모델을 테스트하기 위한 데이터 세트의 일부분 데이터 세트 하나를 다음과 같이 분할하는 방법을 생각해 볼 수 있습니다. 그림 1. 데이터 세트 하나를 학습 세트와 평가 세트로 분할 평가 세트는 다음 두 가지 조건을 만족해야 합니다. 통계적으로 유의미한 결과를 도출할 만큼 커야 합니다. 데이터 세트를 전체적으로 나타내야 합니다. 즉, 평가 세트가 학습 세트와 같은 특징을 가지도록 선별해야 합니다. 평가 세트가 위와 같은 두 가지 조건을 만족한다면 이제 새로운 데이터에도 일반화될 수 있는 모델을 만드는 것이 목표입니다. 평가 세트는 새 데이터를 모의 실.. 2021. 7. 25.
일반화 : 과적합의 위험 이 모듈에서는 일반화에 초점을 맞추고 세 개의 그림을 활용하여 일반화 개념에 대해 알아봅니다. 그림의 각 점은 숲에서 나무의 위치를 나타낸다고 가정합니다. 두 색상의 의미는 다음과 같습니다. 파란색 점은 병든 나무를 나타냅니다. 주황색 점은 건강한 나무를 나타냅니다. 이를 염두에 두고 그림 1을 살펴보세요. 그림 1. 병든(파란색) 나무와 건강한(주황색) 나무 그다음에 병든 나무나 건강한 나무를 예측하는 데 적합한 모델을 생각할 수 있으세요? 잠시 시간을 내어 머릿속으로 파란색 나무와 주황색 나무를 나누는 호를 그리거나 주황색 나무 또는 파란색 나무의 배치로 분류하세요. 그런 다음 그림 2를 보고 특정 머신러닝 모델에서 병든 나무와 건강한 나무를 구분하는 방법을 확인하세요. 이 모델에서는 손실이 매우 적.. 2021. 7. 25.
Tensorflow 실습 첫번째 적고나니까 어차피 파일이 따로 있어서 굳이 포스팅해야하나.. 어차피 복붙이라 의미가 별로 없는것같기도 하고 아닌것같기도 하고.... 그래서 이것외에는실습은올리지 않아야 겟다. 학습 목표: 텐서플로우의 기초 개념을 학습한다 텐서플로우의 LinearRegressor 클래스를 사용하여 입력 특성 하나를 기반으로 지역별 주택 가격 중앙값을 예측한다 평균 제곱근 오차(RMSE)를 사용하여 모델 예측의 정확성을 평가한다 초매개변수를 조정하여 모델의 정확성을 개선한다 데이터의 출처는 1990년 캘리포니아 인구조사 자료입니다. 첫 번째 셀에서 필요한 라이브러리를 로드하겠습니다. from __future__ import print_function import math from IPython import display f.. 2021. 7. 25.
Pandas 실습 pandas 문서 https://pandas.pydata.org/pandas-docs/stable/index.html pandas documentation — pandas 1.3.0 documentation The reference guide contains a detailed description of the pandas API. The reference describes how the methods work and which parameters can be used. It assumes that you have an understanding of the key concepts. pandas.pydata.org Pandas의 기본 데이터 구조는 두 가지 클래스로 구현됩니다. DataFrame은 행 및 .. 2021. 7. 25.
텐서플로 시작 다음 그림은 텐서플로우 도구함의 현재 계층구조를 보여 줍니다. 그림 1. 텐서플로우 도구함 계층구조 다음 표에는 여러 레이어의 목적이 요약되어 있습니다. 도구함설명 에스티메이터(tf.estimator) 높은 수준의 OOP API tf.layers/tf.losses/tf.metrics 일반 모델 구성요소용 라이브러리 텐서플로우 낮은 수준의 API 텐서플로우는 다음 두 요소로 구성됩니다. 그래프 프로토콜 버퍼 분산된 그래프를 실행하는 런타임 이 두 구성요소는 자바 컴파일러 및 JVM과 유사합니다. JVM이 여러 하드웨어 플랫폼에서 구현되는 것과 마찬가지로 텐서플로우도 여러 CPU와 GPU에서 구현됩니다. 어느 API를 사용해야 하나요? 문제를 해결하는 최고 수준의 추상화를 사용해야 합니다. 추상화 수준이 높.. 2021. 7. 25.
경사하강법 이전에 했던게 많아서 생략을 좀했다. 이상적인 학습률에 대해 자세히 알아보세요. 1차원의 경우 이상적인 학습률은 1 / f(x)″ (x에서 f(x)의 2계도함수의 역)입니다. 2차원 이상에서 이상적인 학습률은 헤시안 행렬(2계편미분의 행렬)의 역입니다. 일반적인 볼록 함수의 경우에는 이야기가 더 복잡해집니다. 확률적 경사하강법(SGD) 경사하강법에서 배치는 단일 반복에서 기울기를 계산하는 데 사용하는 예의 총 개수입니다. 지금까지는 배치가 전체 데이터 세트라고 가정했습니다. 하지만 Google 규모의 작업에서는 데이터 세트에 수십억, 수천억 개의 예가 포함되는 경우가 많습니다. 또한 대개 Google 데이터 세트에는 엄청나게 많은 특성이 포함되어 있습니다. 따라서 배치가 거대해질 수 있습니다. 배치가 너.. 2021. 7. 25.
학습 및 손실 모델을 학습시킨다는 것은 단순히 말하자면 라벨이 있는 데이터로부터 올바른 가중치와 편향값을 학습(결정)하는 것입니다. 지도 학습에서 머신러닝 알고리즘은 다양한 예를 검토하고 손실을 최소화 하는 모델을 찾아봄으로써 모델을 만들어내는데, 이 과정을 경험적 위험 최소화라고 합니다. 손실은 잘못된 예측에 대한 벌점입니다. 즉, 손실은 한 가지 예에서 모델의 예측이 얼마나 잘못되었는지를 나타내는 수입니다. 모델의 예측이 완벽하면 손실은 0이고 그렇지 않으면 손실은 그보다 커집니다. 모델 학습의 목표는 모든 예에서 평균적으로 작은 손실을 갖는 가중치와 편향의 집합을 찾는 것입니다. 예를 들어 그림 3에서 왼쪽은 손실이 큰 모델이고 오른쪽은 손실이 작은 모델입니다. 그림에 관해 다음 사항을 참고하세요. 빨간색 화살표.. 2021. 7. 25.
선형회귀 오랫동안 귀뚜라미는 시원날 날보다 더운 날 더 자주 우는 것으로 알려져 왔습니다. 전문가 및 아마추어 곤충 학자들이 수십 년에 걸쳐서 1분당 귀뚜라미가 우는 횟수와 온도에 관한 데이터를 목록으로 작성했습니다. 고모가 생일 선물로 두 특성의 관계를 예측하는 모델을 학습시켜 보라고 아끼던 귀뚜라미 데이터베이스를 줬다고 해 봅시다. 올바른 첫 번째 단계는 데이터를 그래프로 만들어 검토하는 것입니다. 그림 1. 1분당 우는 횟수 및 섭씨온도 예상대로 그래프를 통해 우는 횟수가 증가할수록 온도가 올라가는 것을 확인했습니다. 우는 횟수와 온도는 선형 관계일까요? 네. 이 관계를 근사치로 하는 다음과 같은 하나의 직선을 그릴 수 있습니다. 그림 2. 선형 관계 사실 선이 모든 점을 완벽하게 통과하지는 않지만, 선은 .. 2021. 7. 25.
표현 label: 예측하는 실제항목(결과, 스팸 or 스팸아님) feature:데이터를 표현하는 방식 (입력 변수, 주소, 단어,) model: 예측하는 거 라벨 라벨은 예측하는 항목입니다(단순 선형 회귀의 y 변수). 밀의 향후 가격, 사진에 표시되는 동물의 종류, 오디오 클립의 의미 등 무엇이든지 라벨이 될 수 있습니다. 특성 특성은 입력 변수입니다(단순 선형 회귀의 x 변수). 간단한 머신러닝 프로젝트에서는 특성 하나를 사용하지만 복잡한 머신러닝 프로젝트에서는 다음과 같이 수백만 개의 특성을 사용할 수 있습니다. 모델 모델은 특성과 라벨의 관계를 정의합니다. 예를 들어, 스팸 감지 모델에서 특정 특성을 '스팸'과 긴밀하게 연결할 수 있습니다. 모델 수명의 두 단계를 골라 살펴보겠습니다. 학습은 모델을 만.. 2021. 7. 25.
json 방식 parquet 방식 # RDS - 아티스트 ID를 가져오고 cursor.execute("SELECT id FROM artists LIMIT 10") dt = datetime.utcnow().strftime("%Y-%m-%d") print(dt) sys.exit(0) with open('top_tracks.json', 'w') as f: for i in top_tracks: json.dump(i,f) f.write(os.linesep) s3 = boto3.resource('s3') object = s3.Object('data-artsts', 'dt={}/top-tracks.json'.format(dt)) #dt 읽을수 있는 파티션으로 바꿔준느것 이건 json 파일 형식으로 # RDS - 아티스트 ID를 가져오고 cursor... 2021. 6. 27.
반응형