더북(TheBook)

페이지랭크 알고리즘은 웹 페이지의 패턴을 전이 행렬(transition matrix)로 표현합니다. 전이 행렬의 크기는 n×n입니다. 여기서 n은 노드의 개수를 의미합니다. 전이 행렬에 담긴 수치는 한 노드에서 다른 노드로 이동할 확률을 뜻합니다.

다음 코드 스니펫은 전이 행렬을 생성하기 위한 함수입니다.

[in :]

def createPageRank(aGraph):
    nodes_set = len(aGraph)
    M = nx.to_numpy_matrix(aGraph)
    outwards = np.squeeze(np.asarray(np.sum(M, axis=1)))
    prob_outwards = np.array([1.0/count if count > 0 else 0.0 for count in outwards])
    G = np.asarray(np.multiply(M.T, prob_outwards))
    p = np.ones(nodes_set) / float(nodes_set)
    if np.min(np.sum(G, axis=0)) < 1.0:
        print('경고: 전이 확률 합의 최솟값이 1보다 작습니다.')
    return G, p

이 함수가 반환하는 G는 우리가 만든 네트워크의 전이 행렬입니다.

[in :]

G, p = createPageRank(myWeb)
print(G)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.