
统计学习方法
是算法不是法术
NLP和深度学习真神奇~
展开
-
统计学习方法第二十一章作业:PageRank迭代算法、幂法、代数算法 代码实现
PageRank迭代算法、幂法、代数算法import numpy as npclass PageRank: def __init__(self,M,D=0.85): self.M = np.array(M) self.D = D self.n = self.M.shape[0] def iter_way(self,max_iter=100,e=1e-3): self.R = np.ones(self.n)/self.n原创 2021-01-02 11:55:52 · 534 阅读 · 1 评论 -
统计学习方法第二十章作业:潜在狄利克雷分配 LDA 吉布斯抽样法算法 代码实现
潜在狄利克雷分配 LDA 吉布斯抽样法算法import numpy as npimport jiebaclass LDA: def __init__(self,text_list,k): self.k = k self.text_list = text_list self.text_num = len(text_list) self.get_X() self.NKV = np.zeros((self.k,self原创 2021-01-01 22:55:26 · 672 阅读 · 0 评论 -
统计学习方法第十九章作业:马尔可夫链蒙特卡罗法、吉布斯抽样算法(书上题目) 代码实现
马尔可夫链蒙特卡罗法作业19.7import numpy as npimport matplotlib.pyplot as pltfrom scipy.stats import betaclass MCMC: def __init__(self,scale=0.5): self.ta = np.random.random(1) self.scale = 0.5 def update_ta(self): ta_n = np.rand原创 2021-01-01 22:53:19 · 850 阅读 · 0 评论 -
统计学习方法第十八章作业:PLSA 概率潜在语义分析算法 代码实现
PLSA 概率潜在语义分析import numpy as npimport collectionsimport jiebaclass PLSA: def __init__(self,text_list,k): self.k = k self.text_list = text_list self.text_num = len(text_list) self.get_X() def get_X(self):原创 2020-12-23 15:10:36 · 509 阅读 · 0 评论 -
统计学习方法第十七章作业:LSA潜在语义分析算法 代码实现
LSA潜在语义分析算法import numpy as npimport jiebaimport collectionsclass LSA: def __init__(self,text_list): self.text_list = text_list self.text_num = len(text_list) self.get_X() def get_X(self): self.cuted_text = [jie原创 2020-12-20 15:48:09 · 523 阅读 · 0 评论 -
统计学习方法第十六章作业:PCA主成分分析算法 代码实现
PCA主成分分析import numpy as npclass PCA: def __init__(self,x,R=None): self.x = np.array(x) self.dim = self.x.shape[-1] self.num = self.x.shape[0] self.R = R self.X = None self.r_list = None self.r_v原创 2020-12-19 13:57:38 · 834 阅读 · 2 评论 -
统计学习方法第十五章作业:SVD矩阵分解 代码实现 及其在推荐的应用和矩阵压缩意义
SVD矩阵分解import numpy as npclass SVD: def __init__(self,x): self.x = np.array(x) def get_r_rv(self,x): x = np.array(x) s_matrix = x.T.dot(x) r_list, r_v = np.linalg.eig(s_matrix) return r_list,r_v def原创 2020-12-13 22:37:24 · 402 阅读 · 1 评论 -
统计学习方法第十四章作业:聚类—层次聚类聚合/分裂算法、K_means聚类算法 代码实现
层次聚类聚合/分裂算法import numpy as npimport copyimport matplotlib.pyplot as pltclass Hierarchical_cluster: def __init__(self,k=None,p=2,dis_way='min',c_way='agg'): self.k = k self.p = p self.dis_way = dis_way self.c_way =原创 2020-12-08 21:25:03 · 862 阅读 · 0 评论 -
统计学习方法第十一章作业:随机条件场—概率计算问题、IIS/GD学习算法、维特比预测算法 代码实现
随机条件场—概率计算问题、IIS/GD学习算法、维特比预测算法这一章的算法不是很好写,整整研究了好几天,代码还是有点小问题,仅供参考。用的是书上定义的特征函数。import numpy as npclass CRF: def __init__(self,y=None,x=None,y_num=None,x_num=None,N=None): self.y = y self.x = x self.y_num = y_num sel原创 2020-12-01 15:19:05 · 195 阅读 · 1 评论 -
统计学习方法第十章作业:HMM模型—概率计算问题、Baum-Welch学习算法、维特比预测算法 代码实现
HMM模型import numpy as npclass HMM: def __init__(self,A=None,B=None,Pi=None,O = None): if A: self.A = np.array(A) else: self.A = None if Pi: self.Pi = np.array(Pi) self.i_num = le原创 2020-11-28 11:10:41 · 441 阅读 · 0 评论 -
统计学习方法第九章作业:三硬币EM算法、GMM高维高斯混合模型 代码实现
三硬币EM算法import numpy as npimport mathclass Three_coin: def __init__(self,pai=0.0,p=0.0,q=0.0): self.pai = pai self.p = p self.q = q def comput_y_sita(self,y): return self.pai*self.p**y*(1-self.p)**(1-y) + (1-self原创 2020-11-22 17:05:55 · 413 阅读 · 0 评论 -
统计学习方法第八章作业:分类问题AdaBoost算法、回归问题提升树算法 代码实现
分类问题AdaBoost算法import mathimport numpy as npclass Adaboost_tree: def __init__(self,X,Y,feature_type='discrete'): self.X = np.array(X) self.Y = np.array(Y) self.N = len(X) self.feature_num = len(X[0]) self.w =原创 2020-11-22 09:47:53 · 315 阅读 · 2 评论 -
统计学习方法第七章作业:SVM非线性支持向量机之SMO序列最小优化算法代码实现
SMO序列最小优化算法import numpy as npimport mathfrom sklearn.metrics import accuracy_scorefrom sklearn.model_selection import train_test_splitclass SVM: def __init__(self,kernal='GKF',C=1): self.keranl=kernal self.b = 0 self.X = N原创 2020-11-21 15:02:34 · 323 阅读 · 0 评论 -
统计学习方法第六章作业:逻辑斯谛梯度下降法、最大熵模型 IIS / DFP 算法代码实现
逻辑斯谛梯度下降法import numpy as npimport matplotlib.pyplot as pltclass logist: def __init__(self,a=1,c=None,max_iter=9999): self.w = None self.a = a self.c = c self.max_iter = max_iter def sigmoid(self,x): x =原创 2020-11-21 11:13:38 · 404 阅读 · 0 评论 -
统计学习方法第五章作业:ID3/C4.5算法分类决策树、平方误差二叉回归树代码实现
ID3/C4.5算法分类决策树import numpy as npimport mathclass Node: def __init__(self,feature_index=None,value=None,label=None): self.feature_index=feature_index self.value=value self.child=[] self.label=labelclass C4_5: d原创 2020-11-18 00:17:41 · 522 阅读 · 0 评论 -
统计学习方法第三章作业:一般k邻近、平衡kd树构造、kd树邻近搜索算法代码实现
一般k邻近import numpy as npimport matplotlib.pyplot as pltclass K_near: def __init__(self,X,Y,K=5,p=2): self.K = K self.X = np.array(X) self.Y = np.array(Y) self.p = p def cauclate_dis(self,x1,x2): return np原创 2020-11-15 20:44:17 · 287 阅读 · 0 评论 -
统计学习方法第二章作业:感知机模型原始形式与对偶形式代码实现
原始形式实现import numpy as npimport matplotlib.pyplot as pltclass Perceptron_orginal: def __init__(self,n=1,max_iter=10): self.rate = n self.max_iter = max_iter def fit(self,X,Y): X = np.array(X) Y = np.array(Y)原创 2020-11-15 11:11:07 · 224 阅读 · 0 评论