Data Science
데이터 변환¶ML을 위해서는 원천데이터는 그대로는 사용하기 어렵고, 타겟으로 하는 모델의 입력으로 어떻게든 변환되어야 한다. Label과 features를 가지고 있는 Labeled Point로 구성해보자 해당 Jupyter Notebook에서는 다음 내용들을 다룬다. Vector와 Metrix Label Point(Label과 Features) Dataframe 단어 빈도(TF-IDF) 연속데이터의 변환 VectorAssembler와 Pipeline In [2]: import os, sys import pyspark myConf=pyspark.SparkConf() spark = pyspark.sql.SparkSession.builder\ .master("local")\ .appName("myApp")\..
통계¶해당 Jupyter Notebook에서는 데이터를 분석하기 위한 기초적인 통계에 대해서 다룬다. 변수의 성격 샘플링, 히스토그램 평균, 분산, 표준편차, Z-score, CDF(누적확률), 중심극한정리 Windows Function 추론, 빈도 분석, 상관관계 분석 In [1]: import os, sys import pyspark myConf=pyspark.SparkConf() spark = pyspark.sql.SparkSession\ .builder\ .master("local")\ .appName("myApp")\ .config(conf=myConf)\ .getOrCreate() Setting default log level to "WARN". To adjust logging level us..
DataFrame¶DataFrame은 행, 열로 구조화된 데이터구조이다. 관계형데이터베이스 RDB의 테이블이나 엑셀 sheet와 비슷하다. 또는 Pandas 또는 R을 사용해 보았다면 거기서 제공되는 DataFrame과 유사하다. Dataframe은 RDD에 스키마를 얹어서 만든 개념이다. Spark의 DataFrame은 대용량 데이터를 처리하기 위해 만들어진 프레임워크로 분산해서 사용할 수 있게 고안되었다. 앞서 사용했던 RDD가 schema를 정하지 않는 것과 달리, DataFrame은 모델 schema를 설정해서 사용을 한다. '열'에 대해 명칭 및 데이터 Type을 가지고 있고, 이를 지켜서 데이터를 저장하게 된다. Schema¶Row는 DataFrame의 행으로, 데이터 요소항목을 묶어서 구성한..
RDD¶이전 Jupyter Notebook의 내용에 이어서 RDD를 이용한 데이터의 집계를 해보려고 한다. 여러 RDD 연산을 사용하여 데이터를 집계하고 변환하여 유의미하게 데이터를 가공해보자. 해당 Notebook에서는 아래의 내용을 다룬다. GroupBy: RDD를 특정 기준으로 그룹화 Paired RDD: 키-값 쌍으로 구성된 RDD groupByKey(): Paired RDD를 키를 기준으로 그룹화하고, 각 그룹에 대한 값들의 Iterable을 생성 reduceByKey(): Paired RDD를 키를 기준으로 그룹화하고, 각 그룹에 대해 리듀스 함수를 사용하여 값을 집계 combineByKey(): Paired RDD를 키를 기준으로 그룹화하고, 각 그룹에 대해 초기값, 병합 및 리듀스 함수를 ..
RDD¶ RDD(Resilient Distributed Dataset)는 Apache Spark에서 데이터를 표현하는 기본 구조이다. Spark에서는 RDD, Databrame, DataSet 세 가지 데이터구조를 제공 RDD는 데이터가 비구조적인 경우 사용하기 적합하다 Spark의 RDD, DataFrame 모두 immutable이라 일단 생성되고 나면 원본을 수정할 수 없다. 해당 Jupyter Notebook에서는 아래의 내용을 다루려고 한다. 1. RDD 생성과 기본 동작¶ parallelize(list) : 배멸에서 읽어서 RDD를 생성 take(출력개수) || collect() : RDD를 출력 collect() : 모든 파티션의 데이터를 수집하여 로컬의 리스트로 반환하는 액션(Action) ..
Apache Spark 는 대규모 데이터 처리 및 분석을 위한 오픈 소스 클러스터 컴퓨팅 시스템이다. 주로 대규모 데이터셋에 대한 분석 작업과, ML 모델의 학습 및 예측, 그래프 처리를 통한 분석 툴, 실시간 데이터 스트림 처리의 용도로 사용되고 있으며, 데이터 분석가들에게 클러스터 컴퓨팅을 통한 병렬 처리라는 장점은 빅데이터 시대에서 Apache Spark가 각광받는 이유라고 생각한다. 1. 빠른 속도 : Spark는 메모리 기반의 데이터 처리를 통해 빠른 속도를 제공한다. 2. 클러스터 컴퓨팅: Spark는 클러스터 상에서 데이터를 처리하도록 설계되었습니다. 여러 노드로 구성된 클러스터에서 데이터 및 작업을 분산하여 처리함으로써 대규모 데이터셋을 효율적으로 처리할 수 있다. 3. 다양한 라이브러리:..
데이터 수집¶ 데이터는 현대 비즈니스에서 가장 중요한 자산 중 하나로 자리매김하고 있다. 데이터 분석을 통한 지표 확인 및 인공지능 모델 학습까지 데이터의 중요성은 계속해서 커지고 있다. 이를 위해 데이터 수집은 필수적인 단계로 자리잡고 있으며, 다양한 소스로부터의 데이터를 효과적으로 수집하는 것은 매우 중요하다. 수업 내용을 바탕으로 실습한 해당 Jupyter Notebook에서는 데이터 수집의 다양한 측면을 다루고 있다. 먼저, Web Request를 통한 데이터 수집 방법을 알아볼 것이다. 기본적인 Web API 호출 방법에 대해 소개하려고 한다. 수집된 데이터의 포멧에 대해서 현업에서 가장 많이 사용되는 JSON과 XML 형식에 대한 이해를 바탕으로, 각각의 특징을 살펴볼 것이다. 이어서는 Ope..
포스팅된 글의 인용한 모든 이미지는 CCL 라이선스의 이미지만을 사용했으며, 출처를 밝힙니다. Boosting Boosting은 여러 개의 약한 학습기(Weak Learner)를 결합하여 강한 학습기(Strong Learner)를 만드는 앙상블 기법이다.여러 개의 Weak Learner를 순차적으로 결합하여 예측 성능을 향상하면서, 모델의 오류를 보정해나간다.순차적인 앙상블 모델이다.AdaBoost잘못 분류된 샘플에 가중치를 높여서 다음 모델을 학습시키는 방식Weak Learner의 결과에 가중치를 적용하여 Strong Learner를 생성한다.Gradient Boosting이전 모델의 예측 오차에 새로운 모델을 학습시켜 오차를 줄이는 방식. Gradient Descent를 사용하여 가중치 업데이트를 ..
포스팅된 글의 인용한 모든 이미지는 CCL 라이선스의 이미지만을 사용했으며, 출처를 밝힙니다. 앙상블 모델앙상블 모델은 여러 다른 개별 모델을 결합하여 예측 능력을 향상시키는 기법이다.서로 다른 알고리즘, 다른 훈련 데이터셋을 이용할 수 있으며, 모델들의 예측을 통합하여 미지의 데이터로부터의 예측을 수행한다. Voting 각 모델의 결과에 대한 투표를 실시하는 것.Voting은 여러 다른 모델의 예측 결과를 결합하여 최종 예측을 수행하는 앙상블 기법이다.각 모델의 예측을 조합하여 더 강력한 예측을 만들어낸다.Hard Voting다수결 방식으로 예측 결과를 합치는 방법.각 모델이 예측한 클래스 레이블 중 가장 많은 클래스 레이블을 최종 예측 결과로 선택한다. 이 방식은 각 모델이 동일한 중요도를 가진 ..