Python機器學習與項目實踐- 課件 chap3-線性模型_第1頁
Python機器學習與項目實踐- 課件 chap3-線性模型_第2頁
Python機器學習與項目實踐- 課件 chap3-線性模型_第3頁
Python機器學習與項目實踐- 課件 chap3-線性模型_第4頁
Python機器學習與項目實踐- 課件 chap3-線性模型_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

線性模型《Python機器學習與項目實踐》XXX大學教學內(nèi)容線性回歸模型、邏輯回歸模型、樸素貝葉斯模型、決策樹模型、支持向量機模型、KNN模型隨機森林模型。矩陣微積分標量關于向量的偏導數(shù)向量關于向量的偏導數(shù)向量函數(shù)及其導數(shù)關于概率的一些基本概念概率(Probability)一個隨機事件發(fā)生的可能性大小,為0到1之間的實數(shù)。隨機變量(RandomVariable)比如隨機擲一個骰子,得到的點數(shù)就可以看成一個隨機變量X,其取值為{1,2,3,4,5,6}。概率分布(ProbabilityDistribution)一個隨機變量X取每種可能值的概率并滿足概率的一些基本概念伯努利分布(BernoulliDistribution)在一次試驗中,事件A出現(xiàn)的概率為μ,不出現(xiàn)的概率為1?μ。若用變量X表示事件A出現(xiàn)的次數(shù),則X的取值為0和1,其相應的分布為二項分布(BinomialDistribution)在n次伯努利分布中,若以變量X表示事件A出現(xiàn)的次數(shù),則X的取值為{0,…,n},其相應的分布二項式系數(shù),表示從n個元素中取出k個元素而不考慮其順序的組合的總數(shù)。概率的一些基本概念

概率的一些基本概念條件概率(ConditionalProbability)對于離散隨機向量(X,Y),已知X=x的條件下,隨機變量Y=y的條件概率為:貝葉斯公式兩個條件概率p(y|x)和p(x|y)之間的關系線性回歸模型模型:增廣權重向量和增廣特征向量線性回歸(LinearRegression)第1步,我們需要導入所需的包。增廣權重向量和增廣特征向量1.from

sklearn

import

datasets

#導入sklearn

中的數(shù)據(jù)集

2.from

sklearn.model_selection

import

train_test_split

#導入數(shù)據(jù)集劃分模塊

3.from

sklearn.linear_model

import

LinearRegression

#導入線性回歸模型

4.from

sklearn.metrics

import

mean_squared_error

#導入均方差評價指標

線性回歸(LinearRegression)第2步,首先加載數(shù)據(jù)集增廣權重向量和增廣特征向量1.#加載波士頓房價數(shù)據(jù)集

2.boston_data=datasets.load_boston()

3.#獲取波士頓房價數(shù)據(jù)集的特征集

4.bonston_x=boston_data.data

5.#獲取波士頓房價數(shù)據(jù)集的目標值

6.bonston_y=boston_data.target

7.#查看數(shù)據(jù)集鍵值對

8.print(boston_data.keys())

9.#查看數(shù)據(jù)集描述

10.print(boston_data.DESCR)

11.#查看數(shù)據(jù)集特征值形狀,可以看出有506個樣本,每個樣本有13個特征

12.print(bonston_x.shape)

13.#查看數(shù)據(jù)集目標值形狀,有506個目標值。可以發(fā)現(xiàn)沒有缺失值

14.print(bonston_y.shape)

線性回歸(LinearRegression)通過結(jié)果可以知道共有506個樣本,特征向量維度為13,也就是說房價有13個影響因素。增廣權重向量和增廣特征向量

線性回歸(LinearRegression)第3步,劃分訓練集和測試集,其中測試集占數(shù)據(jù)集的20%。1.#對數(shù)據(jù)集進行劃分,其中測試集占數(shù)據(jù)集的20%

2.features_train,features_test,target_train,target_test

=train_test_split(bonston_x,bonston_y,test_size=0.2)

線性回歸(LinearRegression)第4步,實例化模型并進行訓練。1.#實例化模型

2.model

=LinearRegression()

3.#進行模型訓練

4.model.fit(features_train,target_train)

線性回歸(LinearRegression)第5步,對測試集進行預測,并輸出預測目標值和真實目標值,從而直觀地感受預測目標值與真實值目標的差距。1.#進行預測

2.target_test_predict=model.predict(features_test)

3.#查看預測目標值4.print(target_test_predict)

5.#查看真實目標值

6.print(target_test)

線性回歸(LinearRegression)第6步,對模型進行評價,采用的是均方差評價函數(shù):1.#

對模型效果進行評價

2.error=mean_squared_error(target_test,target_test_predict)

3.print('測試數(shù)據(jù)的誤差:',error)

