트랜스퍼 블로그 드문드문 행렬 정의
2123 단어 sklearn
희소 행렬 정의
(1)Coordinate (COO)
>>> row = np.array([0, 3, 1, 0])
>>> col = np.array([0, 3, 1, 2])
>>> data = np.array([6, 5, 7, 8])
>>> sparse.coo_matrix((data, (row, col)), shape=(4, 4)).toarray()
array([[6, 0, 8, 0],
[0, 7, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 5]])
이것은 가장 간단한 형식으로 모든 요소는 하나의 삼원조로 표시해야 한다. 각각 (행호, 열호, 수치)이고 위의 그림 오른쪽에 있는 열에 대응한다.이런 방식은 간단하지만 기록서의 정보가 많고 각 삼원조는 스스로 위치를 정할 수 있기 때문에 공간이 가장 좋은 것은 아니다.
(2)Compressed Sparse Column (CSC)
>>> indptr = np.array([0, 2, 3, 6])
>>> indices = np.array([0, 2, 2, 0, 1, 2])
>>> data = np.array([1, 2, 3, 4, 5, 6])
>>> sparse.csc_matrix((data, indices, indptr), shape=(3, 3)).toarray()
array([[1, 0, 4],
[0, 0, 5],
[2, 3, 6]])
CSC는 열에 따라 희소 행렬을 저장합니다.그 중에서 indptr의 데이터는 행렬에 저장된 데이터가 데이터에 있는 시작과 끝의 인덱스를 대표한다. 예를 들어 여기 indptr는 [0, 2, 3, 6]이다. 즉, 데이터에 표시된 것이다.인덱스[0,2)는 첫 번째 열의 데이터이고, 인덱스[2,3)는 두 번째 열의 데이터이며, 인덱스[3,6)는 세 번째 열의 데이터이다. 인덱스에서 데이터는 대응하는 데이터의 행수를 나타낸다. 예를 들어 인덱스[0,2,0,1,2]는 데이터에서 데이터 1은 0행, 데이터 2는 2행, 데이터 3은 2행, 데이터 4는 0행, 데이터 5는 0행, 데이터는 6행에 있다.그리하여 희소 행렬을 세웠다.
(3)Compressed Sparse Row (CSR)
>>> indptr = np.array([0, 2, 3, 6])
>>> indices = np.array([0, 2, 2, 0, 1, 2])
>>> data = np.array([1, 2, 3, 4, 5, 6])
>>> sparse.csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()
array([[1, 0, 2],
[0, 0, 3],
[4, 5, 6]])
CSR은 줄별로 희소 행렬을 저장하는데 그 원리는 CSC와 유사하다.indptr의 데이터는 행렬의 모든 줄의 데이터가 데이터에서 시작되고 끝나는 인덱스를 표시하고, indices의 데이터는 데이터에 대응하는 데이터가 행렬에서 행에 있는 열을 표시합니다.인덱스, 인덱스, 데이터 세 개의 그룹이 같은 상황에서 CSC와 CSR을 통해 각각 표시된 행렬은 서로 전환 관계임을 알 수 있다.
저자: 장가추 링크:https://www.jianshu.com/p/9671c568096d
https://www.jianshu.com/p/9671c568096d
scipy의 csrmatrix 상세 설명
https://blog.csdn.net/ChenglinBen/article/details/84426942
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
쓰쿠바 대학의 기계 학습 강좌 : 과제의 파이썬 스크립트 부분을 만들면서 sklearn 공부 (10)지난번 이번에는 이상치가 있는 경우 Youtube의 해설은 제6회(1)55분 30초당 프로그램은 2행 더 강좌에서는 최초의 값을 바꾸고 있는 것 같지만, 하나 추가해도 거기까지 변화는 없을 것 같다. 이것은 실행 결...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.