版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
各类算法学习经验总结文本主题提取算法-LDA算法分类:无监督学习方法建模应用方向:LDA是一种无监督学习方法,它可以根据文本的词向量分布提取出文本的主题分布,在主题模型中占有非常重要的地位。输入:N个文本的文本词向量(w1,w2,w3〃〃,wn),分类主题个数K输出:各个文本分别数据k个主题的概率代码示例:主题数目n_topics=5lda=LatentDirichletAllocation(n_topics=n_topics,max_iter=50,learning_method='online',learning_offset=50.,random_state=0)模型应用于数据lda.fit(tf)得到每个章节属于某个主题的可能性chapter_top=pd.DataFrame(lda.transform(tf),index=range(120),columns=np.arange(n_topics)+1)chapter_top主成分分析法算法分类:无监督学习建模应用方向:可以用于特征降维,提取主要特征,并去除冗余数据。可以通过第一主成分的各分量权重,得到各个权重的信息占比代码:fromsklearn.decompositionimportPCAimportpandasaspdimportospath="C:/Users/Administrator/Desktop/o25mso/homework/AMZN.csv"存放文件路径,这个文件在我的资源上传里df=pd.read_csv(path)#读取文件pca=PCA()#创建对象df=(df.iloc[:,2:]-df.iloc[:,2:].mean())/df.iloc[:,2:].std()#寸数据进行中心化处理#print(df)pca.fit(df)print(ponents_)#返回模型的各个特征向量print(pca.explained_variance_ratio_)#返回各个成分各自的方差百分比pca=PCA(2)#设置转化主成分个数两个pca.fit(df)low_d=pca.transform(df)print(low_d)#返回降维后的数据Svm-支持向量机模型算法分类:监督学习应用场景:经典的机器学习算法,适用于分类问题,比较好的分类算法代码示例:importnumpyasnpimportjoblibfromsklearnimportsvmimportmatplotlib.pyplotaspltx=[[1,2],[4,5],[18,9],[12,6],[2,3],[13,18]]x=np.array(x)y=[1,1,0,0,1,0]y=np.array(y)训练模型model=svm.SVC(C=10,kernel='linear')model.fit(x,y)预测a=[[8,6]]a_pre=model.predict(a)print("a_pre:",a_pre)对应的支持向量Support_vector=model.support_vectors_print("Support_vector:",Support_vector)线性分类对应的参数w=model.coef_print("w:",w)b=ercept_print("b:",b)训练集散点图plt.scatter(x[:,0],x[:,1])ifw[0,1]!=0:xx=np.arange(0,20,0.1)#最佳分类线yy=-w[0,0]/w[0,1]*xx-b/w[0,1]plt.scatter(xx,yy,s=4)#支持向量b1=Support_vector[0,1]+w[0,0]/w[0,1]*Support_vector[0,0]b2=Support_vector[1,1]+w[0,0]/w[0,1]*Support_vector[1,0]yy1=-w[0,0]/w[0,1]*xx+b1plt.scatter(xx,yy1,s=4)yy2=-w[0,0]/w[0,1]*xx+b2plt.scatter(xx,yy2,s=4)else:xx=np.ones(100)*(-b)/w[0,0]yy=np.arange(0,10,0.1)plt.scatter(xx,yy)plt.show()lstm模型-时间序列模型算法分类:监督学习应用场景:对于时间序列型的的数据有良好的预测效果代码实例:#数据预处理以及绘制图形需要的模块importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt#构建长短时神经网络需要的方法fromsklearn.preprocessingimportMinMaxScalerfromkeras.modelsimportSequentialfromkeras.layersimportDense,LSTM,BatchNormalization#需要之前90次的数据来预测下一次的数据need_num=90#训练数据的大小training_num=6000#迭代10次epoch=10batch_size=32#训练数据的处理,我们选取整个数据集的前6000个数据作为训练数据,后面的数据为测试数据#从csv读取数据dataset=pd.read_csv('Shanghai.csv')#我们需要预测开盘数据,因此选取所有行、第三列数据dataset=dataset.iloc[:,2:3].values#训练数据就是上面已经读取数据的前6000行training_dataset=dataset[:training_num]#因为数据跨度几十年,随着时间增长,人民币金额也随之增长,因此需要对数据进行归一化处理#将所有数据归一化为0-1的范围sc=MinMaxScaler(feature_range=(0,1))111fit_transform()对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。111training_dataset_scaled=sc.fit_transform(X=training_dataset)x_train=[]y_train=[]#每90个数据为一组,作为测试数据,下一个数据为标签foriinrange(need_num,training_dataset_scaled.shape[0]):x_train.append(training_dataset_scaled[i-need_num:i])y_train.append(training_dataset_scaled[i,0])#将数据转化为数组x_train,y_train=np.array(x_train),np.array(y_train)#因为LSTM要求输入的数据格式为三维的,[training_number,time_steps,1],因此对数据进行相应转化x_train=np.reshape(x_train,(x_train.shape[0],x_train.shape[1],1))#构建网络,使用的是序贯模型model=Sequential()#return_sequences=True返回的是全部输出,LSTM做第一层时,需要指定输入shapemodel.add(LSTM(units=128,return_sequences=True,input_shape=[x_train.shape[1],1]))model.add(BatchNormalization())model.add(LSTM(units=128))model.add(BatchNormalization())model.add(Dense(units=1))#进行配置pile(optimizer='adam',loss='mean_squared_error')model.fit(x=x_train,y=y_train,epochs=epoch,batch_size=batch_size)#进行测试数据的处理#前6000个为测试数据,但是将5910,即6000-90个数据作为输入数据,因为这样可以获取#测试数据的潜在规律inputs=dataset[training_num-need_num:]inputs=inputs.reshape(-1,1)#这里使用的是transform而不是fit_transform,因为我们已经在训练数据找到了#数据的内在规律,因此,仅使用transform来进行转化即可inputs=sc.transform(X=inputs)x_validation=[]foriinrange(need_num,inputs.shape[0]):x_validation.append(inputs[i-need_num:i,0])x_validation=np.array(x_validation)x_validation=np.reshape(x_validation,(x_validation.shape[0],x_validation.shape[1],1))#这是真实的股票价格,是源数据的[6000:]即剩下的231个数据的价格real_stock_price=dataset[training_num:]#进行预测predictes_stock_price=model.predict(x=x_validation)#使用sc.inverse_transform(将归一化的数据转换回原始的数据,以便我们在图上进行查看predictes_stock_price=sc.inverse_transform(X=predictes_stock_price)#绘制数据图表,红色是真实数据,蓝色是预测数据plt.plot(real_stock_price,color='red',label='RealStockPrice')plt.plot(predictes_stock_price,color='blue',label='PredictedStockPrice')plt.title(label='ShangHaiStockPricePrediction')plt.xlabel(xlabel='Time')plt.ylabel(ylabel='ShangHaiStockPrice')plt.legend()plt.show()5.方差分析:应用场景:可以鉴别各因素对结果的影响程度单因素方差分析代码:#one_wayvarianceanalysisformeandefoneway_var_test(df,sig):data=np.array(df)x=np.mean(data)n=len(data)*len(data[0])k=len(data[0])m=len(data)SStotal=np.var(data)*ndf_total=n-1SSE=np.var(df).sum()*mSST=(np.square(np.mean(df)-np.mean(arr))).sum()*mdf_e=n-kdf_t=k-1MST=SST/df_tMSE=SSE/df_eF=MST/MSEp=stats.f.sf(F,df_t,df_e)result=pd.DataFrame(index=['Treatment','Error','Total'],columns=['SumofSquares','DegreeofFreedom','MeanSquare','F','p'])result['SumofSquares'],result['DegreeofFreedom']=[SST,SSE,SStotal],[df_t,df_e,df_total]result['MeanSquare'],result['F'],result['p']=[MST,MSE,np.nan],[F,np.nan,np.nan],[p,np.nan,np.nan]ifp<sig:print('在显著度为'+str(sig)+'下,组间均值有差异')else:print('在显著度为'+str(sig)+'下,组间均值无差异')print(result)returnresult双因素方差分析:#two_wayvarianceanalysisformeandeftwoway_var_test(df,sig):data=np.array(df)x=np.mean(data)n=len(data)*len(data[0])k=len(data[0])m=len(data)SStotal=np.var(data)*nSST=(np.square(np.mean(df)-np.mean(arr))).sum()*mSSB=(np.square(np.mean(df,axis=1)-np.mean(arr))).sum()*kSSE=SStotal-SST-SSBdf_total=n-1df_e=(k-1)*(m-1)df_t=k-1df_b=m-1MST=SST/df_tMSE=SSE/df_eMSB=SSB/df_bFT=MST/MSEFB=MSB/MSEpt=stats.f.sf(FT,df_t,df_e)pb=stats.f.sf(FB,df_b,df_e)result=pd.DataFrame(index=['TreatmentT','TreatmentB','Error','Total'],columns=['SumofSquares','DegreeofFreedom','MeanSquare','F','p'])result['SumofSquares'],result['DegreeofFreedom']=[SST,SSB,SSE,SStotal],[df_t,df_b,df_e,df_total]result['MeanSquare'],result['F'],result['p']=[MST,MSB,MSE,np.nan],[FT,FB,np.nan,np.nan],[pt,pb,np.nan,np.nan]ifpt<sig:print('在显著度为'+str(sig)+'下,T因素对均值有影响')else:print('在显著度为'+str(sig)+'下,T因素对均值无影响')ifpb<sig:print('在显著度为'+str(sig)+'下,B因素对均值有影响')else:print('在显著度为'+str(sig)+'下,B因素对均值无影响')print(result)returnresult6.元胞自动机模型元胞自动机(CA)是一种广泛用于分析扩散的模型问题,即下一时刻的状态由周围环境和自身状态决定。不是由严格定义的物理方程或函数确定,而实用一系列构造的规则够成。该模型的时间、空间和状态都是离散的,可以模拟复杂系统的演化过程。算法说明:该模型采用离散的空间布局和离散的时间间隔,将元胞分成有限种状态,元胞个体状态的演变仅与其当前状态以及其某个局部邻域的状态有关。应用场景:在实际应用过程中,有的元胞自动机模型对其中的某些特征进行了扩展,有的在规则设计中引入随机因素,如:森林火灾模型。又如,在交通、通讯发达的今天,研究流行病或计算机病毒的传播问题时,我们还可以将空间背景换成复杂网络的结点,用网络邻接点作为邻居。这样的调整显然比仍旧使用二维欧氏空间、采用欧氏距离的模型更加符合实际情况。在大型场所人群紧急疏散问题模拟研究中,可以考虑年龄、性别等因素,即元胞不是同质的,更加有利于使模拟系统接近真实系统。代码:需根据具体问题制定K近邻算法算法分类:有监督学习算法应用场景:可以已有的数据,对于待测试的数据进行类别预测,即通过最近邻的K个样本进行对未知数据的预测代码:defclassify0(intX,dataSet,labels,k):intX是测试的用例,dataset训练集‘labels是训练集对应的标签,k是用于选择最近邻的数目dataSetSize=dataSet.shape[0]用欧式距离公式进行距离计算diffMat=tile(intX,(dataSetSize,1))-dataSet#numpy.tile进行数组的重复生成sqdiffMat=diffMat**2sqDistances=sqdiffMat.sum(axis=1)distances=sqDistances**0.5sortedDistIndicies=distances.argsort()#返回的是数组值从小到大的索引值classCount={}foriinrange(k):voteIlabel=labels[sortedDistIndicies[i]]classCount[voteIlabel]=classCount.get(voteIlabel,0)+1sortedClassCount=sorted(classCount.items(),key=op.itemgetter(1),reverse=True)#python3中函数为:items(),python2中函数为:iteritems()returnsortedClassCount[0][0]解耦分析应用场景可以衡量变量之间的依赖性数学模型:代码:待调试联立方程模型应用场景,可以求得各变量对因变量的影响权重数学模型"hi(Enc)=0D+0ilii(G咖)+02MC^p)+031rL(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冀少版八年级生物上册第四章微生物在生物圈中的作用课件
- 变量与函数教案
- 《轮轴的秘密》教学设计
- 《莫高窟》教案中涉及的网络资源
- 港口码头施工合同样本
- 医疗设备采购招投标管理台账
- 个性化软件售后服务承诺书
- 水上娱乐设施防水维护合同
- 区块链会所租赁合同模板
- 旅游景区设施增补协议
- 三年级数学(上)计算题专项练习附答案集锦
- 历史期中复习课件七年级上册复习课件(部编版2024)
- 2024秋八年级道德与法治上册 第二单元 遵守社会规则 第五课 做守法的公民 第1框 法不可违说课稿 新人教版
- 2024-2025学年八年级物理上册 4.2光的反射说课稿(新版)新人教版
- 《现代管理原理》章节测试参考答案
- DBJ41T 263-2022 城市房屋建筑和市政基础设施工程及道路扬尘污染防治差异化评价标准 河南省工程建设标准(住建厅版)
- 2024年《保安员》上岗证考试题库190题及答案
- 课堂教学质量评价表
- 第二章 中国的自然环境 综合检测
- 停车收费系统购买合同范本
- 2024年新人教版七年级数学上册教学课件 第六章 几何图形初步 6.1.2 点、线、面、体
评论
0/150
提交评论