機器學習算法與實踐郭羽含課后參考答案_第1頁
機器學習算法與實踐郭羽含課后參考答案_第2頁
機器學習算法與實踐郭羽含課后參考答案_第3頁
機器學習算法與實踐郭羽含課后參考答案_第4頁
機器學習算法與實踐郭羽含課后參考答案_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章1.填空題1)交叉,數(shù)學,統(tǒng)計學,計算機科學,信息論,優(yōu)化理論,自動,通過經驗2)監(jiān)督學習、無監(jiān)督學習、半監(jiān)督學習、強化學習;分類、回歸、聚類、降維3)分類,回歸,聚類,數(shù)據(jù)預處理4)簡潔易讀、高層次、解釋性、可移植、豐富的庫、面向對象、動態(tài)類型2.簡答題1)簡述機器學習的應用領域。機器學習廣泛應用于多個領域,包括:金融:風險評估、欺詐檢測、算法交易。醫(yī)療:疾病預測、醫(yī)學影像分析、個性化治療。廣告:用戶行為分析、推薦系統(tǒng)、精準營銷。自然語言處理:文本分類、情感分析、機器翻譯。計算機視覺:人臉識別、物體檢測、圖像分類。自動駕駛:環(huán)境感知、路徑規(guī)劃、決策支持。2)機器學習分類有哪些?機器學習的分類主要有:監(jiān)督學習:利用帶標簽的數(shù)據(jù)進行訓練,常見任務包括分類和回歸。無監(jiān)督學習:使用無標簽數(shù)據(jù),主要用于聚類和降維。半監(jiān)督學習:結合少量標記數(shù)據(jù)和大量無標記數(shù)據(jù)進行訓練。強化學習:通過與環(huán)境的交互學習,最大化累積獎勵。3)簡述機器學習的發(fā)展歷史。機器學習的發(fā)展歷程可分為幾個階段:1950s-1960s:早期探索,提出了感知機模型。1980s:引入神經網(wǎng)絡,發(fā)展出反向傳播算法。1990s:統(tǒng)計學習理論興起,支持向量機(SVM)等方法被提出。2000s:大數(shù)據(jù)和計算能力提升,深度學習開始得到重視。2010s至今:深度學習取得突破,廣泛應用于各行各業(yè)。4)簡述機器學習能在互聯(lián)網(wǎng)搜索的哪些環(huán)節(jié)起作用?在互聯(lián)網(wǎng)搜索中,機器學習可以在以下環(huán)節(jié)起作用:搜索結果排序:根據(jù)用戶反饋和行為優(yōu)化搜索結果的展示順序。推薦系統(tǒng):根據(jù)用戶歷史搜索和偏好推薦相關內容。自然語言處理:理解用戶查詢意圖,提高搜索準確性。圖片和視頻搜索:通過圖像識別技術改善多媒體內容的搜索效果。5)什么是監(jiān)督學習、無監(jiān)督學習和半監(jiān)督學習?各自有哪些特點以及它們的區(qū)別?監(jiān)督學習:使用帶標簽的數(shù)據(jù)進行訓練。特點是模型通過已知輸入和輸出學習映射關系,適用于分類和回歸任務。無監(jiān)督學習:使用無標簽的數(shù)據(jù)進行訓練。特點是發(fā)現(xiàn)數(shù)據(jù)的潛在結構,如聚類和降維。半監(jiān)督學習:結合少量標記和大量無標記數(shù)據(jù)進行訓練。特點是提升模型性能,特別是在標簽獲取困難的情況下。區(qū)別:監(jiān)督學習依賴標簽,無監(jiān)督學習不依賴標簽,半監(jiān)督學習則是二者的結合。6)機器學習與人工智能有什么關系和區(qū)別?關系:機器學習是人工智能(AI)的一個子集,通過數(shù)據(jù)驅動的方法使機器具有學習能力,從而實現(xiàn)智能化。區(qū)別:人工智能是一個更廣泛的概念,涵蓋所有使計算機具有人類智能特征的技術,包括規(guī)則系統(tǒng)、邏輯推理等,而機器學習專注于通過數(shù)據(jù)和算法讓系統(tǒng)自我改進。7)有哪些常見的Python庫?常見的Python庫包括:NumPy:用于科學計算和數(shù)組操作。Pandas:數(shù)據(jù)處理和分析。Matplotlib:數(shù)據(jù)可視化。Scikit-learn:機器學習算法和工具。TensorFlow和Keras:深度學習框架。PyTorch:另一種流行的深度學習框架。Statsmodels:統(tǒng)計建模和計量經濟學。第二章1.填空題訓練集、驗證集、測試集、網(wǎng)格搜索、隨機搜索、貝葉斯優(yōu)化留出法、交叉驗證、自助法2.簡答題1)過擬合和欠擬合的含義、產生原因及解決方法過擬合:含義:模型在訓練集上表現(xiàn)很好,但在測試集或新數(shù)據(jù)上表現(xiàn)不佳,說明模型學習到了訓練數(shù)據(jù)中的噪聲和細節(jié),而不是數(shù)據(jù)的普遍規(guī)律。產生原因:模型復雜度過高(例如,使用了太多的參數(shù)或層次)、訓練數(shù)據(jù)量不足、缺乏正則化等。解決方法:減少模型復雜度(例如,使用更簡單的模型)、增加訓練數(shù)據(jù)、使用正則化技術(如L1、L2正則化)、使用交叉驗證等。欠擬合:含義:模型在訓練集和測試集上都表現(xiàn)不佳,無法捕捉到數(shù)據(jù)中的基本模式。產生原因:模型復雜度過低(例如,使用了線性模型去擬合高度非線性的數(shù)據(jù))、特征選擇不當?shù)?。解決方法:增加模型復雜度(例如,使用更復雜的模型)、進行特征工程、增加更多相關的特征等。2)數(shù)據(jù)集劃分的估算這是一個排列組合問題,在保持樣本均衡的前提下,正例和反例在訓練和測試集中的數(shù)量相同,即在訓練集中應該包括1750個正例和1750個反例,剩余的作測試集,那么劃分方式應該有x25003)錯誤率與ROC曲線的聯(lián)系錯誤率是指分類模型預測錯誤的樣本占總樣本的比例。錯誤率可以簡潔地表示模型的整體性能,但它并沒有考慮不同類別之間的分類能力差異。ROC曲線(接收者操作特征曲線)則通過不同的閾值描繪出真正率(TPR)與假正率(FPR)的關系。ROC曲線提供了一個更全面的視角,能夠展示模型在不同決策閾值下的性能。聯(lián)系:ROC曲線下的面積(AUC)可以作為模型性能的一個重要指標,通常比單一的錯誤率更能反映模型的分類能力。通過分析ROC曲線,可以發(fā)現(xiàn)模型在不同閾值下的表現(xiàn),從而幫助選擇最佳的閾值以優(yōu)化錯誤率。4)比較檢驗及常用方法比較檢驗是統(tǒng)計學中用于比較兩個或多個樣本之間差異的方法,以判斷這些差異是否具有統(tǒng)計學意義。常用的比較檢驗方法有:i)t檢驗:用于比較兩組樣本均值的差異,適用于樣本量較小且數(shù)據(jù)近似服從正態(tài)分布的情況。適用情況:當我們需要比較兩個獨立樣本或配對樣本的均值時,例如比較兩種藥物的效果。ii)方差分析(ANOVA):用于比較多于兩組樣本均值的差異,適用于樣本量較小且數(shù)據(jù)近似服從正態(tài)分布且方差齊性的情況。適用情況:當我們需要比較三組及以上樣本的均值時,例如比較不同教學方法對學生成績的影響。這兩種方法各有優(yōu)缺點,選擇時需根據(jù)數(shù)據(jù)特性和研究問題進行適當評估。第三章1.選擇題1)K-近鄰算法是一種(A)。A.監(jiān)督學習算法 B.無監(jiān)督學習算法C.半監(jiān)督學習算法 D.共強化學習算法2)K-近鄰的核心思想是(C)。A.使用概率模型進行分類 B.尋找最優(yōu)超平面進行分類C.基于距離度量進行分類 D.利用決策樹進行分類3)在K-近鄰算法中,k的選擇會對結果產生什么影響(B)。A.影響算法的收斂速度 B.影響算法的泛化能力C.影響算法的模型復雜度 D.影響算法的計算效率4)在K-近鄰算法中,如何選擇一個合適的k值(C)。A.根據(jù)訓練數(shù)據(jù)集的大小選擇 B.根據(jù)特征空間的維度選擇C.根據(jù)應用場景和實驗結果選擇 D.根據(jù)算法的收斂性選擇5)在K-近鄰算法中,一般如何度量兩個樣本點之間的距離(B)。A.曼哈頓距離 B.歐氏距離C.余弦相似度 D.馬氏距離6)在K-近鄰算法中,如何解決樣本類別不平衡的問題(AD)。A.以重采樣來平衡各個類別的樣本數(shù)量 B.調整距離度量中的權重來平衡類別C.使用集成學習方法來平衡樣本類別 D.以過/欠采樣來平衡各類別樣本數(shù)量7)在K-近鄰算法的分類任務中,決策邊界是如何確定的(B)。A.根據(jù)訓練樣本點的密度分布確定 B.根據(jù)歐氏距離和k值確定C.根據(jù)類別標簽的分布確定 D.根據(jù)特征空間的劃分確定8)K-近鄰算法可以用于以下哪些任務(AB)。A.分類任務 B.回歸任務C.聚類任務 D.特征選擇任務2.問答題1)K-近鄰算法的基本流程是什么?1)計算已經正確分類的數(shù)據(jù)集中每個樣本與待分類樣本之間的距離;2)按照距離遞增次序對數(shù)據(jù)集中的樣本排序;3)選取與待分類樣本距離最小的K個樣本;4)確定該K個樣本所在類別的出現(xiàn)頻率;5)返回該K個樣本出現(xiàn)頻率最高的類別作為待分類樣本的預測類別。2)K-近鄰算法的優(yōu)缺點是什么?優(yōu)點:簡單易懂:算法直觀,易于實現(xiàn),適合初學者理解。無需訓練:K-近鄰是懶惰學習算法,不需要顯式的訓練過程,適合實時更新的數(shù)據(jù)。適用性廣:可以用于分類和回歸任務,適用范圍廣泛。靈活性高:可使用不同的距離度量(如歐氏距離、曼哈頓距離等),根據(jù)數(shù)據(jù)特征進行調整。缺點:計算開銷大:需要計算每個測試樣本與所有訓練樣本的距離,尤其在數(shù)據(jù)量大時,計算速度較慢。存儲需求高:需要存儲整個訓練集,對內存要求較高。對噪聲敏感:噪聲數(shù)據(jù)會影響分類結果,尤其是k值小的時候。維度詛咒:在高維空間中,數(shù)據(jù)點之間的距離變得不可靠,導致分類性能下降。選擇k值困難:k值的選擇對算法性能有很大影響,不同的k值可能導致截然不同的結果。3.算法題1)給定一組已分類的訓練集[[2.0,3.0],[4.0,2.0],[1.0,2.5],[3.5,2.5],[2.5,1.5],[3.0,3.5]]及其類別標簽[0,1,0,1,0,1],請使用k近鄰算法判斷待分類樣本點[2.8,2.7]的類別標簽。1.利用歐氏距離計算待分類樣本點與訓練集中每個點的距離:a.與([2.0,3.0]):d1=0.854b.與([4.0,2.0]):d2=1.389c.與([1.0,2.5]):d3=1.811d.與([3.5,2.5]):d4=0.729e.與([2.5,1.5]):d5=1.237f.與([3.0,3.5]):d6=0.8242.整理距離和標簽訓練樣本距離類別[2.0,3.0]0.8540[4.0,2.0]1.391[1.0,2.5]1.810[3.5,2.5]0.7291[2.5,1.5]1.240[3.0,3.5]0.82413.假設k=34.按照距離排序,選擇最近的3個:a.[3.5,2.5]-距離(0.729)-類別(1)b.[3.0,3.5]-距離(0.824)-類別(1)c.[2.0,3.0]-距離(0.854)-類別(0)5.投票:·類別(1):2個·類別(0):1個6.根據(jù)投票結果,類別(1)獲得了更多的支持,最終確定待分類樣本點[2.8,2.7]的類別標簽為1。2)為數(shù)據(jù)集{(1,2,2),(2,3,4),(3,2,4),(4,3,6),(6,4,7),(3,5,2)}構建k-d樹。1.第一層(切分維度:x):·排序:{(1,2,2),(2,3,4),(3,2,4),(4,3,6),(6,4,7),(3,5,2)}·中位數(shù)為{(3,2,4)}(索引為2)?!?chuàng)建根節(jié)點:{(3,2,4)}。左子樹:{(1,2,2),(2,3,4)}右子樹:{(4,3,6),(6,4,7),(3,5,2)}2.第二層(左子樹,切分維度:y):·左子樹排序:((1,2,2),(2,3,4))·中位數(shù)為((2,3,4))(索引為1)。·創(chuàng)建左子樹節(jié)點:((2,3,4))。左子樹:((1,2,2))右子樹:空3.第三層(左子樹的左子樹,切分維度:x):·左子樹的左子樹排序:((1,2,2))·中位數(shù)為((1,2,2))?!?chuàng)建左子樹的左子樹節(jié)點:((1,2,2))。左子樹:空右子樹:空4.第二層(右子樹,切分維度:y):·右子樹排序:((4,3,6),(6,4,7),(3,5,2))·中位數(shù)為((6,4,7))(索引為1)?!?chuàng)建右子樹節(jié)點:((6,4,7))。左子樹:((4,3,6))右子樹:((3,5,2))5.第三層(右子樹的左子樹,切分維度:x):·左子樹的左子樹排序:((4,3,6))·中位數(shù)為((4,3,6))。·創(chuàng)建右子樹的左子樹節(jié)點:((4,3,6))。左子樹:空右子樹:空6.第三層(右子樹的右子樹,切分維度:x):·右子樹的右子樹排序:((3,5,2))·中位數(shù)為((3,5,2))?!?chuàng)建右子樹的右子樹節(jié)點:((3,5,2))。左子樹:空右子樹:空因此,k-d樹結構為:(3,2,4)/\(2,3,4)(6,4,7)//\(1,2,2)(4,3,6)(3,5,2)第四章1.選擇題1)下列關于樸素貝葉斯的特點說法不正確的是(B)A.樸素貝葉斯處理過程簡單,分類速度快B.樸素貝葉斯模型無需假設特征條件獨立C.樸素貝葉斯模型發(fā)源于古典數(shù)學理論,數(shù)學基礎堅實D.樸素貝葉斯對小規(guī)模數(shù)據(jù)表現(xiàn)較好2)關于樸素貝葉斯,下列說法錯誤的是(D)A.樸素的意義在于它的一個天真的假設:所有特征之間是相互獨立的B.它是一個分類算法C.它實際上是將多條件下的條件概率轉換成了單一條件下的條件概率,簡化了計算D.樸素貝葉斯不需要使用聯(lián)合概率3)EM算法的每次迭代由(B)步組成A.1 B.2 C.3 D.44)有向無環(huán)圖,A、B間出現(xiàn)(A)有向回路。A.0 B.1 C.2 D.32.問答題1)簡述樸素貝葉斯算法有幾種?高斯樸素貝葉斯、多項式樸素貝葉斯、伯努利樸素貝葉斯、拉普拉斯平滑樸素貝葉斯2)試比較樸素貝葉斯算法與半樸素貝葉斯算法樸素貝葉斯算法和半樸素貝葉斯算法都是基于貝葉斯定理的分類算法,但它們在特征獨立性假設和應用場景上有所不同。以下是兩者的比較:a.特征獨立性假設樸素貝葉斯算法:假設所有特征條件獨立。也就是說,給定類別,特征之間相互獨立。這一假設簡化了模型的計算,但在某些情況下可能不符合實際情況。半樸素貝葉斯算法:不完全依賴于特征獨立性假設。它允許特征之間存在一定的依賴關系,因此能更好地捕捉特征之間的相關性,提高分類性能。b.模型復雜度樸素貝葉斯算法:由于假設特征獨立,模型相對簡單,易于實現(xiàn)和解釋,計算效率高。半樸素貝葉斯算法:由于考慮了特征之間的依賴關系,模型相對復雜,計算量可能增加。c.應用場景樸素貝葉斯算法:通常適用于特征之間相對獨立的場景,如文本分類(垃圾郵件檢測、情感分析等)。半樸素貝葉斯算法:更適合特征之間存在一定相關性的情況,如在某些生物信息學問題或復雜的模式識別任務中。d.性能樸素貝葉斯算法:在特征獨立的前提下,往往表現(xiàn)較好,但在特征存在強相關性時性能可能下降。半樸素貝葉斯算法:在處理特征依賴性時通常能獲得更好的分類效果,尤其是在數(shù)據(jù)特征之間存在較強相關性的情況下。3.綜合應用題1)用樸素貝葉斯算法實現(xiàn)天氣情況與是否打網(wǎng)球關系。表5-1天氣與是否打網(wǎng)球情況天氣氣溫濕度是否打網(wǎng)球晴熱高否晴熱高否多云熱高是雨溫高是雨涼正常是雨涼正常否多云涼正常是晴溫高否晴涼正常是雨溫正常是晴溫正常是多云溫高是多云熱正常是雨溫高否importpandasaspd