線性回歸(LinearRegression)邏輯回歸模型

邏輯回歸(LogisticRegression)

邏輯回歸(LogisticRegression)導入需要使用的包。1.#導入需要使用的包

2.#導入劃分訓練集、測試集需要使用的包

3.from

sklearn.model_selection

import

train_test_split

4.#導入鳶尾花數(shù)據(jù)集

5.from

sklearn.datasets

import

load_iris

6.#導入sklearn中的邏輯回歸模型

7.from

sklearn.linear_model

import

LogisticRegression

邏輯回歸模型的代碼實現(xiàn)然后加載鳶尾花數(shù)據(jù)集,查看數(shù)據(jù)集鍵值對,查看數(shù)據(jù)集描述,查看特征集形狀。1.#加載鳶尾花數(shù)據(jù)集

2.iris_data=load_iris()

3.#查看鳶尾花數(shù)據(jù)集的鍵值對

4.print(iris_data.keys())

5.#查看鳶尾花數(shù)據(jù)集的描述

6.print(iris_data.DESCR)

7.#查看鳶尾花特征集的形狀

8.print(iris_data.data.shape)

邏輯回歸模型的代碼實現(xiàn)接下來劃分數(shù)據(jù)集。1.#將數(shù)據(jù)集劃分為測試集和訓練集,使用默認劃分比例,測試集占數(shù)據(jù)集的25%,查看劃分后訓練集的形狀

2.features_train,features_test,target_train,target_test=train_test_split(iris_data.data,iris_data.target)

3.print(features_train.shape)

邏輯回歸模型的代碼實現(xiàn)實例化模型,訓練模型,對測試集進行預測,并輸出預測結(jié)果和真實結(jié)果,簡單直觀地觀察模型性能。1.#實例化模型,默認迭代次數(shù)為1000,這里我們設置為2500,迭代次數(shù)就是尋找損失函數(shù)最小值所迭代的次數(shù)

2.logstic_model=LogisticRegression(max_iter=2500)

3.#訓練模型

4.logstic_model.fit(features_train,target_train)

5.#對測試集進行預測,打印預測結(jié)果,打印真實結(jié)果,直觀感受模型性能

6.target_pre=logstic_model.predict(features_test)

7.print(target_pre)

8.print(target_test)

邏輯回歸模型的代碼實現(xiàn)最后對模型進行評價,并輸出其結(jié)果。1.#對模型進行評價,使用自帶的性能評價器評價其準確率

2.score=logstic_model.score(features_test,target_test)

3.print(score)

邏輯回歸模型的代碼實現(xiàn)經(jīng)驗風險最小化樸素貝葉斯是一種有監(jiān)督學習的分類算法。

樸素貝葉斯(NaiveBayesianAlgorithm)面

貌舉

止聲

音穿

著是否有好感好看優(yōu)雅好聽得體有好看粗魯不好聽得體沒有不好看優(yōu)雅好聽得體有不好看優(yōu)雅不好聽不得體沒有好看優(yōu)雅好聽不得體有不好看粗魯不好聽不得體沒有好看粗魯好聽得體有不好看粗魯好聽不得體沒有

首先導入需要使用的包1.#導入需要使用的包

2.#導入劃分訓練集、測試集需要使用的包

3.from

sklearn.model_selection

import

train_test_split

4.#導入鳶尾花數(shù)據(jù)集

5.from

sklearn.datasets

import

load_iris

6.#導入sklearn中的樸素貝葉斯模型,使用的是高斯分類器

7.from

sklearn.naive_bayes

import

GaussianNB

樸素貝葉斯模型的代碼實現(xiàn)然后加載鳶尾花數(shù)據(jù)集。1.#加載鳶尾花數(shù)據(jù)集

2.iris_data=load_iris()

樸素貝葉斯模型的代碼實現(xiàn)劃分數(shù)據(jù)集為測試集和訓練集。1.#將數(shù)據(jù)集劃分為測試集和訓練集,使用默認劃分比例,測試集占數(shù)據(jù)集的25%

2.features_train,features_test,target_train,target_test=train_test_split(iris_data.data,iris_data.target)

樸素貝葉斯模型的代碼實現(xiàn)接下來實例化一個樸素貝葉斯模型并進行訓練。1.#實例化一個樸素貝葉斯模型

2.naive_bayes_model=GaussianNB()

3.#訓練模型

4.naive_bayes_model.fit(features_train,target_train)

樸素貝葉斯模型的代碼實現(xiàn)對測試集進行預測,并查看預測結(jié)果和真實結(jié)果。1.#對測試集進行預測,打印預測結(jié)果,打印真實結(jié)果,直觀感受模型效果

2.target_pre=naive_bayes_model.predict(features_test)3.#打印預測結(jié)果

