問題描述:寫程式利用svd分解對資料進行降維,並畫出降維後各個節點在」新維度「上值的分布。例如對於矩陣 a(mxn) = uσv^t, u 分解後每一列〖 u〗i 有m個元素對應m個點,記為〖 u〗(i*). 我們畫出〖 u〗_1-〖 u〗_2的座標下的m個點的散點圖
import numpy as np
from scipy.sparse.linalg import svds
import matplotlib.pyplot as plt
import scipy
def dataset1():
with open('yelp.edgelist') as file:
row =
col =
data =
for line in file.readlines():
# print(line)
curline = line.strip().split(' ')
floatline = list(map(float,curline))#這裡使用map函式直接將函式裝化為float型別
# print(floatline)
# print(len(row))
c = scipy.sparse.coo_matrix((data,(row,col)),shape = (len(row),len(col)))#構造稀疏矩陣
# print(c)
u,s,t = svds(c,10)#奇異值分解
# print(u)
for i in range(0, 9, 2):
x = u[:, i + 1]#取出矩陣中的第二列中的資料
y = u[:, i]#取出矩陣中的第一列的資料
fig = plt.figure()
ax = plt.subplot(111)
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
ax.scatter(x, y, s=0.5, c='k', marker='.')
plt.title("spectral plot of u%d and u%d" % (i + 1, i + 2))
plt.xlabel("u%d" % (i + 2))
plt.ylabel("u%d" % (i + 1))
plt.show()
def dataset2():
with open('out.bookcrossing_rating_rating') as file:
row =
col =
data =
for line in file.readlines():
# print(line)
curline = line.strip().split(' ')
floatline = list(map(float, curline)) # 這裡使用map函式直接將函式裝化為float型別
# print(floatline)
# print(len(row))
c = scipy.sparse.coo_matrix((data, (row, col)), shape=(len(row), len(col)))#以稀疏矩陣儲存
# print(c)
u, s, t = svds(c, 10) # 奇異值分解
# print(u)
for i in range(0, 9, 2):
x = u[:, i + 1]
y = u[:, i]
fig = plt.figure()
ax = plt.subplot(111)
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
ax.scatter(x, y, s=0.5, c='k', marker='.')
plt.title("spectral plot of v%d and v%d" % (i + 1, i + 2))
plt.xlabel("v%d" % (i + 2))
plt.ylabel("v%d" % (i + 1))
plt.show()
dataset1()
dataset2()
如何利用大資料做好資料分析
資料分析的概念早已成為每個人的家常便飯,資料分析技能也成為求職者和職場人員的一大亮點。對於面對自身累積的龐大財務資料,業務資料和運營資料,流量資料及其他資料資產的公司,公司如何利用大資料並進行大資料分析?我們從以下幾個方面來了解一下。一.什麼是大資料分析?我們知道,資料分析是指通過某種統計分析方法對...
企業如何利用大資料做好大資料分析?
資料分析的概念對於大家來說早已司空見慣,資料分析技能目前也已成為求職者和工作場所人員的乙個亮點。對於面對自身累積的龐大財務資料,業務資料和運營資料,流量資料及其他資料資產的公司,公司如何利用大資料並進行大資料分析?我們從以下幾個方面來了解一下。我們知道,資料分析是指通過某種統計分析方法對一定規模的資...
大資料 資料分析 資料探勘
在大資料領域裡,經常會看到例如資料探勘 olap 資料分析等等的專業詞彙。如果僅僅從字面上,我們很難說清楚每個詞彙的意義和差別。大講台老師通過一些大資料在高校應用的例子,來為大家說明白 資料探勘 大資料 olap 資料統計的區別。一 資料分析 資料分析是乙個大的概念,理論上任何對資料進行計算 處理從...