fromsklearn.preprocessingimportLabelEncoder

fromsklearn.naive_bayesimportGaussianNB

fromsklearn.model_selectionimporttrain_test_split

fromsklearnimportmetrics

#創(chuàng)建數(shù)據(jù)集

data={

'天氣':['晴','晴','多云','雨','雨','雨','多云','晴','晴','雨','晴','多云','多云','雨'],

'氣溫':['熱','熱','熱','溫','涼','涼','涼','溫','涼','溫','溫','溫','熱','溫'],

'濕度':['高','高','高','高','正常','正常','正常','高','正常','正常','正常','高','正常','高'],

'是否打網(wǎng)球':['否','否','是','是','是','否','是','否','是','是','是','是','是','否']

}

df=pd.DataFrame(data)

#編碼數(shù)據(jù)

le=LabelEncoder()

df['天氣']=le.fit_transform(df['天氣'])

df['氣溫']=le.fit_transform(df['氣溫'])

df['濕度']=le.fit_transform(df['濕度'])

df['是否打網(wǎng)球']=le.fit_transform(df['是否打網(wǎng)球'])

#特征和標簽

X=df[['天氣','氣溫','濕度']]

y=df['是否打網(wǎng)球']

#拆分數(shù)據(jù)集

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)

#訓練模型