4.print(target_pre)5.#打印真實結(jié)果6.print(target_test)

樸素貝葉斯模型的代碼實現(xiàn)最后評價模型,打印模型分數(shù)(準確率)。1.#對模型進行評估

2.score=naive_bayes_model.score(features_test,target_test)

3.#打印模型分數(shù)

4.print(score)

樸素貝葉斯模型的代碼實現(xiàn)決策樹模型決策樹算法是指一類算法,它以樹形結(jié)構(gòu)呈現(xiàn)邏輯模型。決策樹模型導入需要的庫1.#導入需要使用的包

2.from

sklearn.datasets

import

load_wine

#導入紅酒數(shù)據(jù)集需要使用的包

3.from

sklearn.model_selection

import

train_test_split

#導入數(shù)據(jù)集劃分工具

4.from

sklearn.tree

import

DecisionTreeClassifier

#導入決策樹模型

5.import

numpy

as

np

#導入NumPy

決策樹模型的代碼實現(xiàn)加載紅酒數(shù)據(jù)集,并查看數(shù)據(jù)集形狀、描述和鍵值對1.#加載紅酒數(shù)據(jù)集

2.RedWine_data=load_wine()

3.#查看數(shù)據(jù)集形狀

4.print(RedWine_data.data.shape)

5.#查看數(shù)據(jù)集鍵值對

6.print(RedWine_data.keys())

7.#查看數(shù)據(jù)集描述

8.print(RedWine_data.DESCR)

決策樹模型的代碼實現(xiàn)將數(shù)據(jù)集劃分為訓練集和測試集1.#將數(shù)據(jù)集劃分為測試集和訓練集

