PySpark大數(shù)據(jù)技術(shù)與應(yīng)用 課件 第5章 基于PySpark的機(jī)器學(xué)習(xí)庫_第1頁
PySpark大數(shù)據(jù)技術(shù)與應(yīng)用 課件 第5章 基于PySpark的機(jī)器學(xué)習(xí)庫_第2頁
PySpark大數(shù)據(jù)技術(shù)與應(yīng)用 課件 第5章 基于PySpark的機(jī)器學(xué)習(xí)庫_第3頁
PySpark大數(shù)據(jù)技術(shù)與應(yīng)用 課件 第5章 基于PySpark的機(jī)器學(xué)習(xí)庫_第4頁
PySpark大數(shù)據(jù)技術(shù)與應(yīng)用 課件 第5章 基于PySpark的機(jī)器學(xué)習(xí)庫_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

MLlib算法庫1MLlib介紹目錄MLlib算法庫2pyspark.ml模塊3MLlib是Spark中提供的可擴(kuò)展的機(jī)器學(xué)習(xí)庫,由一系列的機(jī)器學(xué)習(xí)算法組成,并且對常用的機(jī)器學(xué)習(xí)算法進(jìn)行了分布式實(shí)現(xiàn)。算法庫:分類、回歸、聚類、協(xié)同過濾等實(shí)用程序:數(shù)據(jù)預(yù)處理、特征提取、模型保存和加載等MLlib算法庫1MLlib介紹目錄MLlib算法庫2pyspark.ml模塊3機(jī)器學(xué)習(xí)是對研究問題進(jìn)行模型假設(shè),利用計(jì)算機(jī)從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)得到模型參數(shù),并最終對數(shù)據(jù)進(jìn)行預(yù)測和分析的一門學(xué)科。有監(jiān)督學(xué)習(xí)。有監(jiān)督學(xué)習(xí)是使用有標(biāo)簽的訓(xùn)練數(shù)據(jù)計(jì)算概率分布或圖模型的機(jī)器學(xué)習(xí)算法。常見的有監(jiān)督學(xué)習(xí)算法包括回歸和分類算法。無監(jiān)督學(xué)習(xí)。無監(jiān)督學(xué)習(xí)是通過學(xué)習(xí)大量的無標(biāo)簽的數(shù)據(jù),分析數(shù)據(jù)內(nèi)在的特點(diǎn)和結(jié)構(gòu)的機(jī)器學(xué)習(xí)算法。常見的無監(jiān)督學(xué)習(xí)有聚類算法。半監(jiān)督學(xué)習(xí)。半監(jiān)督學(xué)習(xí)是有監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)相結(jié)合的一種學(xué)習(xí)方法。半監(jiān)督學(xué)習(xí)需要采用合適的半監(jiān)督假設(shè)將學(xué)習(xí)模型和無標(biāo)簽樣本的數(shù)據(jù)分布聯(lián)系起來。常見的半監(jiān)督假設(shè)包括平滑假設(shè)(smoothnessassumption)、聚類假設(shè)(clusterassumption)和流型假設(shè)(manifoldassumption)。機(jī)器學(xué)習(xí)簡介MLlib是Spark的機(jī)器學(xué)習(xí)算法庫,利用Spark分布式處理實(shí)現(xiàn)在大規(guī)模數(shù)據(jù)集上的機(jī)器學(xué)習(xí)。MLlib由一些通用的學(xué)習(xí)算法(如分類、回歸和聚類等)和工具(如轉(zhuǎn)換器、管道、評估器等)組成。Spark在1.3版本引入了高層次的DataFrame描述數(shù)據(jù)。針對這種改變,Spark將MLlib機(jī)器學(xué)習(xí)庫劃分成了如下兩個模塊。mllib模塊。包含基于RDD的機(jī)器學(xué)習(xí)算法API,目前不再更新,不建議使用。ml模塊。包含基于DataFrame的機(jī)器學(xué)習(xí)算法API,可以用于構(gòu)建機(jī)器學(xué)習(xí)工作流,ml模塊彌補(bǔ)了原始mllib模塊的不足,推薦使用。MLlib介紹1MLlib介紹目錄MLlib算法庫2pyspark.ml模塊3pyspark.ml模塊中包含了3個重要的抽象類,即轉(zhuǎn)換器(Transformer)、評估器(Estimator)和管道(Pipeline)。轉(zhuǎn)換器。具有transform()方法,通過附加一個或多個列將一個DataFrame轉(zhuǎn)換成另外一個DataFrame。在pyspark.ml.feature模塊中提供了許多轉(zhuǎn)換,常見的有VectorAssembler(特征向量組合轉(zhuǎn)換器)和OneHotEncoder(獨(dú)熱編碼轉(zhuǎn)換器)。評估器。具有fit()方法,接受一個DataFrame數(shù)據(jù)作為輸入,后經(jīng)過訓(xùn)練,得到一個轉(zhuǎn)換器,該方法需要合適的參數(shù)擬合DataFrame中的數(shù)據(jù)。PySpark中的評估器主要包分類,回歸、聚類和推薦等。管道。具有setStages()方法,將多個轉(zhuǎn)換器和一個評估器串聯(lián)起來,得到一個流水線模型。該流水線模型可以對輸入的一些原始數(shù)據(jù)執(zhí)行必要的數(shù)據(jù)加工、模型構(gòu)建和評估。pyspark.ml模塊pyspark.ml.feature模塊提供了轉(zhuǎn)換器實(shí)現(xiàn),按照轉(zhuǎn)換器實(shí)現(xiàn)的功能可以對轉(zhuǎn)換器的類型進(jìn)行劃分。轉(zhuǎn)換器類別轉(zhuǎn)換器功能描述特征離散化Binarizer根據(jù)指定的閾值將連續(xù)變量轉(zhuǎn)換為二元離散值Bucketizer根據(jù)閾值列表將連續(xù)變量轉(zhuǎn)換為多元離散值特征轉(zhuǎn)換Normalizer該方法使用p范數(shù)將數(shù)據(jù)縮放為單位范數(shù)(默認(rèn)為L2)MinMaxScaler將數(shù)據(jù)縮放到[0,1]范圍內(nèi)MaxAbsScaler將數(shù)據(jù)縮放到[-1,1]范圍內(nèi)StandardScaler按照均值為0,方差為1進(jìn)行數(shù)據(jù)歸一化轉(zhuǎn)換接上表轉(zhuǎn)換器類別轉(zhuǎn)換器功能描述特征選擇PCA使用主成分分析執(zhí)行數(shù)據(jù)降維ChiSqSelector使用卡方檢驗(yàn)統(tǒng)計(jì)量篩選特征VectorSlicer根據(jù)索引列表從原特征向量中提取向量,形成新的特征向量文本特征提取CountVectorizer文本中的詞語轉(zhuǎn)換為詞頻矩陣StringIndexer將字符串索引化Word2Vec將單詞轉(zhuǎn)換為Map(String,Vector)模型IDF該方法計(jì)算文檔列表的逆向文件頻率接上表轉(zhuǎn)換器類別轉(zhuǎn)換器功能描述文本特征提取StopWordsRemover從標(biāo)記文本中刪除停用詞,如'the','a'等Tokenizer以空格為分割符進(jìn)行分詞RegexTokenizer基于正則表達(dá)式的分詞器NGram將n個相鄰詞組合成字符特征向量化VectorAssembler將多個數(shù)字(包括向量)列合并為一列向量PolynomialExpansion對向量執(zhí)行多項(xiàng)式展開OneHotEncoder該方法將分類列編碼為二進(jìn)制向量列pyspark.ml模塊中評估器主要用于實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法模型,分類(pyspark.ml.classification)、回歸(pyspark.ml.regression)和聚類(pyspark.ml.clustering)等多種算法模型的實(shí)現(xiàn)。評估器模型類別模型功能描述分類模型LogisticRegression分類的基準(zhǔn)模型,使用對數(shù)函數(shù)計(jì)算屬于特定類別的概率DecisionTreeClassifier決策樹模型,構(gòu)建決策樹來預(yù)測輸入數(shù)據(jù)的類別GBTClassifier梯度提升決策樹模型,組合多個弱預(yù)測模型形成一個強(qiáng)預(yù)測模型RandomForestClassifier隨機(jī)森林模型,構(gòu)建多棵決策樹對輸入數(shù)據(jù)進(jìn)行分類,支持二元分類和多元分類NaiveBayes貝葉斯模型,基于條件概率理論對數(shù)據(jù)行分類接上表評估器模型類別模型功能描述回歸模型DecisionTreeRegressor決策樹回歸模型,與決策樹分類模型區(qū)別是樣本標(biāo)簽是連續(xù)值而不是離散型RandomForestRegressor隨機(jī)森林回歸模型,標(biāo)簽是連續(xù)數(shù)值,而不是離散型標(biāo)簽GBTRegressorGBDT回歸模型,樣本標(biāo)簽是連續(xù)值LinearRegression線性回歸GeneralizedLinearRegression廣義線性回歸模型,支持使用不同的高斯核函數(shù)進(jìn)行線性分析聚類模型LDA主題生成模型,用于獲取文本文檔的主題模型KMeansK均值聚類模型,將數(shù)據(jù)分成K類BisectingKMeans結(jié)合K均值算法和層次聚類算法,二分K均值,每次一分為二,直到數(shù)目等于k為止推薦模型ALS基于交替最小二乘法求解協(xié)同過濾模型在構(gòu)建完評估器(即模型)后,還需對模型評價與優(yōu)化。pyspark.ml.evaluation模塊提供了模型的評價方法。評估器模型評價方法功能描述分類模型BinaryClassificationEvaluator評價二分類模型的方法MulticlassClassificationEvaluator評價多分類模型的方法MultilabelClassificationEvaluator評價多標(biāo)簽分類模型的方法回歸模型RegressionEvaluator評價回歸模型的方法聚類模型ClusteringEvaluator評價聚類模型的方法排名模型RankingEvaluator評價排名模型的方法pyspark.ml.tuning模塊提供了模型優(yōu)化的方法。在機(jī)器學(xué)習(xí)中,需要對模型的參數(shù)進(jìn)行調(diào)整,不斷的擬合訓(xùn)練數(shù)據(jù),最終獲得較好的預(yù)測結(jié)果。評估器優(yōu)化方法功能描述ParamGridBuilder參數(shù)網(wǎng)格,設(shè)置需要優(yōu)化參數(shù)值的可選范圍,進(jìn)行網(wǎng)絡(luò)遍歷搜索CrossValidatorTrainValidationSplit根據(jù)參數(shù)劃分訓(xùn)練集和驗(yàn)證集,模型只訓(xùn)練一次pyspark.ml模塊中的管道用來表示從轉(zhuǎn)換器到評估器的端到端的操作,由多個轉(zhuǎn)換器和評估器組成,按照順序執(zhí)行,對輸入數(shù)據(jù)執(zhí)行必要的數(shù)據(jù)轉(zhuǎn)換,最后評估模型。一個管道由多個轉(zhuǎn)換器和一個評估器組成,管道中每個轉(zhuǎn)換器或評估器稱之為階段(stages),在pipeline對象上執(zhí)行fit()方法時,依次執(zhí)行管道中每個轉(zhuǎn)換器的transform()方法和所有評估器的fit()方法。Pipeline就是將數(shù)據(jù)分析的多個階段,如數(shù)據(jù)加載,數(shù)據(jù)預(yù)處理,模型評估等階段,整合在一個pipeline對象進(jìn)行統(tǒng)一管理,在pipeline對象上執(zhí)行fit()方法操作,即可一步完成從數(shù)據(jù)加載到模型評估的全過程,簡化模型管理過程。管道本小節(jié)主要介紹機(jī)器學(xué)習(xí)的相關(guān)內(nèi)容:Pyspark機(jī)器學(xué)習(xí)MLlib庫機(jī)器學(xué)習(xí)的基本概念pyspark.ml模塊庫基本介紹小結(jié)使用pyspark.ml模塊的轉(zhuǎn)換器處理和轉(zhuǎn)換數(shù)據(jù)1數(shù)據(jù)降維目錄數(shù)據(jù)加載及數(shù)據(jù)集劃分2數(shù)據(jù)標(biāo)準(zhǔn)化3數(shù)據(jù)類型轉(zhuǎn)換4pyspark.ml模塊提供一系列基本的數(shù)據(jù)類型以支持機(jī)器學(xué)習(xí)算法,數(shù)據(jù)類型包括本地向量(LocalVector)、向量標(biāo)簽(LabeledPoint)、本地矩陣(LocalMatrix)和分布式矩陣(DistributedMatrix)。本地向量和本地矩陣是作為公共接口的簡單數(shù)據(jù)模型。向量標(biāo)簽將特征向量和標(biāo)簽進(jìn)行封裝,用于有監(jiān)督學(xué)習(xí)算法。在構(gòu)建模型前,需要先加載數(shù)據(jù),再進(jìn)行數(shù)據(jù)的轉(zhuǎn)換、劃分、標(biāo)準(zhǔn)化等操作。對數(shù)據(jù)中存在的可疑數(shù)據(jù)、缺失數(shù)據(jù)進(jìn)行正確的預(yù)處理。對異常數(shù)據(jù)、離群數(shù)據(jù)進(jìn)行合理的取舍,為模型構(gòu)建提供正確的數(shù)據(jù)。使用pyspark.ml模塊的轉(zhuǎn)換器處理和轉(zhuǎn)換數(shù)據(jù)Spark支持訪問多種數(shù)據(jù)源,Hive數(shù)據(jù)表、數(shù)據(jù)庫、Avro、Parquet、JSON、CSV、TXT等,采用DataFrame數(shù)據(jù)模型實(shí)現(xiàn)數(shù)據(jù)的讀取和數(shù)據(jù)集的劃分。為機(jī)器學(xué)習(xí)模型提供訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。數(shù)據(jù)加載及數(shù)據(jù)集劃分在進(jìn)行機(jī)器學(xué)習(xí)前,首先需要從各種數(shù)據(jù)源中加載數(shù)據(jù),以CSV格式的文件為例,介紹使用PySpark加載數(shù)據(jù)的過程,其他文件格式的數(shù)據(jù)讀取方式請參考第3章。鳶尾花數(shù)據(jù)集,該數(shù)據(jù)集收集了3類鳶尾花,記錄了鳶尾花萼片、花瓣的長度和寬度數(shù)據(jù)4項(xiàng)特征,包含6個數(shù)據(jù)字段:花分類編號、花瓣長度、花瓣寬度、花萼長度、花萼寬度、花分類名稱。數(shù)據(jù)加載字段名稱說明Species_No分類編號,取值:1,2,3Petal_width花瓣寬度Petal_length花瓣長度Sepal_width萼片寬度Sepal_length萼片長度Species_name分類名稱:setosa,versicolour,virginica數(shù)據(jù)存儲將該數(shù)據(jù)集存儲至HDFS的/tmp目錄下。使用csv()方法讀取CSV文件數(shù)據(jù)并創(chuàng)建DataFrame結(jié)構(gòu)保存數(shù)據(jù)。初始化spark對象,調(diào)用spark.read.csv函數(shù)讀取文件內(nèi)容。數(shù)據(jù)加載讀取數(shù)據(jù)后,需要進(jìn)行數(shù)據(jù)的探索和預(yù)處理,如缺失值、異常值處理等,處理完數(shù)據(jù)后,為了后續(xù)的模型結(jié)果評價,一般需要對數(shù)據(jù)集進(jìn)行劃分,分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集用于模型的學(xué)習(xí),測試數(shù)據(jù)集用于模型性能和正確性的評價。常用7:3或8:2比例劃分?jǐn)?shù)據(jù)集(7:3表示數(shù)據(jù)集中取70%作為訓(xùn)練數(shù)據(jù),30%作為測試數(shù)據(jù))。使用randomSplit()方法進(jìn)行訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集的劃分,主要參數(shù)說明如下。Weight:權(quán)重列表,用于指定劃分的訓(xùn)練與測試數(shù)據(jù)集的比例。Seed:用于采樣的種子,對于相同的數(shù)據(jù)集,相同的Seed,采樣得到結(jié)果是一樣的。數(shù)據(jù)集劃分1數(shù)據(jù)降維目錄數(shù)據(jù)加載及數(shù)據(jù)集劃分2數(shù)據(jù)標(biāo)準(zhǔn)化3數(shù)據(jù)類型轉(zhuǎn)換4數(shù)據(jù)降維,也稱特征選擇,是指在特征向量中選擇出真正相關(guān)的特征,組成新的特征向量,進(jìn)而簡化模型,協(xié)助理解數(shù)據(jù)產(chǎn)生的過程。數(shù)據(jù)降維的目的是剔除不相關(guān)(irrelevant)或冗余(redundant)的特征,從而達(dá)到減少特征個數(shù),提高模型精確度,減少運(yùn)行時間的效果。在pyspark.ml模塊中提供了兩種數(shù)據(jù)降維的方式,即卡方驗(yàn)證特征篩選和主成分篩選。數(shù)據(jù)降維卡方驗(yàn)證體現(xiàn)了樣本的實(shí)際觀測值與理論推斷值之間的偏離程度??ǚ街翟酱?,二者偏離度越大;卡方值越小,二者偏離度越??;卡方驗(yàn)證特征篩選是運(yùn)用卡方驗(yàn)證對候選特征與因變量進(jìn)行獨(dú)立性檢驗(yàn)。如果卡方值小,相關(guān)性低,該特征可以舍棄;如果卡方值大,相關(guān)性高,則說明該特征會對因變量產(chǎn)生比較大的影響,應(yīng)當(dāng)選擇。以iris鳶尾花數(shù)據(jù)集為例。4個特征和1個分類標(biāo)簽,從4個特征中篩選相關(guān)性高的2個特征。使用卡方驗(yàn)證篩選特征主成分分析(PrincipalComponentAnalysis,PCA)是設(shè)法將原來眾多具有一定相關(guān)性的特征重新組合成一組新的互相無關(guān)的綜合特征代替原來的特征,能夠?qū)崿F(xiàn)將高維數(shù)據(jù)映射到較低維的空間,同時盡可能保留原有的信息的特征提取方法。采用沿著垂直軸的方向,以最大化方差的方式挑選新的特征,將高維特征空間轉(zhuǎn)換為包含衍生特征的較低維空間。以iris鳶尾花數(shù)據(jù)集為例,使用PCA方法將數(shù)據(jù)集中4維特征映射成新的2維特征,實(shí)現(xiàn)特征篩選。使用主成分分析篩選特征選1數(shù)據(jù)降維目錄數(shù)據(jù)加載及數(shù)據(jù)集劃分2數(shù)據(jù)標(biāo)準(zhǔn)化3數(shù)據(jù)類型轉(zhuǎn)換4在機(jī)器學(xué)習(xí)領(lǐng)域中,數(shù)據(jù)集中包含的特征往往具有不同的量綱和量綱單位,不同的量綱會影響各特征之間的大小范圍,不具備可比性,進(jìn)而影響到數(shù)據(jù)分析的結(jié)果。為了消除特征之間的量綱影響,需要進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化處理,實(shí)現(xiàn)數(shù)據(jù)指標(biāo)之間的可比性。最大最小標(biāo)準(zhǔn)化最大絕對值標(biāo)準(zhǔn)化正態(tài)分布標(biāo)準(zhǔn)化基于范數(shù)的標(biāo)準(zhǔn)化3.數(shù)據(jù)標(biāo)準(zhǔn)化MinMaxScaler最大最小標(biāo)準(zhǔn)化方法是將數(shù)據(jù)集中每一維特征值轉(zhuǎn)換到[0,1]閉區(qū)間上,即將每一維特征的各特征值減去最小值,除以該維度數(shù)據(jù)的跨度(最大值減最小值)。對數(shù)據(jù)集[(1,1,2),(0,2,2),(-1,5,3),(-3,5,1)]進(jìn)行最大最小標(biāo)準(zhǔn)化。MinMaxScaler最大最小標(biāo)準(zhǔn)化MaxAbsScaler最大絕對值標(biāo)準(zhǔn)化方法是將數(shù)據(jù)集中每一維的特征值轉(zhuǎn)換到[-1,1]閉區(qū)間上,即通過將每一維特征值除以該維度中的最大絕對值。最大絕對值標(biāo)準(zhǔn)化方法不會平移數(shù)據(jù),因此不會破壞原有特征向量的稀疏。對數(shù)據(jù)集[(1,-2,1),(0,-2,-2),(-1,2,0),(-2,2,1)]進(jìn)行最大絕對值標(biāo)準(zhǔn)化。MaxAbsScaler最大絕對值標(biāo)準(zhǔn)化StandardScaler正態(tài)分布標(biāo)準(zhǔn)化將數(shù)據(jù)集中每一維特征列向量標(biāo)準(zhǔn)化為標(biāo)準(zhǔn)差為1,平均值為0的特征向量。使用StandardScaler對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,有兩個參數(shù)可設(shè)置。withStd:默認(rèn)為true,使用單位標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化數(shù)據(jù),即將每維特征的特征值除以該維所有特征值的標(biāo)準(zhǔn)差。向量[a,b,c],向量樣本差為m,標(biāo)準(zhǔn)化后為[a/m,b/m,c/m]。withMean:是否按均值進(jìn)行平移,默認(rèn)為false,即每維特征不按平均值進(jìn)行平移。向量[a,b,c],向量均值為m,標(biāo)準(zhǔn)化后為[a-m,b-m,c-m]。對數(shù)據(jù)集合[([1,-2,0],[),(0,-2,1)],[(-1,-2,2])]進(jìn)行正態(tài)分布標(biāo)準(zhǔn)化。StandardScaler正態(tài)分布標(biāo)準(zhǔn)化Normalizer基于范數(shù)的標(biāo)準(zhǔn)化方法是將數(shù)據(jù)中的每一行向量使用范數(shù)將數(shù)據(jù)縮放為單位范數(shù),即將數(shù)據(jù)集每個元素除以該行元素的P范數(shù)。例如:某行向量為[a,b,c],如果公式計(jì)算其n階范數(shù)值為m,那么標(biāo)準(zhǔn)化后得到的向量為[a/m,b/m,c/m]。對數(shù)據(jù)集[(-1,0,1)][,(1,2,3)]每一行向量使用p=1和p=2進(jìn)行基于范數(shù)的標(biāo)準(zhǔn)化。Normalizer基于范數(shù)的標(biāo)準(zhǔn)化1數(shù)據(jù)降維目錄數(shù)據(jù)加載及數(shù)據(jù)集劃分2數(shù)據(jù)標(biāo)準(zhǔn)化3數(shù)據(jù)類型轉(zhuǎn)換4pyspark.ml模塊中的機(jī)器學(xué)習(xí)算法都采用Vector類型存儲和處理特征向量,數(shù)據(jù)集中的文本、數(shù)值等信息轉(zhuǎn)換成MLlib庫中算法所需要的數(shù)據(jù)結(jié)構(gòu)。在pyspark.ml模塊中,提供了對數(shù)據(jù)類型轉(zhuǎn)換的方法,對數(shù)據(jù)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。Vector向量StringIndexer標(biāo)簽索引轉(zhuǎn)換器VectorAssembler向量裝配轉(zhuǎn)換器OneHotEncoder獨(dú)熱編碼轉(zhuǎn)換器PolynomialExpansion多項(xiàng)式展開轉(zhuǎn)換器4.數(shù)據(jù)類型轉(zhuǎn)換在pyspark.ml模塊中,Vector類型包含了兩種向量。密集向量(DenseVector)記錄所有的值。稀疏向量(SparseVector)通過索引記錄非零值,可以有效減少存儲空間。示例:將一維數(shù)組轉(zhuǎn)換為密集向量。如:[-1,0,1]示例:將一維數(shù)組轉(zhuǎn)換為稀疏向量。如:[0,1,0,3,]Vector向量數(shù)組向量[-1,0,1]DenseVector([-1.0,0.0,1.0][0,1,0,3]SparseVector(4,{1:1.0,3:3.0}對于字符串類型的數(shù)據(jù),可以使用StringIndexer標(biāo)簽索引轉(zhuǎn)換器將字符串轉(zhuǎn)換為數(shù)字,再使用其他轉(zhuǎn)換方法得到向量類型的數(shù)據(jù)結(jié)構(gòu)。標(biāo)簽索引轉(zhuǎn)換器是按照字符串按照出現(xiàn)的頻率進(jìn)行排序,出現(xiàn)次數(shù)最高的對應(yīng)的Index為0。對以下數(shù)據(jù)進(jìn)行標(biāo)簽索引轉(zhuǎn)換。StringIndexer標(biāo)簽索引轉(zhuǎn)換器VectorAssembler向量裝配轉(zhuǎn)換器是將多個特征組合形成一個特征向量,特別適用于訓(xùn)練邏輯回歸和決策樹等算法模型。VectorAssembler接受的輸入列類型包括所有數(shù)值類型、布爾類型和向量類型。在每一行中,輸入列的值將按照指定的順序連接到一個向量中。VectorAssembler向量裝配轉(zhuǎn)換器OneHotEncoder獨(dú)熱編碼轉(zhuǎn)換器是將一列分類特征映射成一系列的二元連續(xù)特征。原有的分類特征有幾種可能取值,則會被映射成幾個二元連續(xù)特征,每一個取值代表一種特征。若該數(shù)據(jù)集中出現(xiàn)該特征,則取1,否則取0。如果該特征包含的內(nèi)容為0,1,2,3,總共4個類別,那么編碼后采用長度3(默認(rèn)情況下最后一個分類使用全0表示,因此長度為3)的稀疏向量表示。OneHotEncoder獨(dú)熱編碼轉(zhuǎn)換器特征量轉(zhuǎn)換后特征量0(3,[0],[1.0])

(1,0,0)1(3,[1],[1.0])

(0,1,0)1(3,[1],[1.0])

(0,1,0)2(3,[2],[1.0])

(0,0,1)3(3,[],[])

(0,0,0)PolynomialExpansion多項(xiàng)式展開轉(zhuǎn)換器是一個將特征展開到多項(xiàng)式空間,由原始維度的n次組合來表示如特征向量(X,Y)展開到2項(xiàng)式空間為(X,X2,Y,XY,Y2)。多項(xiàng)式展開常用于為數(shù)據(jù)集構(gòu)造新特征。使用多項(xiàng)式展開轉(zhuǎn)換器將向量(2,3)展開到2項(xiàng)式空間。(2,3)(2,22,3,2×3,32)(2,4,3,6,9)PolynomialExpansion多項(xiàng)式展開轉(zhuǎn)換器本小節(jié)主要介紹MLlib庫中的轉(zhuǎn)換器對數(shù)據(jù)的處理和轉(zhuǎn)換:數(shù)據(jù)加載:

加載Hive數(shù)據(jù)表、數(shù)據(jù)庫、CSV、TXT源中的數(shù)據(jù)數(shù)據(jù)集劃分:訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)數(shù)據(jù)降維:卡方驗(yàn)證篩選和主成分分析篩選數(shù)據(jù)標(biāo)準(zhǔn)化:最大最小標(biāo)準(zhǔn)化、最大絕對值標(biāo)準(zhǔn)化、正態(tài)分布標(biāo)準(zhǔn)化和基于范數(shù)的標(biāo)準(zhǔn)化數(shù)據(jù)類型轉(zhuǎn)換:標(biāo)簽索引轉(zhuǎn)換,向量裝配小結(jié)使用pyspark.ml模塊的評估器和模型評價目錄使用pyspark構(gòu)建并評估分類模型1使用pyspark構(gòu)建并評估回歸模型2使用pyspark構(gòu)建并評估聚類模型3使用pyspark構(gòu)建并評估智能推薦模型4分類模型是通過在已有歷史數(shù)據(jù)(帶標(biāo)簽)的基礎(chǔ)上進(jìn)行學(xué)習(xí)和訓(xùn)練,構(gòu)造出一個分類模型(即通常所說的分類器(Classifier)),從而可以運(yùn)用函數(shù)或模型對未知數(shù)據(jù)進(jìn)行分類。構(gòu)造分類模型一般需要如下幾個步驟。選定樣本(包含正樣本和負(fù)樣本),將所有樣本分成訓(xùn)練樣本和測試樣本兩部分。使用訓(xùn)練樣本來構(gòu)造分類模型。在測試樣本上執(zhí)行分類模型,生成預(yù)測結(jié)果。分類模型的評估指標(biāo),如準(zhǔn)確率、均方誤差等,評估分類模型的性能。分類模型分類問題與分類方法關(guān)系分類模型分類問題支持的分類問題的模型二分類邏輯回歸,決策樹,隨機(jī)森林,樸素貝葉斯,支持向量機(jī)多分類邏輯回歸,決策樹,隨機(jī)森林,樸素貝葉斯,支持向量機(jī)回歸分類邏輯回歸,決策樹,隨機(jī)森林,樸素貝葉斯使用隨機(jī)森林模型在HR人力資源數(shù)據(jù)集上訓(xùn)練得到分類模型,然后進(jìn)行預(yù)測并評估該分類模型的性能。數(shù)據(jù)為候選人參加公司培訓(xùn)后尋找新工作記錄,含1個分類標(biāo)簽,13個屬性,共19158條記錄(有缺失數(shù)據(jù))。隨機(jī)森林模型是一種集成學(xué)習(xí)模型,將若干“弱”模型整合為“強(qiáng)”模型,充分體現(xiàn)了“團(tuán)結(jié)就是力量”的團(tuán)隊(duì)精神,采用少數(shù)服從多數(shù)的原理對多個學(xué)習(xí)模型結(jié)果進(jìn)行投票,獲得更加準(zhǔn)確最終預(yù)測結(jié)果。HR人力資源數(shù)據(jù)集HR人力資源數(shù)據(jù)集HR人力資源數(shù)據(jù)集字段名稱說明enrollee_id候選人的唯一IDcity城市代碼city_development_index城市發(fā)展指數(shù)(按比例)gender候選人性別relevent_experience候選人的相關(guān)經(jīng)驗(yàn)enrolled_university已注冊的大學(xué)課程類education_level候選人的教育水平major_discipline候選人的教育專業(yè)experience多年候選總經(jīng)驗(yàn)company_size當(dāng)前雇主公司中的雇員人數(shù)company_type當(dāng)前雇主公司的類型lastnewjob上一份工作與當(dāng)前工作之間的年差training_hours培訓(xùn)時間target0表示培訓(xùn)后不去找工作;1表示培訓(xùn)后去找工作從文件讀取數(shù)據(jù)驗(yàn)證數(shù)據(jù)集的規(guī)模及數(shù)據(jù)類型獲取數(shù)據(jù)集記錄數(shù)。獲取數(shù)據(jù)集字段數(shù)。查看數(shù)據(jù)集字段的數(shù)據(jù)類型。檢查與處理缺失數(shù)據(jù)檢查數(shù)據(jù)集中是否存在缺失值。缺失值處理(drop方法)。HR人力資源數(shù)據(jù)分析-獲取數(shù)據(jù)數(shù)據(jù)特征enrollee_id、city_development_index、training_hours特征為數(shù)值類型。其他特征均為字符型。特征轉(zhuǎn)換字符型型轉(zhuǎn)換為數(shù)字型。特征裝配將所有特征組合成特征向量。數(shù)據(jù)集劃分按照8:2的比例劃分訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。HR人力資源數(shù)據(jù)分析-轉(zhuǎn)換和處理數(shù)據(jù)隨機(jī)森林是一種集成學(xué)習(xí)方法,采用自助抽樣集成。決策樹作為基礎(chǔ)模型,使用bootstrap(自助法)將訓(xùn)練集分成m個新的訓(xùn)練集。在訓(xùn)練集的特征中隨機(jī)抽取一部分特征,構(gòu)造一顆決策樹,需要構(gòu)建多個決策樹。將m個模型的結(jié)果進(jìn)行整合,整合方式:分類問題用多數(shù)投票法(majorityvoting),回歸用均值。在MLlib庫中可以使用pyspark.ml.classification包中RandomForestClassifier類構(gòu)建隨機(jī)森林模型。featureCol:特征向量,由VectorAssembler組合得到的向量。labelCol:用于描述分類標(biāo)簽列。impurity='gini':對信息增益進(jìn)行度量的方法,有entropy(信息熵)和gini(基尼系數(shù))。maxDepth:樹的最大深度。numTrees:構(gòu)建決策樹的個數(shù)。HR人力資源數(shù)據(jù)分析-訓(xùn)練分類模型在pyspark.ml.evaluation模塊中定義了各種函數(shù)用于模型的評估。召回率(R=TP/(TP+FN))準(zhǔn)確率(ACC=(TP+TN)/ALL)精準(zhǔn)率(P=TP/(TP+FP))F值(F=(a2+1)P*R/a2(P+R))F1:(a=1,F1=2*P*R/(P+R))對人力資源數(shù)據(jù)集采用多分類評價方法MulticlassClassificationEvaluator對進(jìn)行模型進(jìn)行評價。評價指標(biāo)為準(zhǔn)確率(accuracy)結(jié)果:0.739412HR人力資源數(shù)據(jù)分析-評價分類模型真實(shí)情況預(yù)測情況正例反例正例TP(真正例)FN(假反例)反例FP(假正例)TN(真反例)目錄使用pyspark構(gòu)建并評估分類模型1使用pyspark構(gòu)建并評估回歸模型2使用pyspark構(gòu)建并評估聚類模型3使用pyspark構(gòu)建并評估智能推薦模型4回歸模型研究的是因變量(目標(biāo))和自變量(預(yù)測器)之間的關(guān)系,尋找變量之間的因果關(guān)系?;貧w模型與分類模型一樣,需要在已有數(shù)據(jù)的基礎(chǔ)上進(jìn)行學(xué)習(xí)和訓(xùn)練,構(gòu)造出一個回歸模型。pyspark.ml模塊模塊中提供的6種回歸模型回歸模型回歸模型模型說明線性回歸線性回歸使用最佳擬合直線(回歸線)在因變量(Y)和一個或多個自變量(X)之間建立一種關(guān)系邏輯回歸邏輯回歸用來計(jì)算事件成功(Success)或失?。‵ailure)的概率多項(xiàng)式回歸在因變量(Y)和一個或多個自變量(X)之間建立一種關(guān)系中,如果自變量的指數(shù)大于1,該回歸稱之為多項(xiàng)式回歸(多項(xiàng)式回歸的最佳擬合線是曲線)嶺回歸以損失部分信息、降低精度為代價獲得回歸系數(shù)的回歸方法L2正則化套索回歸與嶺回歸類似,其懲罰函數(shù)回歸系數(shù)的絕對值(L1正則化)彈性網(wǎng)絡(luò)彈性回歸是嶺回歸和套索回歸的混合技術(shù),它同時使用L2和L1正則化使用邏輯回歸模型構(gòu)建預(yù)測模型,對競賽網(wǎng)站用戶數(shù)據(jù)類別進(jìn)行預(yù)測。數(shù)據(jù)集記錄了用戶對網(wǎng)站中各個標(biāo)簽的訪問次數(shù)。1個用戶ID1個用戶分類標(biāo)簽30個被訪問標(biāo)簽共76833條數(shù)據(jù)記錄某競賽網(wǎng)站用戶數(shù)據(jù)集字段名稱說明id用戶idstatus用戶類別,0或130個被訪問標(biāo)簽字段競賽,泰迪杯,學(xué)習(xí),書籍,案例,優(yōu)秀作品,項(xiàng)目,python,競賽通知,項(xiàng)目懸賞,R,數(shù)據(jù)挖掘,新聞,網(wǎng)絡(luò)爬蟲、數(shù)據(jù)預(yù)處理,干貨,培訓(xùn),數(shù)據(jù)采集、大數(shù)據(jù)挖掘,數(shù)據(jù)服務(wù),招聘,Matlab,工具,教師,賽題征集,英雄榜,招投標(biāo),競賽相關(guān)單位,數(shù)睿思,教練員培訓(xùn),旅游業(yè),農(nóng)業(yè)從文件讀取數(shù)據(jù)。數(shù)據(jù)預(yù)處理,增加特征sumFeature。某競賽網(wǎng)站用戶數(shù)據(jù)分析-數(shù)據(jù)預(yù)處理特征裝配將所有特征組合成特征向量。數(shù)據(jù)集劃分按照8:2的比例劃分訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。某競賽網(wǎng)站用戶數(shù)據(jù)分析-特征處理邏輯回歸模型(LogisticRegression)是一種用于解決二分類(0or1)問題的機(jī)器學(xué)習(xí)方法。在線性回歸基礎(chǔ)上,增加邏輯函數(shù),將預(yù)測值限定在[0,1]間,用于估計(jì)某種事物的可能性。邏輯回歸的結(jié)果并非數(shù)學(xué)定義中的概率值,不可以直接當(dāng)作概率值來用。決策樹作為基礎(chǔ)模型,使用bootstrap(自助法)將訓(xùn)練集分成m個新的訓(xùn)練集。使用LogisticRegression類構(gòu)建邏輯回歸模型。構(gòu)建邏輯回歸模型需要的參數(shù)說明如下。featureCol:VectorAssembler組合得到特征向量。labelCol:用于描述分類標(biāo)簽列。maxIter:最大迭代次數(shù)。某競賽網(wǎng)站用戶數(shù)據(jù)分析-訓(xùn)練分類模型使用訓(xùn)練得到的邏輯回歸模型對測試數(shù)據(jù)進(jìn)行預(yù)測,評價指標(biāo)準(zhǔn)確率,ROC曲線(接受者操作曲線)。TPR=TP/(TP+FN),即召回率。FPR=FP/(FP+TN)描述的是所有負(fù)例中預(yù)測錯誤的比例。ROC曲線距離左上角越近,證明分類器效果越好。AUC值為ROC曲線所覆蓋的區(qū)域面積,AUC越大,分類器分類效果越好。模型評價結(jié)果accuracy值為98.9%AUC值為99.8%模型性能較好某競賽網(wǎng)站用戶數(shù)據(jù)分析-評價回歸模型目錄使用pyspark構(gòu)建并評估分類模型1使用pyspark構(gòu)建并評估回歸模型2使用pyspark構(gòu)建并評估聚類模型3使用pyspark構(gòu)建并評估智能推薦模型4聚類分析是將一組數(shù)據(jù)對象的集合,按照對象相似原則,將數(shù)據(jù)對象劃分到不同的簇中,在所形成的簇中,對象與同一個簇中的對象彼此相似,與其他簇中的對象相異。聚類是“近朱者赤,近墨者黑”這一思想的應(yīng)用,青年人應(yīng)和“正能量”的人在一起,不斷向其學(xué)習(xí),樂觀向上,不斷進(jìn)步,讓自己成為一個充滿“正能量”的人。聚類模型聚類分析屬于無監(jiān)督學(xué)習(xí),無須先驗(yàn)知識,將會自動尋找數(shù)據(jù)里面的結(jié)構(gòu)特征。聚類模型聚類模型模型說明劃分方法給定一個包含N個對象的合集,劃分方法構(gòu)建數(shù)據(jù)的K個分區(qū),其中每個分區(qū)代表一個簇。代表算法有:K-means聚類算法層次方法給定一個包含N個對象的合集,從下而上地將對象合并聚集,得到K個簇(凝聚層次聚類);或,從上而下地將N個對象進(jìn)行分割,劃分得到K個簇(分裂層次聚類)基于密度的方法根據(jù)數(shù)據(jù)對象在數(shù)據(jù)空間中的稠密程度劃分對象集合的方法。代表算法有:DBSCAN算法基于網(wǎng)格的方法將數(shù)據(jù)空間劃分成為有限個單元(cell)的網(wǎng)格結(jié)構(gòu),以單個的單元為對象進(jìn)行聚類。代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法使用K-Mean模型構(gòu)建聚類模型,對鳶尾花數(shù)據(jù)進(jìn)行聚類。數(shù)據(jù)集描述記錄了3類鳶尾花數(shù)據(jù),共150條數(shù)據(jù),每類鳶尾花50條數(shù)據(jù)。鳶尾花分類:Setosa,Versicolor,Verginica。記錄信息:1個ID字段,4個特征字段,1個分類標(biāo)簽字段。鳶尾花數(shù)據(jù)字段名稱說明Species_No分類編號,取值:1,2,3Petal_width花瓣寬度Petal_length花瓣長度Sepal_width萼片寬度Sepal_length萼片長度Species_name分類名稱:setosa,versicolour,virginica無需預(yù)處理沒有缺失數(shù)據(jù),特征數(shù)據(jù)規(guī)范,數(shù)據(jù)類型識別。3個類別,每個類別50條記錄。鳶尾花數(shù)據(jù)分析-加載數(shù)據(jù)鳶尾花數(shù)據(jù)集包含4個特征,需要將4個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論