목록전체 글 (768)
우노
Matrix data SNAP Stanford는 다양한 Graph dataset을 제공한다. http://snap.stanford.edu/data/index.html 해당 포스트에서는 Networks with ground-truth communities의 하위 Graph dataset을 Matrix dataset으로 변환해 사용했으며, 변환하기 위해선 몇가지 전처리가 필요하다. https://wooono.tistory.com/177?category=914989 Matrix dataset이 준비됐다면, 이제 Matrix의 Node 별 NNZ를 계산해 볼 것이다. 위 과정에서 전처리한 Matrix dataset은 대칭행렬이기 때문에 행 기준 or 열 기준 Node 별 NNZ 값은 동일하다. Matrix의 N..
Matplotlib에서 그래프를 plot,scatter 등으로 표현 할 때, 파라미터를 통해 점의 색깔(color)를 지정할 수 있다. Color 종류 예제 코드 plot from matplotlib import pyplot as plt # x,y 축 데이터 years = [1950, 1960, 1970, 1980, 1990, 2000, 2010] gdp = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3] # 표 내부 설정 plt.plot(years, gdp, color='darkmagenta', marker='o', linestyle='solid') # 표 외부 설정 plt.title("Nominal GDP..
Scala에는 고정길이 배열과 가변길이 배열이 있다. 고정길이 : Array 초기화 //배열의 크기가 10인 Int type Array 초기화 val a = new Array[Int](10) //값을 할당해 Array 초기화 val b = Array("hello","world"); 요소 접근 // a 배열의 0번째 index 접근 a(0) // b 배열의 1번째 index 접근 b(1) 요소 수정 // a 배열의 0번째 index 수정 a(0) = 1 // b 배열의 1번째 index 수정 b(1) = 2 가변길이 : ArrayBuffer 초기화 import scala.collection.mutable.ArrayBuffer val c = ArrayBuffer[Int]() 요소 접근 // a 배열의 0번째..
Matrix를 일정 단위로 slice 한 뒤 각각의 nnz, density 구하기 Input Matrix data Matrix data의 행 크기 Matrix data의 열 크기 Slice 하고자하는 행 크기 Slice 하고자하는 열 크기 Output Slice 별 nnz Slice 별 density Slice 별 nnz의 평균 Slice 별 density의 평균 코드 해당 코드는 (317080,317080) 행렬을 (40000,50000) 단위로 자른것이며 총 42개의 Slice가 발생합니다. import scala.collection.mutable.ArrayBuffer import scala.math.BigDecimal // inputfile val input = sc.textFile("s3://sn..
SNAP Stanford SNAP Stanford에는 다양한 Graph dataset을 제공한다. http://snap.stanford.edu/data/index.html 이 포스트에서는 Networks with ground-truth communities의 하위 데이터들을 사용했다. Graph data type SNAP Stanford에서 Graph data는, 두 가지 type(Undirected, Directed)으로 구성 되어있다. Undirected edge에 방향이 없는 대칭 그래프 예) Undirected graph data (Nodes : 334863, Edges : 925872) 내부 1 88160 1 118052 1 161555 . . . 548368 548454 548391 54841..
file read 시 head 제거 기존 데이터 # Undirected graph: ../../data/output/dblp.ungraph.txt # DBLP # Nodes: 317080 Edges: 1049866 # FromNodeId ToNodeId 0 1 0 2 ... read 시 head 제거 with open(inputfile,"r") as rf: # 첫 4줄(head) 제거 for i in range(4): next(rf) # head 이후부터 읽기 for i in rf: print(i) 0 1 0 2 ...
.values 또는 .to_numpy() 를 사용해 DataFrame을 numpy 배열 형식으로 변환할 수 있다. 예제 코드 import pandas as pd # DataFrame 생성 data = [['Choi',22],['Kim',48],['Joo',32]] df = pd.DataFrame(data, columns=['Name','Age']) # .values 또는 .to_numpy() 를 사용해 numpy 배열로 변환 print(df.values) print(df.to_numpy()) #[['Choi' 22] # ['Kim' 48] # ['Joo' 32]]
Numpy 1차원 배열 생성 및 append 예제 import numpy as np # 바로 생성하는 방법 arr = np.array([1,2,3,4]) # 요소를 추가하는 방법 arr1 = np.array([]) arr1 = np.append(arr1, np.array([1,2,3])) arr1 = np.append(arr1, np.array([4,5])) print(arr) # [1. 2. 3. 4.] print(arr1) # [1. 2. 3. 4. 5.] Numpy 2차원 배열 생성 및 append 예제 바로 생성하는 방법 import numpy as np arr = np.array([[1,2,3],[4,5,6]]) print(arr) #[[1 2 3] # [4 5 0]] 요소를 추가하는 방법 # ..
스팸 필터 스팸 메일은 어떻게 분류 할 수 있을까? Naive Bayes 통계적 분류기 각 분류별 확률 값을 계산 분류 해주는 게 아니라 확률 값을 계산해준다. 베이즈 정리에 따라 확률 계산 확률 계산의 단서(메일에 포함된 단어)들이 서로 조건부독립임을 가정 확률 계산이 단순해진다. Naive Bayes 스팸 필터 새로운 메일이 왔다. 스팸인지 알아보려면? 해당 메일의 내용을 보지 않았을 때 예) 기존 스팸 메일과 일반 메일의 비율 만 보고 단순하게 일반 메일 80%, 스팸 메일 20%와 같이 예측 할 수 있다. 해당 메일의 내용을 봤을 때 메일에 포함된 단어들이 스팸 메일에 자주 나오는 단어인지, 일반 메일에 자주 나오는 단어인지를 살펴보고 스팸 여부를 판단 할 수 있다. 위와 같은 결과를 위해선 먼저..
들어가기 앞서, DataFrame 의 index 가 순서대로 정렬 되어 있지 않다면, 아래와 같은 방법을 사용해, index 를 정렬 및 초기화할 수 있습니다. Index 정렬 존재하는 index 기준으로 데이터를 재정렬합니다. 기본 정렬 방식은 오름차순(ascending)이며, 내림차순으로 정렬하고 싶다면, ascending 옵션을 False 로 설정하면 됩니다. df = df.sort_index(ascending=False) Index 초기화 후 정렬 존재하는 index 를 모두 초기화한 뒤, 0 부터 재정렬합니다. df = df.reset_index(drop=True)