model=GaussianNB()

model.fit(X_train,y_train)

#預測

y_pred=model.predict(X_test)

#評估

print("準確率:",metrics.accuracy_score(y_test,y_pred))

print("分類報告:\n",metrics.classification_report(y_test,y_pred))

#預測示例

sample=[[0,1,0]]#假設:天氣=晴(0),氣溫=溫(1),濕度=高(0)

prediction=model.predict(sample)

print("預測結果:","打網(wǎng)球"ifprediction[0]==1else"不打網(wǎng)球")第五章1.選擇題1)下列說法中不正確的是(D)A.線性回歸應用場景有房價預測B.線性回歸應用場景有貸款額度預測C.線性回歸應用場景有銷售額度預測D.線性回歸只有線性關系2)線性回歸的核心是(C)A.構建模型 B.距離度量 C.參數(shù)學習 D.特征提取3)下列屬于線性回歸的分類的有(AB)A.單變量線性關系B.多變量線性關系C.非線性關系D.以上都是4)邏輯回歸模型可以解決線性不可分問題嗎?(C)A.可以B.不可以C.視數(shù)據(jù)具體情況而定D.以上說法都不對2.問答題1)簡述梯度下降法有幾種?批量梯度下降、隨機梯度下降、小批量梯度下降、動量梯度下降、自適應學習率方法2)試比較線性回歸與邏輯回歸的異同。線性回歸和邏輯回歸是兩種常用的回歸分析方法,它們在目標、模型形式和應用場景上有一些異同點。以下是它們的比較:相同點:基本原理:兩者都基于輸入特征與輸出變量之間的關系,試圖通過學習來擬合數(shù)據(jù)。使用梯度下降法:都可以使用梯度下降等優(yōu)化算法來最小化損失函數(shù)。特征處理:都可以使用相似的特征處理技術,如特征縮放、正則化等。不同點:目標變量:線性回歸:用于預測連續(xù)型目標變量(如房價、溫度)。邏輯回歸:用于分類問題,預測離散型目標變量(如二分類任務:是/否、0/1)。模型輸出:線性回歸:輸出為一個實數(shù)值,表示預測值。邏輯回歸:輸出為概率值(介于0和1之間),通常通過閾值(如0.5)進行類別判定。損失函數(shù):線性回歸:采用均方誤差(MSE)作為損失函數(shù)。邏輯回歸:采用對數(shù)損失(LogLoss)作為損失函數(shù)。模型假設:線性回歸:假設特征和目標變量之間存在線性關系。邏輯回歸:假設特征與目標之間的關系可以通過邏輯函數(shù)(如sigmoid函數(shù))來建模。適用場景:線性回歸:適用于回歸分析,常用于經濟學、工程等領域。邏輯回歸:廣泛應用于二分類問題,如醫(yī)學診斷、信用評分等。3.綜合應用題1)下列數(shù)據(jù)是水泥釋放的熱量與其成分的關系,求其線性關系。表5-1水泥釋放的熱量與其成分yX1X2X3X478.572666074.31291552104.3115682087.6113184795.9752633109.21155922102.737117672.5131224493.12541822115.9214742683.81402334113.32266912109.410688122)表5-2中的數(shù)據(jù)集給出了用戶的性別、年齡信息,以及用戶是否會購買某個產品。我們希望通過邏輯回歸模型來對用戶的購買決策進行預測。請構建邏輯回歸模型并使用該模型對以下用戶的決策進行預測:用戶1:年齡30歲,性別女用戶2:年齡50歲,性別男表5-2用戶信息及購買決策性別年齡購買決策25男是30女否35男否40女是45男否用戶1的購買決策預測為:是用戶2的購買決策預測為:否第六章1.選擇題1)支持向量機是一種常用的監(jiān)督學習算法,主要用于(A)和()任務。A.分類回歸B.分類聚類C.聚類降維D.降維回歸2)線性支持向量機的優(yōu)化模型是(B)間隔最大化。A.硬B.軟C.軟或硬D.軟和硬3)非線性支持向量機通過(A)可以轉化為線性支持向量機。A.核技巧B.對偶算法C.SMO方法D.拉格朗日乘子法4)支持向量機的對偶問題可以通過(C)求解。A.核技巧B.對偶算法C.SMO方法D.拉格朗日乘子法5)支持向量機回歸模型的參數(shù)由(B)決定。A.SMO算法B.支持向量C.整個訓練集D.測試集2.簡答題1)請簡述什么是支持向量機分類的“最大間隔”(MaximumMargin)劃分超平面,什么是支持向量,它具有什么特點。在支持向量機中,超平面是一個用于將數(shù)據(jù)點分成不同類別的決策邊界。最大間隔的劃分超平面是指離距兩個類別中邊界數(shù)據(jù)點(支持向量)距離最遠的超平面。支持向量是指位于分類邊界附近的那些訓練樣本點,它們直接影響決策邊界的位置和形狀。特點:重要性,支持向量是唯一影響決策邊界的點,去掉其他非支持向量的數(shù)據(jù)點不會改變分類結果。決定性,在訓練過程中,只有支持向量才會參與到最終模型的構建中,因此模型的復雜度與支持向量的數(shù)量密切相關。2)請簡述非線性支持向量機中的核函數(shù)有什么意義。在非線性支持向量機(SVM)中,核函數(shù)的主要意義在于將數(shù)據(jù)從輸入空間映射到更高維的特征空間,以便能夠找到一個線性可分的超平面。具體來說,核函數(shù)的意義包括:a)處理非線性關系,許多現(xiàn)實世界的數(shù)據(jù)是非線性可分的,直接在原始空間中難以找到合適的分隔超平面。b)核函數(shù)允許模型在高維空間中進行操作,從而能夠有效地處理這些非線性關系。c)計算效率,避免高維計算,使用核函數(shù)可以不顯式地計算高維特征空間中的數(shù)據(jù)點,而是通過核函數(shù)直接計算它們之間的內積。這種方法稱為“核技巧”,顯著減少了計算復雜度,避免了大規(guī)模數(shù)據(jù)處理時的高維特征計算。d)提高模型靈活性,多樣性,不同的核函數(shù)(如線性核、多項式核、徑向基函數(shù)核等)可以捕捉不同類型的數(shù)據(jù)分布和特征,使得模型可以根據(jù)具體問題的需求靈活調整。e)增強泛化能力,減少過擬合,通過在高維空間中尋找最優(yōu)分割,核函數(shù)有助于模型更好地分離不同類別的數(shù)據(jù)點,從而提高模型在新數(shù)據(jù)上的泛化能力。3)請簡述線性回歸與支持向量機回歸的聯(lián)系與區(qū)別。線性回歸和支持向量機回歸(SVR)都是用于回歸任務的機器學習算法,但它們在模型構建、目標和處理方式上有明顯的聯(lián)系與區(qū)別:聯(lián)系a)基本目標:兩者都旨在建立一個函數(shù)模型,以預測連續(xù)的輸出變量(目標值)。b)線性關系:在簡單情況下,線性回歸和SVR都可以使用線性模型來擬合數(shù)據(jù),即假設輸入特征與輸出之間存在線性關系。c)損失函數(shù):兩者都涉及到損失函數(shù)的最小化,線性回歸通常使用均方誤差(MSE),而SVR則使用不同的損失函數(shù)(如ε-不敏感損失)。區(qū)別a)模型形式:線性回歸:直接通過最小化均方誤差來擬合數(shù)據(jù),結果是一個確定性的線性模型。SVR:通過最大化間隔和引入ε不敏感區(qū)域來構建模型,允許一定范圍內的誤差不被懲罰,從而提供更大的靈活性。b)容忍度:線性回歸:對所有的訓練樣本都會計算誤差,沒有容忍度。SVR:定義了一個ε不敏感區(qū)域,只有當預測值超出該區(qū)域時,才會對誤差進行懲罰。這使得SVR能夠更好地處理噪聲數(shù)據(jù)。c)復雜度與參數(shù):線性回歸:模型參數(shù)較少,易于理解和解釋。SVR:通常需要選擇核函數(shù)和調整相應的參數(shù)(如C和ε),其模型復雜度可能更高。d)適用場景:線性回歸:適用于線性關系明顯且數(shù)據(jù)量相對較小的情況。SVR:更適合于復雜和非線性的數(shù)據(jù)集,尤其是在數(shù)據(jù)維度較高時表現(xiàn)優(yōu)越。3.編程題采用內置鳶尾花數(shù)據(jù),選取不同的特征,利用支持向量機實現(xiàn)分類。參考代碼如下#導入必要的庫importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearn.svmimportSVCfromsklearn.metricsimportclassification_report,confusion_matrix#1.加載數(shù)據(jù)集iris=datasets.load_iris()X=iris.data#特征y=iris.target#標簽#2.選擇特征(例如選擇前兩個特征:花萼長度和花萼寬度)X_selected=X[:,:2]#選擇前兩個特征#3.劃分訓練集和測試集X_train,X_test,y_train,y_test=train_test_split(X_selected,y,test_size=0.3,random_state=42)#4.訓練支持向量機模型svm_model=SVC(kernel='linear')#使用線性核svm_model.fit(X_train,y_train)#5.進行預測y_pred=svm_model.predict(X_test)#6.評估模型print("混淆矩陣:")print(confusion_matrix(y_test,y_pred))print("\n分類報告:")print(classification_report(y_test,y_pred))#可視化決策邊界plt.scatter(X_train[:,0],X_train[:,1],c=y_train,s=30,cmap='autumn',label='Traindata')plt.scatter(X_test[:,0],X_test[:,1],c=y_test,s=30,cmap='winter',marker='x',label='Testdata')#繪制決策邊界xlim=plt.xlim()ylim=plt.ylim()#創(chuàng)建網(wǎng)格并預測每個點的類別xx,yy=np.meshgrid(np.linspace(xlim[0],xlim[1],100),np.linspace(ylim[0],ylim[1],100))Z=svm_model.predict(np.c_[xx.ravel(),yy.ravel()])#使用predict方法Z=Z.reshape(xx.shape)#重新調整Z的形狀plt.contourf(xx,yy,Z,alpha=0.3,cmap='coolwarm')#用于填充背景plt.title("SVMDecisionBoundary")plt.xlabel("SepalLength")plt.ylabel("SepalWidth")plt.legend()plt.show()第七章1.問答題1)簡述ID3算法和C4.5算法的異同。ID3算法和C4.5算法是兩種用于構建決策樹的常見算法,它們在處理分類問題時有一些相似之處,但也存在顯著的差異。相同點:基本思想:兩者都是基于信息增益的思想,采用遞歸的方式構建決策樹,選擇最優(yōu)特征來進行數(shù)據(jù)集的劃分。目標:都旨在通過特征的選擇來最大化信息增益(ID3)或增益比(C4.5),從而提高模型的分類準確性。樹的結構:最終生成的結果都是一棵決策樹,可以用來進行分類。不同點:特征選擇標準:ID3:僅使用信息增益作為特征選擇的標準。信息增益可能偏向選擇取值較多的特征。C4.5:使用增益比來進行特征選擇,解決了ID3偏向取值多的特征的問題。增益比考慮了特征的熵,以更公平地評估特征的重要性。處理連續(xù)屬性:ID3:主要處理離散屬性,對于連續(xù)屬性通常需要離散化,方法不夠靈活。C4.5:能夠直接處理連續(xù)屬性,通過選定一個閾值將其轉換為離散屬性。缺失值處理:ID3:對于缺失值的處理能力較弱,通常會忽略含有缺失值的樣本。C4.5:更加健壯,能夠處理缺失值,通過對缺失值進行概率分配來減少數(shù)據(jù)損失。剪枝策略:ID3:不支持后剪枝,可能導致生成過于復雜的樹(過擬合)。C4.5:提供了后剪枝機制,可以通過驗證集來減少過擬合,提高模型的泛化能力。輸出:ID3:生成的決策樹通常較簡單,但容易受到數(shù)據(jù)噪聲的影響。C4.5:生成的樹結構更為復雜,且能提供更好的分類性能。2)簡述CART原理并說明其特點。CART原理:樹的構建:數(shù)據(jù)集被遞歸地劃分為兩部分,每次選擇一個特征及其最佳切分點,使得劃分后的每個子集在目標變量上更為純凈。對于分類問題,CART使用基尼指數(shù)(GiniIndex)作為劃分標準;對于回歸問題,則使用平方誤差作為標準。分裂過程:每次選擇一個特征及其分裂點,通過計算各個可能的分裂點對目標變量的影響,選擇信息增益最大(或純度最?。┑姆至腰c進行劃分。劃分過程中生成的每個節(jié)點都繼續(xù)進行劃分,直到滿足停止條件(如葉節(jié)點樣本數(shù)小于某個閾值、達到最大深度等)。剪枝:為了防止過擬合,CART通常會進行后剪枝。通過交叉驗證等方法評估樹的性能,去除一些不必要的節(jié)點,從而簡化樹結構,提高模型的泛化能力。CART的特點:適用性廣:CART可以處理分類和回歸任務,適用性非常廣泛。二叉樹結構:CART生成的決策樹是二叉樹,每個節(jié)點最多有兩個子節(jié)點,簡化了樹的結構。靈活的特征處理:能夠處理連續(xù)和離散特征,并能夠直接使用原始數(shù)據(jù),無需預處理。特征重要性:可以通過計算每個特征在樹中的使用頻率和影響力,評估特征的重要性,為特征選擇提供依據(jù)。易于解釋:決策樹的可視化使得模型易于理解和解釋,用戶可以很容易看出決策過程。對噪聲和異常值的敏感性:雖然CART具有強大的建模能力,但它對數(shù)據(jù)中的噪聲和異常值較為敏感,可能導致過擬合。2.編程題1)編寫程序,用ID3算法分類一個電影是科幻片還是動作片,數(shù)據(jù)集實例如表7-2所示。某電影打斗鏡頭為49,科幻鏡頭為51,其電影類別是什么?表7-2電影數(shù)據(jù)集實例電影名稱打斗鏡頭科幻鏡頭電影類型11101科幻片2589科幻片31085動作片41158動作片importpandasaspd

