Data Science/데이터분석 (Spark)
기계학습¶ML에 사용할 수 있도록 변환한 데이터들을 다양한 모델을 활용하여 지도학습을 통해 예측을 수행해보자 해당 Jupyter Notebook에서는 다음 내용들을 다룬다. 서포트 벡터머신(Support Vector Machine) 로지스틱 회귀(Logistic Regression) 네이브 베이시안(Naive Bayes) 의사결정 트리(Decision Tree) In [1]: import os, sys import pyspark myConf=pyspark.SparkConf() spark = pyspark.sql.SparkSession.builder\ .master("local")\ .appName("myApp")\ .config(conf=myConf)\ .getOrCreate() 23/12/19 04:4..
데이터 변환¶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..
Pandas파이썬에서 데이터 분석에 많이 이용함, 3가지 형태의 자료 구조와 연산 지원 연산- 데이터 선택- 데이터 가공- 데이터 분석- 데이터 편집데이터 편집자료의 구조를 제어하는 연산ConcatMergeJoin 1. Concat자료구조를 연결하는 연산 df1 = pd.DataFrame( { "A": ['a00', 'a01', 'a02'], "B": ['b00', 'b01', 'b02'], "C": ['c00', 'c01', 'c02'] })df1df2 = pd.DataFrame( { "B": ['B00', 'B01', 'B02'], "C": ['C00', 'C01', 'C02'], "D": ['D00', 'D0..