2.features_train,features_test,target_train,target_test=train_test_split(RedWine_data.data,RedWine_data.target

決策樹模型的代碼實現(xiàn)實例化決策樹模型,并進行訓練。1.#實例化一個ID3決策樹模型

2.DecisionTree_Model=DecisionTreeClassifier(criterion='entropy')

3.#進行模型訓練

4.DecisionTree_Model.fit(features_train,target_train)

決策樹模型的代碼實現(xiàn)評價指標為準確率,輸出評價分數(shù)。1.#對模型進行評價

2.print(DecisionTree_Model.score(features_test,target_test))

決策樹模型的代碼實現(xiàn)支持向量機模型支持向量機是有監(jiān)督學習算法中最有影響力的機器學習算法之一。支持向量機的概念導入需要使用的包。1.from

sklearn

import

svm

#導入支持向量機模型

2.from

sklearn.datasets

import

load_iris

#導入鳶尾花數(shù)據(jù)集

3.from

sklearn.model_selection

import

train_test_split

#導入數(shù)據(jù)集劃分需要使用的包

4.from

sklearn.metrics

import

confusion_matrix

#導入混淆矩陣評價指標

5.from

sklearn.metrics

import

accuracy_score

#導入準確率評

支持向量機模型的代碼實現(xiàn)加載鳶尾花數(shù)據(jù)集,并查看其形狀。1.#加載鳶尾花數(shù)據(jù)集,其結(jié)果是個字典

2.iris=load_iris()

3.#查看數(shù)據(jù)集的形狀,有多少個樣本,每個樣本有多少個特征

4.print(iris.data.shape)

輸出結(jié)果如下,總共有150個樣本,每個樣本有4個特征。(150,4)

支持向量機模型的代碼實現(xiàn)劃分數(shù)據(jù)集。1.#劃分訓練集和測試集,將隨機數(shù)種子設置為1,便于復現(xiàn)模型,訓練集占數(shù)據(jù)集的70%,剩下的為測試集

2.train_data,test_data=train_test_split(iris.data,random_state=1,train_size=0.7,test_size=0.3)

3.train_label,test_label=train_test_split(iris.target,random_state=1,train_size=0.7,test_size=0.3)

支持向量機模型的代碼實現(xiàn)實例化模型并進行訓練。1.#實例化模型,C是正則化程度,C的數(shù)值越大,懲罰力度越小,默認為1,使用rbf核函數(shù)

2.model=svm.SVC(C=2.0,kernel='rbf',gamma=10,decision_function_shape='ovr')3.#訓練模型,ravel將維度變?yōu)橐痪S

4.model.fit(train_data,train_label.ravel())

支持向量機模型的代碼實現(xiàn)進行預測,并評價,采用混淆矩陣和準確率進行評價。1.#模型預測

2.pre_test=model.predict(test_data)

3.#準確率評價

4.score=accuracy_score(test_label,pre_test)

5.print(score)

6.#混淆矩陣評價

7.cm=confusion_matrix(test_label,pre_test)

8.print(cm)

支持向量機模型的代碼實現(xiàn)KNN模型機器學習分類算法——K最近鄰算法,簡稱KNN(K-Nearest-Neighbor)算法。它是有監(jiān)督學習分類算法的一種。在學習KNN算法的過程中,只需要把握兩個原則就好了。第1個原則是“少數(shù)服從多數(shù)”;第2個原則是“資格”,就是是否有資格進行投票。

KNN(K-Nearest-Neighbor)機器學習分類算法——K最近鄰算法,簡稱KNN(K-Nearest-Neighbor)算法。它是有監(jiān)督學習分類算法的一種。在學習KNN算法的過程中,只需要把握兩個原則就好了。第1個原則是“少數(shù)服從多數(shù)”;第2個原則是“資格”,就是是否有資格進行投票。

KNN(K-Nearest-Neighbor)KNN算法主要包括4個步驟,(1)準備數(shù)據(jù),對數(shù)據(jù)進行預處理。(2)計算測試樣本點(也就是待分類點)到其他每個樣本點的距離(選定度量距離的方法)。(3)對每個距離進行排序,選出距離最小的K個點。(4)對K個點所屬的類進行比較,按照“少數(shù)服從多數(shù)”的原則(多數(shù)表決思想),將測試樣本點歸入K個點中占比最高的一類中。

KNN(K-Nearest-Neighbor)導入需要使用的包,這里以紅酒數(shù)據(jù)集為例。1.#導入需要使用的包

2.#導入NumPy

3.import

numpy

as

np

4.#導入紅酒數(shù)據(jù)集需要使用的包

5.from

sklearn.datasets

import

load_wine

6.#導入劃分數(shù)據(jù)集需要使用的包

7.from

sklearn.model_selection

import

train_test_split

8.#導入KNN算法需要使用的包

9.from

sklearn.neighbors

import

KNeighborsClassifier

KNN的代碼實現(xiàn)加載數(shù)據(jù)集并查看數(shù)據(jù)集形狀、數(shù)據(jù)集鍵值對、數(shù)據(jù)集描述。1.#加載數(shù)據(jù)集

2.RedWine_data=load_wine()

3.#查看數(shù)據(jù)集形狀

4.print(RedWine_data.data.shape)

5.#查看數(shù)據(jù)集鍵值對

6.print(RedWine_data.keys())

7.#查看數(shù)據(jù)集描述

8.print(RedWine_data.DESCR)

KNN的代碼實現(xiàn)劃分數(shù)據(jù)集為測試集和訓練集,使用默認的劃分比例,也就是數(shù)據(jù)集的25%為測試集。1.#將數(shù)據(jù)集劃分為測試集和訓練集

2.features_train,features_test,target_train,target_test=train_test_split(RedWine_data.data,RedWine_data.target)

KNN的代碼實現(xiàn)實例化KNN模型,并進行訓練。這里使用的K值為5,讀者可以試試其他不同的K值對模型的影響。1.#實例化一個KNN模型,n_neighbors為超參數(shù),就是K值

2.KNN_Classifier_Model=KNeighborsClassifier(n_neighbors=5)

3.#進行訓練

4.KNN_Classifier_Model.fit(features_train,target_train)

KNN的代碼實現(xiàn)對測試集進行預測,并打印預測結(jié)果和真實結(jié)果。1.#對測試集進行預測

2.target_pre=KNN_Classifier_Model.predict(features_test)

3.#打印預測結(jié)果

4.print(target_pre)

5.#打印真實結(jié)果

6.print(target_test)

KNN的代碼實現(xiàn)最后對模型進行評價。1.#對模型進行評價

2.KNN_Classifier_Model_score=KNN_Classifier_Model.score(features_test,target_test)

3.print(KNN_Classifier_Model_score)

輸出結(jié)果如下。0.7777777777777778

KNN的代碼實現(xiàn)隨機森林模型隨機森林,顧名思義,即使用隨機的方式建立一個森林,這個森林由很多的決策樹組成,并且每一棵決策樹之間是相互獨立的。如果訓練集有M個樣本,則對于每棵決策樹而言,以隨機且有放回的方式從訓練集中抽取N個訓練樣本(N<M),作為該決策樹的訓練集。除采用樣本隨機外,隨機森林還采用了特征隨機。假設每個樣本有K個特征,從所有特征中隨機選取k個特征(k≤K),選擇最佳分割特征作為節(jié)點建立CART決策樹,重復該步驟,建立m棵CART決策樹。這些樹就組成了森林,這便是隨機森林名字的由來。

隨機森林算法(RandomForestAlgorithm)導入需要使用的庫。1.#導入需要使用的庫

2.#導入隨機森林算法

3.from

sklearn.ensemble

import

RandomForestClassifier

4.#導入鳶尾花數(shù)據(jù)集需要使用的包

5.from

sklearn.datasets

import

load_iri

溫馨提示

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

評論

0/150

提交評論