fromsklearn.treeimportDecisionTreeClassifier

#創(chuàng)建電影數(shù)據(jù)集

data={

'打斗鏡頭':[1,5,108,115],

'科幻鏡頭':[101,89,5,8],

'電影類型':['科幻片','科幻片','動作片','動作片']

}

#轉換為DataFrame

df=pd.DataFrame(data)

#特征和標簽

X=df[['打斗鏡頭','科幻鏡頭']]

y=df['電影類型']

#創(chuàng)建決策樹分類器

clf=DecisionTreeClassifier(criterion='entropy')

clf.fit(X,y)

#輸入樣本數(shù)據(jù)

test_sample=[[49,51]]

#進行預測

predicted=clf.predict(test_sample)

#輸出結果

print(f"電影類型預測為:{predicted[0]}")2)編寫程序,用C4.5算法進行分類,數(shù)據(jù)集實例如表7-3所示。表7-3樣本數(shù)據(jù)集實例編號描述屬性類別屬性年齡收入是否為學生信譽購買計算機1≤30高否中否2≤30高否優(yōu)否331~40高否中是4>40中否中是5>40低是中是6>40低是優(yōu)否731~40低是優(yōu)是8≤30中否中否9≤30低是中是10>40中是中是11≤30中是優(yōu)是1231~40中否優(yōu)是1331~40高是中是14>40中否優(yōu)否importpandasaspd

