분류

PySpark로 배우는 빅데이터 기초

Upendra Devisetty

Science Analyst, CyVerse

PySpark MLlib로 분류하기

  • 분류는 입력 데이터를 여러 범주로 구분하는 지도학습 알고리즘입니다

PySpark로 배우는 빅데이터 기초

로지스틱 회귀 소개

  • 로지스틱 회귀는 일부 변수에 기반해 이진 반응을 예측합니다

PySpark로 배우는 빅데이터 기초

벡터 다루기

  • PySpark MLlib에는 Vectors와 LabeledPoint 자료형이 있습니다

  • 벡터 유형 두 가지

    • Dense Vector: 모든 값을 부동소수 배열에 저장
    • Sparse Vector: 0이 아닌 값과 그 인덱스만 저장
denseVec = Vectors.dense([1.0, 2.0, 3.0])
DenseVector([1.0, 2.0, 3.0])
sparseVec = Vectors.sparse(4, {1: 1.0, 3: 5.5})
SparseVector(4, {1: 1.0, 3: 5.5})
PySpark로 배우는 빅데이터 기초

PySpark MLlib의 LabeledPoint()

  • LabeledPoint는 입력 특징과 레이블을 묶는 래퍼입니다

  • 로지스틱 회귀의 이진 분류에서 레이블은 0(부정) 또는 1(긍정)입니다

positive = LabeledPoint(1.0, [1.0, 0.0, 3.0])
negative = LabeledPoint(0.0, [2.0, 1.0, 1.0])
print(positive)
print(negative)
LabeledPoint(1.0, [1.0,0.0,3.0])
LabeledPoint(0.0, [2.0,1.0,1.0])
PySpark로 배우는 빅데이터 기초

PySpark MLlib의 HashingTF()

  • HashingTF() 알고리즘은 특징 값을 특징 벡터의 인덱스로 매핑합니다
from pyspark.mllib.feature import HashingTF
sentence = "hello hello world"
words = sentence.split()
tf = HashingTF(10000) 
tf.transform(words)
SparseVector(10000, {3065: 1.0, 6861: 2.0})
PySpark로 배우는 빅데이터 기초

LogisticRegressionWithLBFGS로 로지스틱 회귀

  • PySpark MLlib에서 로지스틱 회귀는 LogisticRegressionWithLBFGS 클래스로 수행합니다
data = [
        LabeledPoint(0.0, [0.0, 1.0]),
        LabeledPoint(1.0, [1.0, 0.0]),
]
RDD = sc.parallelize(data)
lrm = LogisticRegressionWithLBFGS.train(RDD)
lrm.predict([1.0, 0.0])
lrm.predict([0.0, 1.0])
1
0
PySpark로 배우는 빅데이터 기초

마무리 슬라이드

PySpark로 배우는 빅데이터 기초

Preparing Video For Download...