《Spark大数据技术与应用案例教程》教案第16课提取鸢尾花的特征.docx
《《Spark大数据技术与应用案例教程》教案第16课提取鸢尾花的特征.docx》由会员分享,可在线阅读,更多相关《《Spark大数据技术与应用案例教程》教案第16课提取鸢尾花的特征.docx(9页珍藏版)》请在课桌文档上搜索。
1、课题提取莺尾花的特征课时2课时(90min)教学目标知识技能目标:(1)掌握常用的特征提取算法(2)掌握常用的特征转换算法(3)掌握常用的特征选择算法素质目标:(1)能熟练运用机器学习算法解决日常生活中的数据分析问题(2)培养自主学习意识,提升实践操作能力教学重难点教学重点:SParkMLlib的特征取、特征转换和特征!蟒教学难点:使用SparkMLlib的特征提取、特征转换和特征选择等特征化工具处理数据教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软
2、件,完成课前任务了解SParkMLlib的特征提取、特征转换和特征选择算法。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:什么是数据特征?【学生】思考、举用答传授新知【教师】通过学生的回答引入新知,介绍特征提取、特征转换和特征选择的相关知识一、特征提取特征提取是指从原始数据中提取有用的、可数的、可比较的特征的过程。它可以将复杂的数据转换成便于分析和处理的数据形式,同时减少计算量和存储空间.pyspark.ml包椅共的梯睡取算;抱括TF-IDFxWord2Vec等,1.TF-IDF【教师】介绍TF-IDF算法词频-逆文档频率(ter
3、mfrequency-inversedocumentfrequency.TF-IDF)算法是文本挖掘领域常用的特征提取方法。它用于评估一个词语对于语料库中的某个文档的重要程度,可应用于搜索引擎、推荐系统、文本分类、聚类分析等多个领域。词频(termfrequency,TF)表示一词语在文档中出现的频率。逆文档频率(inversedocumentfrequency,IDF)用于衡量一个词语在整个语料库中的稀有程度。TF-IDF算法的工作原理如下。一、笛T怀闩怀某个词语在文档中出现的次数(1)计算词频。词频=-FWsV、-文档的总词语数c,也.西怀宓b地幅它1(语料库的文档总数、(2)计算逆文档频
4、率。逆文粕频率一log(有小2、干五的五工也将J。包含该词语的文档数+1(3)计算TF-IDF.TF-IDF=词频?逆文档频率在SparkMLlib中,TF-IDF算法的实现步骤如下。首先使用HaShingTFo方法计算词频,该方法的基本格式如下。HashingTF(inputCol,OutputCol,numFeatures,binary)其中,参数inputCol表示输入列的名称;参数OUlPUtCOI表示输出列的名称;参数numFeatures(可选)表示特征向量的维度大小,默认值为262144;参数binary(可选)表示是否将特征向量中的非零值设置为1,默认值为FalSe.然后使用I
5、DFO方法计算每个词语的TFIDF度量值,该方法的基本格式如下。IDF(inputCol,otputCol,minDocFreq)其中,参数inputCol表示输入列的名称,该输入列为HaShingTF()方法的输出列;参数OUtPUlCOI表示输出列的名称;参数minDocFreq(可选)表示词语至少出现在语料库中的minDocFreq个文档中才会被考虑,默认值为Oe【教师】通过例子,帮助学生掌握TF-IDF算法的应用【例5-1使用TF-IDF算法计算每个词语的TF-IDF度量值,输出结果如图5-5所示。IIIabeISlfeatures1二二:二二二二二二二二;二二二二二二二二二二二二二二
6、二二二二二二二二二二二二二二二二二二0I(2000.(202,467.845.891,1209,1263.1286.1S8J.1720,1996,(O.M471S05599453.0.W31471805599453.0.69314718055M4S3,0.0.0.28768207245178085.0.6931471805599453,0.28768207245178085,0.6931471805599453,0.6931471805599453.0.6931471805S99453)I|1(2000.(66.BO,344,466,6690,S91.1048.1209.1S7S,1585,1
7、69S).(0.693147180S5994S3.0.69314nBOSS9MS3.0.6931471SOSS99453.06931471805599453,0.6931471805599453.0.6931471805599453,0.0.0.6931471805599453.0.28768207245178085.0.6931471805599453.0.28768207245178085.0.28768207245178085)2I(2000.(7.40.312.488.547.K3JS1.891,1286.1S85.1605.1695J.(0.69n47180559945J.0.693
8、H71805SMS3,0.6931471SOSS9M53.0.6931471805599453,0.6931471805S99453,0.6931471805599453.0.6931471805599453,0.0.0.28768207245178085,0.28768207245178085,0.6931471805599453t0.28768207245178085)|图5-5TFlDF算法的输出结果hadoopbogon-$pysparkfrompyspark.ml.featureimportHashingTF,IDFfrompyspark.sql.functionsimportspl
9、it#定义数据data=(0,ApacheSparkisafastandgenera!-purposeclustercomputingsystem),(1,Hadoopisanopen-sourcesoftwareframeworkforstoringandprocessingbigdata),(2,SparkandHadoopareoftenusedtogethertoprocesslarge-scaledatasets)# 创建DataFramedf=spark.createDataFrame(data,labels,text)# 将text列的文本拆分为单词,并将该列的列名修改为word
10、sdf=df.withColumn(words,split(df.tex(,)# 创建HashingTF对象hashingTF=HashingTF(inputCol=,words,OutputCol=rawFeatures,numFeatures=2(XX)# 执行转换操作,应用HaShingTF模型进行数据转换featurizedDa(a=hashingTF.transfrm(df)# 创建IDF对象idf=IDF(inputCol=rawFeatures,OutputCol=features*)# i川练IDF模型idfModel=idf.fit(FeaturizedData)# 应用ID
11、F模型进行数据转换rescaledData=idfModel.transfbn(featurizedData)#选择标签和特征列并显示结果rescaledData-select(labeIs,features).shoWftnmcate=False)【高手点拨】DataFrame的withColumn(columnName,COl)方法用于在现有DataFrame中添加、替换或修改列。其中,参数COlumnName表示要添加或修改的列的名称;参数col表示要添加或替换的列的值或表达式。在机器学习中,训练和测试模型的数据集可以不同也可以相同,即可以将数据集划分为训练集和测试集,也可以不划分。Sp
12、arkMLIib提供了一些训练好的模型,开发人员可以直接使用transfOrm()方法应用这些模型对数据进行转换操作。输出结果中特征列features的数据说明如表5-2所示。表5-2输出结果中特征列的数据说明特征列数据说明2000代表特征向量的维度大小为2000202.467,845,891.1209,1263,1286.1583.1720,1996oApache,Spark,is,a,fast,and,general-purpose,cluster,computing,system*的哈希值0.6931471805599453,0.6931471805599453,0.6931471805
13、599453.0.6931471805599453表示每个词语的TF-IDF度量值2.Word2Vec【教师】介绍WordZVec算法词向量(Word2Vec)是一种基于神经网络的自然语言处理模型,用于将词语表示为高维向量。WOrd2Vec模型一旦训练完成,就可以使用该模型获得每个词语的向量表示.这些向量可以作为输入特征用于各种任务,如文档分类、情感分析和推荐系统等。WOrd2Vec()方法的基本格式如下。Word2Vec(inputCol,outputCol,VectorSize,minCount,Partitions,maxIter,StepSize,seed,windowSize,max
14、SentenceLength,inputTokenizer,OutputWordEmbeddings)其中,常用参数的含义如下。inputCol:表示输入列的名称.OUtPUICol:表示输出列的名称。(详见教材)【小提示】本书只讲解每个方法的常用参数,未提到的参数请自行查阅官方文档进行学习。【教师】通过例子,帮助学生掌握Word2VeC算法的应用【例5-2使用VVord2Vec算法将单词表示为高维向量,输出结果如图5-6所示。hadoop()bogon$pysparkfrompyspark.ml.featureimportWord2Vecfrompyspark.sql.functionsim
15、portsplit,col#定义一些句子,每个句子分解为单词组成的列表Seq=IheardaboutSparkandIloveSpark.split(),IwishJavacouldusecaseclasses.split(,),Logisticregressionmodelsareneat.split()1顺建DataFrame,将列表中的每个元素转换为一行数据,并将列名命名为textdf=spark.createDataFrame(s,)forsinseq,text)舱!J建Word2Vec对象,设置输入和输出列、词向量的维度大小和最小词频word2Vec=Word2Vec(inputCo
16、l=text,outputCol=result,vectorSize=3,minCount=0)相Il练Word2Vec模型model=word2Vec.fit(df)#应用Word2Vec模型迸行数据转换result=model.transform(df)result.select(text,result).show(truncate=False)result.select(text,result*).shw(truncateFalse)ItextIresult-I(I,heard,about,SparkfandtI,love,SparkI(-0.0632904237136244810.02
17、1146534476429224r-0.01727932202629745II.wish.Java9could,use.case,classes(-0.008821263876078385.-0.011005219338195664.-0,008713434317282267I(Logistic,regression,models,are,neat0.0799966722726822,*0.010457423329353333l0.01600616276264191)图5-6WOrd2Vec算法的输出结果二、特征转换【教师】介绍常用的特征转换算法特征转换是指1各原始数据中特征值的表示形式转换为
18、新的特征表示形式,以便更好地进行城分析和模型训练。特征转换可以通过对原始特征进行加工、组合、降维等方式来实现。PySPark.ml包提供了大量特征转换算法,常用的特征转换算法如下。(1)Tokenizer.Tokenizer用于分割给定的文本数据,将文本中的句子转换为4的、独立的单词序列。TokeniZerO方法的基本格式如下。Tokenizer(inputCol,outputCol)其中,参数inputCol表示输入列的名称;参数OUlPUtCol表示输出列的名称。(2)BinarizereBinarizer可以将某个特征的取值二值化,即将小于某个阈值的值设置为0,大于等于该阈值的值设置为L
19、BinariZer()方法的基本格式如下。BinarizeKinpuiCoI,outputCol,threshold)其中,参数inputCol表示输入列的名称;参数outputCol表示输出列的名称;参数threshold(可选)表示阈值,默认值为0.0(3)StringIndexereSuingIndexer可以将原始的字符串类型的特征映射到一个整数序列上,其中不同的字符串会被映射到唯一的整数值上。SIringIndeXer。方法的基本格式如下。StringIndexer(inpulCol,outputCol.handleinvalid.StringOrderType)其中,参数input
20、Col表示输入列的名称;参数outputCol表示输出列的名称;参数HandleInvalid表示如何处理无效的输入数据,可选值包括error(抛出异常)、skip(期诅该特征值)和keep(将其视为一个新的特征值),默认值为error;参数s(ringOrderType表示字符串的索引顺序类型,可选值包括frequencyDesc(按照出现频率降序排序)、FrequencyAsc(按照出现频率升序排序),alphabetDesc(按照字母表顺序降序排序)等,默认值为frequencyDesc.(4)NonnalizereNormaIiZer可以对每个样本进行规范化操作。NonnaIiZero
21、方法的基本格式如下。Normalizer(inputCol,outputCol,p)其中,参数inputCol表示输入列的名称;参数outputCol表示输出列的名称;参数P表示要使用的范数类型,常见的取值有LO(U范数)、2.0(L2范数)和np.inf(无穷范数),默认值为2.0.(5)MinMaxScalereMinMaxScaler可以将每个特征缩放到给定的范围,使所有特征都具有相同的重要性。MinMaXSCaIero方法的基本格式如下。MinMaxScaler(inputCol,outputCol,min,max)其中,参数i11putCol表示输入列的名称;参数OUlPUtCoI表
22、示输出列的名称;参数min(可选)表示特征缩放后的最小值,默认值为0.0;参数max(可选)表示特征缩放后的最大值,默认值为l.0(6)主成分分析(PCA).PCA可以将高维的数据转换为低维的数据,同时尽量保留原始数据中的关键信息.PCAo方法的基本格式如下.PCA(k,inputCol,outputCol)(7)VectorAssemblereVectorAssembler可以将多列娄照合并为单个向量列。VeClorASsemblero方法的基本格式如下.VectorAssembler(inputCols,outputCol,Iiandlehivalid)其中,参数inputCols表示输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spark大数据技术与应用案例教程 Spark 数据 技术 应用 案例 教程 教案 16 提取 鸢尾 特征
链接地址:https://www.desk33.com/p-1242649.html