fromsklearn.preprocessingimportLabelEncoder

fromsklearn.treeimportDecisionTreeClassifier

#創(chuàng)建數(shù)據(jù)集

data={

'年齡':['≤30','≤30','31~40','>40','>40','>40','31~40','≤30','≤30','>40','≤30','31~40','31~40','>40'],

'收入':['高','高','高','中','低','低','低','中','低','中','中','中','高','中'],

'是否為學生':['否','否','否','否','是','是','是','否','是','是','是','否','是','否'],

'信譽':['中','優(yōu)','中','中','中','優(yōu)','優(yōu)','中','中','中','優(yōu)','優(yōu)','中','優(yōu)'],

'購買計算機':['否','否','是','是','是','否','是','否','是','是','是','是','是','否']

}

#轉換為DataFrame

df=pd.DataFrame(data)

#標簽編碼

label_encoders={}

forcolumnindf.columns:

le=LabelEncoder()

df[column]=le.fit_transform(df[column])

label_encoders[column]=le

#特征與標簽

X=df.drop('購買計算機',axis=1)

y=df['購買計算機']

#創(chuàng)建C4.5決策樹分類器

clf=DecisionTreeClassifier(criterion='entropy')

clf.fit(X,y)

#輸入樣本數(shù)據(jù)進行預測

test_sample=[[1,0,1,0]]#示例輸入:年齡=≤30,收入=高,是否為學生=是,信譽=中

#進行預測

predicted=clf.predict(test_sample)

#輸出結果

result=label_encoders['購買計算機'].inverse_transform(predicted)

print(f"購買計算機預測結果:{result[0]}")3)編寫程序,用CART算法進行分類,圖書銷量數(shù)據(jù)集實例如表7-4所示。表7-4樣本數(shù)據(jù)集實例序號數(shù)量頁數(shù)是否促銷評價銷量1多100是B高2少50是A低3多50是B低4多120否B低5多40否A高6多140是A高7少130是B低8少50是A高9多160是B高10少50否B低11多30否B高12少170是B低13多60否A高14多100否A高importpandasaspd

fromsklearn.preprocessingimportLabelEncoder

fromsklearn.treeimportDecisionTreeClassifier

#創(chuàng)建數(shù)據(jù)集

data={

'數(shù)量':['多','少','多','多','多','多','少','少','多','少','多','少','多','多'],

'頁數(shù)':[100,50,50,120,40,140,130,50,160,50,30,170,60,100],

'是否促銷':['是','是','是','否','否','是','是','是','是','否','否','是','否','否'],

'評價':['B','A','B','B','A','A','B','A','B','B','B','B','A','A'],

'銷量':['高','低','低','低','高','高','低','高','高','低','高','低','高','高']

}

#轉換為DataFrame

df=pd.DataFrame(data)

#標簽編碼

label_encoders={}

forcolumnindf.columns:

le=LabelEncoder()

df[column]=le.fit_transform(df[column])

label_encoders[column]=le

#特征與標簽

X=df.drop('銷量',axis=1)

y=df['銷量']

#創(chuàng)建CART決策樹分類器

clf=DecisionTreeClassifier(criterion='gini')#使用Gini系數(shù)作為分裂標準

clf.fit(X,y)

#輸入樣本數(shù)據(jù)進行預測

test_sample=[[1,100,1,1]]#示例輸入:數(shù)量=少,頁數(shù)=100,是否促銷=是,評價=B

#進行預測

predicted=clf.predict(test_sample)

#輸出結果

result=label_encoders['銷量'].inverse_transform(predicted)

print(f"銷量預測結果:{result[0]}")第八章1.單項選擇題1)下面關于提升樹的說法哪個是正確的(B)。a.在提升樹中,每個弱學習器是相互獨立的。b.這是通過對弱學習器的結果進行綜合來提升能力的方法。A.aB.bC.a和bD.都不對2)下面關于隨機森林和梯度提升集成方法的說法哪個是正確的是(D)。a.這兩種方法都可以用來做分類。b.隨機森林用來做分類,梯度提升用來做回歸。c.隨機森林用來做回歸,梯度提升用來做分類。d.兩種方法都可以用來做回歸。A.a和cB.b和dC.c和dD.a和d3)假設我們在隨機森林算法中生成了幾百顆樹,然后對這些樹的結果進行綜合,下面關于隨機森林中每顆樹的說法正確的是(A)。a.每棵樹是通過數(shù)據(jù)集的子集和特征的子集構建的。b.每棵樹是通過所有的特征構建的。c.每棵樹是通過所有數(shù)據(jù)的子集構建的。d.每棵樹是通過所有的數(shù)據(jù)構建的。A.a和cB.a和dC.b和cD.b和d4)下面關于梯度提升中max_depth的超參數(shù)的說法正確的是(A)。a.對于相同的驗證準確率,越低越好。b.對于相同的驗證準確率,越高越好。c.max_depth增加可能會導致過擬合。d.max_depth增加可能會導致欠擬合。A.a和cB.a和dC.b和cD.b和d5)下面哪個算法不是集成學習算法的例子?(D)A.隨機森林B.AdaboostC.梯度提升D.決策樹6)關于梯度提升樹,下面說法正確的是(C)。a.在每一個步驟,使用一個新的回歸樹來補償已有模型的缺點。b.我們可以使用梯度下降的方法來最小化損失函數(shù)。A.aB.bC.a和bD.都不對7)關于隨機森林描述不正確的是(D)。A.隨機森林是一種集成學習算法。B.隨機森林的隨機性主要體現(xiàn)在訓練單決策樹時,對樣本和特征同時進行采樣。C.隨機森林算法可以高度并行化。D.隨機森林預測時,根據(jù)單決策樹分類誤差進行加權投票。2.問答題1)隨機森林算法的隨機性體現(xiàn)在哪里?a.樣本采樣(BootstrapSampling):在構建每棵決策樹時,隨機森林會從原始訓練數(shù)據(jù)集中有放回地隨機抽取樣本。這意味著每棵樹可能會訓練在不同的數(shù)據(jù)子集上,從而增加模型的多樣性。b.特征采樣(FeatureSubsampling):在構建每個節(jié)點時,隨機森林不會使用所有特征,而是隨機選擇一部分特征進行分裂。這種方法可以減少特征之間的相關性,提高模型的泛化能力。2)投票法算法和提升法算法適用于什么情景。投票法(Bagging)高方差模型:如決策樹,特別是深度決策樹,容易過擬合。通過將多個模型組合在一起,可以降低方差。大數(shù)據(jù)集:當數(shù)據(jù)量較大時,Bagging可以有效利用并行計算來加速訓練過程。類別不平衡:在處理類別不平衡的問題時,可以通過對少數(shù)類樣本進行增強來提高模型性能。需要穩(wěn)定性:當需要一個相對穩(wěn)定且魯棒的模型時,Bagging能夠通過多樣性來提高整體性能。提升法(Boosting)弱分類器:Boosting專注于將多個弱分類器(如簡單的決策樹)結合起來形成一個強分類器,適用于單個模型表現(xiàn)不佳的情況。需要高準確率:當對模型的準確率要求很高時,Boosting能夠通過不斷糾正前一輪模型的錯誤來提高模型性能。復雜數(shù)據(jù)關系:對于具有復雜模式和非線性關系的數(shù)據(jù),Boosting能夠更好地捕捉這些特征。d.小到中等規(guī)模數(shù)據(jù)集:Boosting在小到中等規(guī)模的數(shù)據(jù)集上通常效果較好,因為它對噪聲敏感,容易過擬合。3)簡述決策樹和隨機森林的關系。決策樹基本概念:決策樹是一種監(jiān)督學習算法,用于分類和回歸。它通過將數(shù)據(jù)劃分成不同的子集,以樹狀結構的方式進行決策。優(yōu)點:易于理解和解釋,能夠處理非線性關系,并且對缺失值有一定的魯棒性。缺點:容易過擬合,尤其是在數(shù)據(jù)量小或特征較多的情況下。隨機森林基本概念:隨機森林是由多棵決策樹組成的集成學習方法。它結合了多個決策樹的預測結果,以提高模型的準確性和穩(wěn)定性。構建過程:在訓練過程中,隨機森林使用“自助法”(BootstrapSampling)從訓練數(shù)據(jù)中隨機抽取樣本,同時在每個節(jié)點的分裂時隨機選擇特征。這種方法增加了模型的多樣性,降低了過擬合的風險。優(yōu)點:相較于單棵決策樹,隨機森林具有更高的準確性和更好的泛化能力,對異常值和噪聲的魯棒性也更強。關系基礎關系:隨機森林是基于決策樹的集成方法,利用多棵決策樹的組合來進行預測。性能提升:通過引入隨機性和多個決策樹,隨機森林克服了單棵決策樹的過擬合問題,提高了整體的預測性能。應用場景:兩者都可以用于分類和回歸任務,但隨機森林通常在實際應用中表現(xiàn)更佳。第九章1.選擇題1)關于k均值和DBSCAN的比較,以下說法不正確的是(B)。A.k均值丟棄被它識別為噪聲的樣本,而DBSCAN一般聚類所有樣本。B.k均值可以發(fā)現(xiàn)不是明顯分離的聚類,即便聚類有重疊也可以發(fā)現(xiàn),但是DBSCAN會合并有重疊的類別。C.k均值很難處理非球形的聚類和不同大小的聚類,DBSCAN可以處理不同大小和不同形狀的聚類。D.k均值聚類基于質心,而DBSCAN基于密度。2)“從某個選定的核心點出發(fā),不斷向密度可達的區(qū)域擴張,從而得到一個包含核心點和邊界點的最大化區(qū)域,區(qū)域中任意兩點密度相連”是(B)算法核心思想。A.k均值B.DBSCANC.AgglomerativeD.其它3)(A)算法缺點是當樣本集較大時,聚類收斂時間較長,但可以對搜索最近鄰時建立的kd樹或者球樹進行規(guī)模限制來改進。A.k均值B.DBSCANC.AgglomerativeD.其它2.簡答題1)簡述k均值算法的思想及優(yōu)缺點。K均值算法的思想:K均值算法是一種常用的聚類方法,其主要思想是通過迭代優(yōu)化樣本數(shù)據(jù)的分組,使得每個組內的樣本相似度盡可能高,而不同組之間的樣本相似度盡可能低。具體步驟如下:選擇K值:用戶事先指定要劃分的聚類數(shù)量K。初始化質心:隨機選擇K個樣本作為初始的聚類中心(質心)。分配樣本:將每個樣本分配到離其最近的質心對應的聚類中。更新質心:根據(jù)分配結果,計算每個聚類的新質心(通常是該聚類中所有樣本的均值)。迭代:重復步驟3和4,直到質心不再發(fā)生明顯變化或達到預設的迭代次數(shù)。K均值算法的優(yōu)缺點優(yōu)點:簡單易懂,算法易于實現(xiàn)和理解,適合初學者。計算效率高,對于大規(guī)模數(shù)據(jù)集,可以在相對較短的時間內完成聚類。能處理大樣本,能夠有效地處理大量數(shù)據(jù),對于均勻分布的樣本效果良好。缺點:需要預先指定K值,用戶必須事先定義聚類數(shù),這在實際應用中可能不容易確定。對初始質心敏感,不同的初始質心可能導致不同的聚類結果,可能需要多次運行以獲得最佳結果。無法處理非球形聚類,K均值假設聚類呈球形,難以處理形狀復雜或密度不同的聚類。對噪聲和異常值敏感。噪聲和異常值會對質心的位置產生較大影響,從而影響最終聚類結果。2)簡述Agglomerative算法的思想及優(yōu)缺點。Agglomerative算法的思想:Agglomerative算法是一種自底向上的聚類方法,主要思想是將每個數(shù)據(jù)點視為一個單獨的聚類,然后逐步合并這些聚類,直到滿足某個停止條件。具體步驟如下:初始化:將每個數(shù)據(jù)點視為一個獨立的聚類。計算距離:計算所有聚類之間的距離或相似度。常用的距離度量包括歐幾里得距離、曼哈頓距離等。合并聚類:找到距離最小的兩個聚類,將它們合并為一個新聚類。更新距離矩陣:更新新的聚類與其他聚類之間的距離。重復:重復步驟3和4,直到達到預定的聚類數(shù)量或滿足其他停止條件。Agglomerative算法的優(yōu)缺點優(yōu)點:無須預先指定聚類數(shù),用戶不需要事先定義聚類的數(shù)量,聚類過程可以根據(jù)數(shù)據(jù)特征自動生成。適用性廣,可以處理任意形狀的聚類,適合復雜的數(shù)據(jù)結構??梢暬?,可以生成樹狀圖(dendrogram),有助于理解數(shù)據(jù)的層次結構和關系。缺點:計算復雜度高,在每次迭代中,需要計算和更新距離矩陣,計算復雜度通常是(O(n^3)),對于大規(guī)模數(shù)據(jù)集效率較低。對噪聲和異常值敏感,噪聲和異常值可能導致錯誤的聚類結果。合并方式影響結果,不同的合并策略(如單鏈接、全鏈接、平均鏈接等)可能導致不同的聚類結果,因此選擇合并方式時需謹慎。3.編程題以某商城用戶數(shù)據(jù)表9-2(見data-9-5.csv)為例,選用不同的特征,使用k均值和DBSCAN算法進行聚類并可視化展示聚類結果。參考代碼如下importpandasaspdfromsklearn.clusterimportKMeans,DBSCANimportmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3D#步驟1:數(shù)據(jù)準備#導入數(shù)據(jù)并顯示data=pd.read_csv('data-9-5.csv')data.columns=['N','G','ag','ai','ss']data.head()#創(chuàng)建DataFramedf=pd.DataFrame(data)#步驟2:特征選擇features=df[['ag','ai','ss']]#步驟3:K均值聚類kmeans=KMeans(n_clusters=3,random_state=42)df['kmeans_cluster']=kmeans.fit_predict(features)#可視化K均值聚類結果fig=plt.figure()ax=fig.add_subplot(111,projection='3d')ax.scatter(df['ag'],df['ai'],df['ss'],c=df['kmeans_cluster'],cmap='viridis')ax.set_xlabel('Age')ax.set_ylabel('AI')ax.set_zlabel('SS')plt.title('K-meansClusteringResult')plt.show()#步驟4:DBSCAN聚類dbscan=DBSCAN(eps=3,min_samples=5)df['dbscan_cluster']=dbscan.fit_predict(features)#可視化DBSCAN聚類結果fig=plt.figure()ax=fig.add_subplot(111,projection='3d')ax.scatter(df['ag'],df['ai'],df['ss'],c=df['dbscan_cluster'],cmap='viridis')ax.set_xlabel('Age')ax.set_ylabel('AI')ax.set_zlabel('SS')plt.title('DBSCANClusteringResult')plt.show()第十章1.選擇題1)PCA原理是通過(A)將一組可能存在相關性的變量轉換為一組線性不相關的變量。A.正交變換 B.線性變換C.特征值分解 D.奇異值分解2)主成分是原特征的(B),其個數(shù)通常小于原始變量的個數(shù)。A.縮減 B.線性組合C.非線性組合 D.擴充3)對于二維降一維問題,只需要找到一個基向量就夠了,即最大化(C)就夠了。A.協(xié)方差 B.標準差C.方差 D.協(xié)方差矩陣4)特征值分解降維時,需要將對應特征值按(A)順序排列。A.從大到小 B.從小到大 C.無需排列 D.都不是5)奇異值分解降維時,需要找到的奇異矩陣是(B)。A.協(xié)方差矩陣的左右奇異矩陣 B.訓練集矩陣的左右奇異矩陣C.協(xié)方差矩陣的特征向量構成的矩陣 D.訓練集矩陣的特征向量構成的矩陣6)利用PCA降為k維后,k個主成分的貢獻率為(C)。A.i=1kλi2i=1nC.i=1kλii=1nλ7)LDA是一種經典的(A)學習方法。A.線性 B.非線性C.多項式 D.核方法8)利用LDA進行降維時,(B)用到類別標記。A.不需要 B.需要C.二分類不需要,多分類需要 D.二分類需要,多分類不需要9)利用LDA降維時,其矩陣模型為(D)。A.Rayleigh商 B.特征值分解C.奇異值分解 D.廣義Rayleigh商10)對于二分類問題,設類間散度矩陣為Sw,類別中心為u0和u1A.w=Sw?1u0C.w=Swu0?11)對于多分類問題,設類別數(shù)為(NA.N B.N?1 C.N+1 D.N+112)對于多分類問題,設W為投影子空間的一組標準正交基按行構成的矩陣,Sw為類內散度矩陣,SA.trWTSbW B.trWS13)對于多分類問題,設W為投影子空間的一組標準正交基按行構成的矩陣,Sw為類內散度矩陣,SA.trWTSbW B.trWSw2.簡答題1)簡述特征值分解降維和奇異值分解降維的區(qū)別和聯(lián)系。特征值分解和奇異值分解都是用于降維的線性代數(shù)技術,但它們在理論基礎、適用條件和應用場景上有所不同。以下是它們的區(qū)別和聯(lián)系:區(qū)別:a)定義:特征值分解是將一個方陣分解為其特征向量和特征值的過程。奇異值分解是將任意矩陣(無論是方陣還是非方陣)分解為三個矩陣的乘積。b)適用條件:特征值分解僅適用于方陣。只有在方陣具有足夠的特征向量(即可對角化時),才能進行特征值分解。奇異值分解適用于任意形狀的矩陣,包括方陣、長方形矩陣等。即使矩陣不是滿秩,也可以進行奇異值分解。c)數(shù)學性質:特征值和特征向量反映了矩陣的固有性質,特征值表示變換后的伸縮因子,特征向量表示變換方向。奇異值反映了矩陣在不同方向上的擴展程度,能夠捕捉到矩陣的主要結構信息,尤其在數(shù)據(jù)分析中常用來處理噪聲和冗余數(shù)據(jù)。d)降維方法:特征值分解常用于主成分分析。通過計算協(xié)方差矩陣的特征值和特征向量,選擇最大特征值對應的特征向量作為新特征空間。奇異值分解也可用于PCA,但通常直接用于任意數(shù)據(jù)矩陣,通過選擇最大的奇異值對應的奇異向量來實現(xiàn)降維。聯(lián)系:兩者都可以用于數(shù)據(jù)降維,提取重要特征。在某些情況下,特征值分解可以視為奇異值分解的一種特例,對于對稱矩陣而言,特征值分解與奇異值分解結果相同。2)簡述PCA與LDA的異同點,分析PCA和LDA各自的應用場景。主成分分析(PCA)和線性判別分析(LDA)都是常用的降維技術,盡管它們的目標和方法不同。以下是它們的異同點及各自的應用場景分析。相同點a)降維目的:PCA和LDA都旨在減少數(shù)據(jù)的維度,提高數(shù)據(jù)處理效率,同時盡量保留重要信息。b)線性變換:兩者都使用線性變換來實現(xiàn)降維,但變換的方式和目標不同。c)特征提取:都可以用于特征提取,幫助識別數(shù)據(jù)中的主要模式。不同點a)目標:PCA:旨在找到能夠最大化數(shù)據(jù)方差的方向(主成分),重點關注數(shù)據(jù)的整體結構。LDA:旨在尋找能夠最大化類間距離(不同類別樣本之間的距離)和最小化類內距離(同一類別樣本之間的距離)的方向,更側重于分類。b)監(jiān)督與非監(jiān)督:PCA:無監(jiān)督學習,使用時不依賴于標簽信息。LDA:有監(jiān)督學習,使用時需要類別標簽。c)適用條件:PCA:可以處理任何類型的數(shù)據(jù)(如高維數(shù)據(jù)集)且不要求類別信息。LDA:要求數(shù)據(jù)具有明顯的類別標簽,適用于分類任務。PCA的應用場景數(shù)據(jù)預處理:在機器學習模型訓練前,使用PCA進行特征降維,以去除冗余特征,降低計算復雜性。圖像處理:在面部識別、圖像壓縮等領域,通過PCA減少圖像的維度,同時保留重要的視覺信息??梢暬簩τ诟呔S數(shù)據(jù)集,使用PCA將數(shù)據(jù)降至2D或3D空間中,以便于可視化和分析。噪聲去除:在信號處理中,PCA可以幫助去除噪聲,提取出信號的主要成分。LDA的應用場景分類任務:在模式識別和機器學習中,LDA常用于構建分類器,例如人臉識別、文本分類等,通過優(yōu)化類別之間的可區(qū)分性提高分類精度。生物信息學:在基因表達數(shù)據(jù)分析中,LDA可以用于分類不同類型的生物樣本,幫助疾病診斷。市場分析:用于消費者行為分析,通過識別不同客戶群體之間的差異,幫助制定市場策略。3.編程題1)現(xiàn)有10位中學生身體的各項指標如下表10-5,其中指標1(單位:cm)表示身高、指標2(單位:kg)表示體重、指標3(單位:cm)表示胸圍、指標4(單位:cm)表示坐高。試對此組數(shù)據(jù)做PCA。表10-5身體指標數(shù)據(jù)集12345678910指標1148139160149152147153156147154指標241344937463842454143指標372707766807567726577指標478778679857681768279參考代碼如下importnumpyasnpimportpandasaspdfromsklearn.decompositionimportPCAfromsklearn.preprocessingimportStandardScalerimportmatplotlib.pyplotasplt#1.輸入數(shù)據(jù)data={'Height':[148,139,160,149,152,147,153,156,147,154],#身高'Weight':[41,34,49,37,46,38,42,45,41,43],#體重'Chest':[72,70,77,66,80,75,67,72,65,77],#胸圍'SitHeight':[78,77,86,79,85,76,81,76,82,79]#坐高}#2.創(chuàng)建DataFramedf=pd.DataFrame(data)#3.數(shù)據(jù)標準化scaler=StandardScaler()df_scaled=scaler.fit_transform(df)#4.PCA降維pca=PCA(n_components=2)#降到2維X_pca=pca.fit_transform(df_scaled)#5.查看PCA結果pca_df=pd.DataFrame(data=X_pca,columns=['PC1','PC2'])#顯示PCA的方差貢獻explained_variance=pca.explained_variance_ratio_print(f"主成分1的方差貢獻:{explained_variance[0]:.4f}")print(f"主成分2的方差貢獻:{explained_variance[1]:.4f}")#6.可視化PCA結果plt.figure(figsize=(8,6))plt.scatter(pca_df['PC1'],pca_df['PC2'])plt.title('PCAofBodyIndicators')plt.xlabel('PrincipalComponent1')plt.ylabel('PrincipalComponent2')plt.grid(True)plt.show()2)Sklearn內置iris數(shù)據(jù)集,每個樣本有四個特征(四維),分別是萼片長度(sepallength),萼片寬度(sepalwidth),花瓣長度(petallength),花瓣寬度(petalwidth),標簽有三種,分別是setosa,versicolor和virginica。分別利用PCA和LDA對此數(shù)據(jù)集進行降維并對比分析。參考代碼如下#1.導入必要的庫#我們首先需要導入Python中的相關庫,包括numpy,pandas,matplotlib和sklearn。importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearnimportdatasetsfromsklearn.decompositionimportPCAfromsklearn.discriminant_analysisimportLinearDiscriminantAnalysisasLDA#2.加載Iris數(shù)據(jù)集#我們可以使用sklearn.datasets模塊加載Iris數(shù)據(jù)集,并將其轉換為DataFrame格式,方便后續(xù)處理。#Loadirisdatasetiris=datasets.load_iris()X=iris.data#Featuresy=iris.target#Labelsiris_df=pd.DataFrame(data=X,columns=iris.feature_names)iris_df['target']=y#3.PCA降維#我們使用PCA將數(shù)據(jù)降至二維空間,并可視化結果。pca=PCA(n_components=2)X_pca=pca.fit_transform(X)pca_df=pd.DataFrame(data=X_pca,columns=['PC1','PC2'])pca_df['target']=yplt.figure(figsize=(8,6))colors=['r','g','b']fortarget,colorinzip([0,1,2],colors):plt.scatter(pca_df[pca_df['target']==target]['PC1'],pca_df[pca_df['target']==target]['PC2'],color=color,label=iris.target_names[target])plt.title('PCAofIrisDataset')plt.xlabel('PrincipalComponent1')plt.ylabel('PrincipalComponent2')plt.legend()plt.grid()plt.show()#4.LDA降維#接下來,我們使用LDA將數(shù)據(jù)降至二維空間,并可視化結果。lda=LDA(n_components=2)X_lda=lda.fit_transform(X,y)lda_df=pd.DataFrame(data=X_lda,columns=['LD1','LD2'])lda_df['target']=yplt.figure(figsize=(8,6))fortarget,colorinzip([0,1,2],colors):plt.scatter(lda_df[lda_df['target']==target]['LD1'],lda_df[lda_df['target']==target]['LD2'],color=color,label=iris.target_names[target])plt.title('LDAofIrisDataset')plt.xlabel('LinearDiscriminant1')plt.ylabel('LinearDiscriminant2')plt.legend()plt.grid()plt.show()第十一章1.填空題未標記生成模型和判別模型2.簡答題1)半監(jiān)督聚類和一般聚類算法的區(qū)別半監(jiān)督聚類與一般聚類算法的主要區(qū)別在于使用的標簽信息:數(shù)據(jù)類型:一般聚類算法只依賴于未標記的數(shù)據(jù)進行學習,試圖根據(jù)數(shù)據(jù)的內在結構將其劃分為不同的簇。半監(jiān)督聚類算法同時利用未標記數(shù)據(jù)和少量標記數(shù)據(jù),通過已知類別的信息來指導聚類過程。目標:一般聚類旨在發(fā)現(xiàn)數(shù)據(jù)的自然結構,沒有考慮預先定義的標簽。半監(jiān)督聚類則希望在聚類的同時借助標簽信息來提升聚類效果,使得結果更符合已知的類別結構。效果:半監(jiān)督聚類通常能在標記數(shù)據(jù)稀缺的情況下取得更好的聚類質量,因為它能結合標簽信息優(yōu)化簇的劃分。2)基于樸素貝葉斯模型推導生成式半監(jiān)督學習算法假設樣本類別數(shù)等于樸素貝葉斯模型的類別數(shù),而且第i個樣本類別對應于第i個模型類別,同樣不再區(qū)分y和θ。另外假設樣本中每個特征取值為離散值。樸素貝葉斯模型p==其中i為類別索引號,共有N個類別,f為特征索引號,共有n個不同特征;αi=py=i,βi,f,xj=pxf似然函數(shù)LL==其中,xjf表示樣本xj的第EM算法求解參數(shù)E步對于無標記樣本:

溫馨提示

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

最新文檔

評論

0/150

提交評論