版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
線性模型《Python機(jī)器學(xué)習(xí)與項目實踐》XXX大學(xué)教學(xué)內(nèi)容線性回歸模型、邏輯回歸模型、樸素貝葉斯模型、決策樹模型、支持向量機(jī)模型、KNN模型隨機(jī)森林模型。矩陣微積分標(biāo)量關(guān)于向量的偏導(dǎo)數(shù)向量關(guān)于向量的偏導(dǎo)數(shù)向量函數(shù)及其導(dǎo)數(shù)關(guān)于概率的一些基本概念概率(Probability)一個隨機(jī)事件發(fā)生的可能性大小,為0到1之間的實數(shù)。隨機(jī)變量(RandomVariable)比如隨機(jī)擲一個骰子,得到的點(diǎn)數(shù)就可以看成一個隨機(jī)變量X,其取值為{1,2,3,4,5,6}。概率分布(ProbabilityDistribution)一個隨機(jī)變量X取每種可能值的概率并滿足概率的一些基本概念伯努利分布(BernoulliDistribution)在一次試驗中,事件A出現(xiàn)的概率為μ,不出現(xiàn)的概率為1?μ。若用變量X表示事件A出現(xiàn)的次數(shù),則X的取值為0和1,其相應(yīng)的分布為二項分布(BinomialDistribution)在n次伯努利分布中,若以變量X表示事件A出現(xiàn)的次數(shù),則X的取值為{0,…,n},其相應(yīng)的分布二項式系數(shù),表示從n個元素中取出k個元素而不考慮其順序的組合的總數(shù)。概率的一些基本概念
概率的一些基本概念條件概率(ConditionalProbability)對于離散隨機(jī)向量(X,Y),已知X=x的條件下,隨機(jī)變量Y=y的條件概率為:貝葉斯公式兩個條件概率p(y|x)和p(x|y)之間的關(guān)系線性回歸模型模型:增廣權(quán)重向量和增廣特征向量線性回歸(LinearRegression)第1步,我們需要導(dǎo)入所需的包。增廣權(quán)重向量和增廣特征向量1.from
sklearn
import
datasets
#導(dǎo)入sklearn
中的數(shù)據(jù)集
2.from
sklearn.model_selection
import
train_test_split
#導(dǎo)入數(shù)據(jù)集劃分模塊
3.from
sklearn.linear_model
import
LinearRegression
#導(dǎo)入線性回歸模型
4.from
sklearn.metrics
import
mean_squared_error
#導(dǎo)入均方差評價指標(biāo)
線性回歸(LinearRegression)第2步,首先加載數(shù)據(jù)集增廣權(quán)重向量和增廣特征向量1.#加載波士頓房價數(shù)據(jù)集
2.boston_data=datasets.load_boston()
3.#獲取波士頓房價數(shù)據(jù)集的特征集
4.bonston_x=boston_data.data
5.#獲取波士頓房價數(shù)據(jù)集的目標(biāo)值
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ù)集目標(biāo)值形狀,有506個目標(biāo)值??梢园l(fā)現(xiàn)沒有缺失值
14.print(bonston_y.shape)
線性回歸(LinearRegression)通過結(jié)果可以知道共有506個樣本,特征向量維度為13,也就是說房價有13個影響因素。增廣權(quán)重向量和增廣特征向量
線性回歸(LinearRegression)第3步,劃分訓(xùn)練集和測試集,其中測試集占數(shù)據(jù)集的20%。1.#對數(shù)據(jù)集進(jìn)行劃分,其中測試集占數(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步,實例化模型并進(jìn)行訓(xùn)練。1.#實例化模型
2.model
=LinearRegression()
3.#進(jìn)行模型訓(xùn)練
4.model.fit(features_train,target_train)
線性回歸(LinearRegression)第5步,對測試集進(jìn)行預(yù)測,并輸出預(yù)測目標(biāo)值和真實目標(biāo)值,從而直觀地感受預(yù)測目標(biāo)值與真實值目標(biāo)的差距。1.#進(jìn)行預(yù)測
2.target_test_predict=model.predict(features_test)
3.#查看預(yù)測目標(biāo)值4.print(target_test_predict)
5.#查看真實目標(biāo)值
6.print(target_test)
線性回歸(LinearRegression)第6步,對模型進(jìn)行評價,采用的是均方差評價函數(shù):1.#
對模型效果進(jìn)行評價
2.error=mean_squared_error(target_test,target_test_predict)
3.print('測試數(shù)據(jù)的誤差:',error)
線性回歸(LinearRegression)邏輯回歸模型
邏輯回歸(LogisticRegression)
邏輯回歸(LogisticRegression)導(dǎo)入需要使用的包。1.#導(dǎo)入需要使用的包
2.#導(dǎo)入劃分訓(xùn)練集、測試集需要使用的包
3.from
sklearn.model_selection
import
train_test_split
4.#導(dǎo)入鳶尾花數(shù)據(jù)集
5.from
sklearn.datasets
import
load_iris
6.#導(dǎo)入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)接下來劃分?jǐn)?shù)據(jù)集。1.#將數(shù)據(jù)集劃分為測試集和訓(xùn)練集,使用默認(rèn)劃分比例,測試集占數(shù)據(jù)集的25%,查看劃分后訓(xùn)練集的形狀
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)實例化模型,訓(xùn)練模型,對測試集進(jìn)行預(yù)測,并輸出預(yù)測結(jié)果和真實結(jié)果,簡單直觀地觀察模型性能。1.#實例化模型,默認(rèn)迭代次數(shù)為1000,這里我們設(shè)置為2500,迭代次數(shù)就是尋找損失函數(shù)最小值所迭代的次數(shù)
2.logstic_model=LogisticRegression(max_iter=2500)
3.#訓(xùn)練模型
4.logstic_model.fit(features_train,target_train)
5.#對測試集進(jìn)行預(yù)測,打印預(yù)測結(jié)果,打印真實結(jié)果,直觀感受模型性能
6.target_pre=logstic_model.predict(features_test)
7.print(target_pre)
8.print(target_test)
邏輯回歸模型的代碼實現(xiàn)最后對模型進(jìn)行評價,并輸出其結(jié)果。1.#對模型進(jìn)行評價,使用自帶的性能評價器評價其準(zhǔn)確率
2.score=logstic_model.score(features_test,target_test)
3.print(score)
邏輯回歸模型的代碼實現(xiàn)經(jīng)驗風(fēng)險最小化樸素貝葉斯是一種有監(jiān)督學(xué)習(xí)的分類算法。
樸素貝葉斯(NaiveBayesianAlgorithm)面
貌舉
止聲
音穿
著是否有好感好看優(yōu)雅好聽得體有好看粗魯不好聽得體沒有不好看優(yōu)雅好聽得體有不好看優(yōu)雅不好聽不得體沒有好看優(yōu)雅好聽不得體有不好看粗魯不好聽不得體沒有好看粗魯好聽得體有不好看粗魯好聽不得體沒有
首先導(dǎo)入需要使用的包1.#導(dǎo)入需要使用的包
2.#導(dǎo)入劃分訓(xùn)練集、測試集需要使用的包
3.from
sklearn.model_selection
import
train_test_split
4.#導(dǎo)入鳶尾花數(shù)據(jù)集
5.from
sklearn.datasets
import
load_iris
6.#導(dǎo)入sklearn中的樸素貝葉斯模型,使用的是高斯分類器
7.from
sklearn.naive_bayes
import
GaussianNB
樸素貝葉斯模型的代碼實現(xiàn)然后加載鳶尾花數(shù)據(jù)集。1.#加載鳶尾花數(shù)據(jù)集
2.iris_data=load_iris()
樸素貝葉斯模型的代碼實現(xiàn)劃分?jǐn)?shù)據(jù)集為測試集和訓(xùn)練集。1.#將數(shù)據(jù)集劃分為測試集和訓(xùn)練集,使用默認(rèn)劃分比例,測試集占數(shù)據(jù)集的25%
2.features_train,features_test,target_train,target_test=train_test_split(iris_data.data,iris_data.target)
樸素貝葉斯模型的代碼實現(xiàn)接下來實例化一個樸素貝葉斯模型并進(jìn)行訓(xùn)練。1.#實例化一個樸素貝葉斯模型
2.naive_bayes_model=GaussianNB()
3.#訓(xùn)練模型
4.naive_bayes_model.fit(features_train,target_train)
樸素貝葉斯模型的代碼實現(xiàn)對測試集進(jìn)行預(yù)測,并查看預(yù)測結(jié)果和真實結(jié)果。1.#對測試集進(jìn)行預(yù)測,打印預(yù)測結(jié)果,打印真實結(jié)果,直觀感受模型效果
2.target_pre=naive_bayes_model.predict(features_test)3.#打印預(yù)測結(jié)果
4.print(target_pre)5.#打印真實結(jié)果6.print(target_test)
樸素貝葉斯模型的代碼實現(xiàn)最后評價模型,打印模型分?jǐn)?shù)(準(zhǔn)確率)。1.#對模型進(jìn)行評估
2.score=naive_bayes_model.score(features_test,target_test)
3.#打印模型分?jǐn)?shù)
4.print(score)
樸素貝葉斯模型的代碼實現(xiàn)決策樹模型決策樹算法是指一類算法,它以樹形結(jié)構(gòu)呈現(xiàn)邏輯模型。決策樹模型導(dǎo)入需要的庫1.#導(dǎo)入需要使用的包
2.from
sklearn.datasets
import
load_wine
#導(dǎo)入紅酒數(shù)據(jù)集需要使用的包
3.from
sklearn.model_selection
import
train_test_split
#導(dǎo)入數(shù)據(jù)集劃分工具
4.from
sklearn.tree
import
DecisionTreeClassifier
#導(dǎo)入決策樹模型
5.import
numpy
as
np
#導(dǎo)入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ù)集劃分為訓(xùn)練集和測試集1.#將數(shù)據(jù)集劃分為測試集和訓(xùn)練集
2.features_train,features_test,target_train,target_test=train_test_split(RedWine_data.data,RedWine_data.target
決策樹模型的代碼實現(xiàn)實例化決策樹模型,并進(jìn)行訓(xùn)練。1.#實例化一個ID3決策樹模型
2.DecisionTree_Model=DecisionTreeClassifier(criterion='entropy')
3.#進(jìn)行模型訓(xùn)練
4.DecisionTree_Model.fit(features_train,target_train)
決策樹模型的代碼實現(xiàn)評價指標(biāo)為準(zhǔn)確率,輸出評價分?jǐn)?shù)。1.#對模型進(jìn)行評價
2.print(DecisionTree_Model.score(features_test,target_test))
決策樹模型的代碼實現(xiàn)支持向量機(jī)模型支持向量機(jī)是有監(jiān)督學(xué)習(xí)算法中最有影響力的機(jī)器學(xué)習(xí)算法之一。支持向量機(jī)的概念導(dǎo)入需要使用的包。1.from
sklearn
import
svm
#導(dǎo)入支持向量機(jī)模型
2.from
sklearn.datasets
import
load_iris
#導(dǎo)入鳶尾花數(shù)據(jù)集
3.from
sklearn.model_selection
import
train_test_split
#導(dǎo)入數(shù)據(jù)集劃分需要使用的包
4.from
sklearn.metrics
import
confusion_matrix
#導(dǎo)入混淆矩陣評價指標(biāo)
5.from
sklearn.metrics
import
accuracy_score
#導(dǎo)入準(zhǔn)確率評
支持向量機(jī)模型的代碼實現(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)
支持向量機(jī)模型的代碼實現(xiàn)劃分?jǐn)?shù)據(jù)集。1.#劃分訓(xùn)練集和測試集,將隨機(jī)數(shù)種子設(shè)置為1,便于復(fù)現(xiàn)模型,訓(xù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)
支持向量機(jī)模型的代碼實現(xiàn)實例化模型并進(jìn)行訓(xùn)練。1.#實例化模型,C是正則化程度,C的數(shù)值越大,懲罰力度越小,默認(rèn)為1,使用rbf核函數(shù)
2.model=svm.SVC(C=2.0,kernel='rbf',gamma=10,decision_function_shape='ovr')3.#訓(xùn)練模型,ravel將維度變?yōu)橐痪S
4.model.fit(train_data,train_label.ravel())
支持向量機(jī)模型的代碼實現(xiàn)進(jìn)行預(yù)測,并評價,采用混淆矩陣和準(zhǔn)確率進(jìn)行評價。1.#模型預(yù)測
2.pre_test=model.predict(test_data)
3.#準(zhǔn)確率評價
4.score=accuracy_score(test_label,pre_test)
5.print(score)
6.#混淆矩陣評價
7.cm=confusion_matrix(test_label,pre_test)
8.print(cm)
支持向量機(jī)模型的代碼實現(xiàn)KNN模型機(jī)器學(xué)習(xí)分類算法——K最近鄰算法,簡稱KNN(K-Nearest-Neighbor)算法。它是有監(jiān)督學(xué)習(xí)分類算法的一種。在學(xué)習(xí)KNN算法的過程中,只需要把握兩個原則就好了。第1個原則是“少數(shù)服從多數(shù)”;第2個原則是“資格”,就是是否有資格進(jìn)行投票。
KNN(K-Nearest-Neighbor)機(jī)器學(xué)習(xí)分類算法——K最近鄰算法,簡稱KNN(K-Nearest-Neighbor)算法。它是有監(jiān)督學(xué)習(xí)分類算法的一種。在學(xué)習(xí)KNN算法的過程中,只需要把握兩個原則就好了。第1個原則是“少數(shù)服從多數(shù)”;第2個原則是“資格”,就是是否有資格進(jìn)行投票。
KNN(K-Nearest-Neighbor)KNN算法主要包括4個步驟,(1)準(zhǔn)備數(shù)據(jù),對數(shù)據(jù)進(jìn)行預(yù)處理。(2)計算測試樣本點(diǎn)(也就是待分類點(diǎn))到其他每個樣本點(diǎn)的距離(選定度量距離的方法)。(3)對每個距離進(jìn)行排序,選出距離最小的K個點(diǎn)。(4)對K個點(diǎn)所屬的類進(jìn)行比較,按照“少數(shù)服從多數(shù)”的原則(多數(shù)表決思想),將測試樣本點(diǎn)歸入K個點(diǎn)中占比最高的一類中。
KNN(K-Nearest-Neighbor)導(dǎo)入需要使用的包,這里以紅酒數(shù)據(jù)集為例。1.#導(dǎo)入需要使用的包
2.#導(dǎo)入NumPy
3.import
numpy
as
np
4.#導(dǎo)入紅酒數(shù)據(jù)集需要使用的包
5.from
sklearn.datasets
import
load_wine
6.#導(dǎo)入劃分?jǐn)?shù)據(jù)集需要使用的包
7.from
sklearn.model_selection
import
train_test_split
8.#導(dǎo)入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)劃分?jǐn)?shù)據(jù)集為測試集和訓(xùn)練集,使用默認(rèn)的劃分比例,也就是數(shù)據(jù)集的25%為測試集。1.#將數(shù)據(jù)集劃分為測試集和訓(xùn)練集
2.features_train,features_test,target_train,target_test=train_test_split(RedWine_data.data,RedWine_data.target)
KNN的代碼實現(xiàn)實例化KNN模型,并進(jìn)行訓(xùn)練。這里使用的K值為5,讀者可以試試其他不同的K值對模型的影響。1.#實例化一個KNN模型,n_neighbors為超參數(shù),就是K值
2.KNN_Classifier_Model=KNeighborsClassifier(n_neighbors=5)
3.#進(jìn)行訓(xùn)練
4.KNN_Classifier_Model.fit(features_train,target_train)
KNN的代碼實現(xiàn)對測試集進(jìn)行預(yù)測,并打印預(yù)測結(jié)果和真實結(jié)果。1.#對測試集進(jìn)行預(yù)測
2.target_pre=KNN_Classifier_Model.predict(features_test)
3.#打印預(yù)測結(jié)果
4.print(target_pre)
5.#打印真實結(jié)果
6.print(target_test)
KNN的代碼實現(xiàn)最后對模型進(jìn)行評價。1.#對模型進(jìn)行評價
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)隨機(jī)森林模型隨機(jī)森林,顧名思義,即使用隨機(jī)的方式建立一個森林,這個森林由很多的決策樹組成,并且每一棵決策樹之間是相互獨(dú)立的。如果訓(xùn)練集有M個樣本,則對于每棵決策樹而言,以隨機(jī)且有放回的方式從訓(xùn)練集中抽取N個訓(xùn)練樣本(N<M),作為該決策樹的訓(xùn)練集。除采用樣本隨機(jī)外,隨機(jī)森林還采用了特征隨機(jī)。假設(shè)每個樣本有K個特征,從所有特征中隨機(jī)選取k個特征(k≤K),選擇最佳分割特征作為節(jié)點(diǎn)建立CART決策樹,重復(fù)該步驟,建立m棵CART決策樹。這些樹就組成了森林,這便是隨機(jī)森林名字的由來。
隨機(jī)森林算法(RandomForestAlgorithm)導(dǎo)入需要使用的庫。1.#導(dǎo)入需要使用的庫
2.#導(dǎo)入隨機(jī)森林算法
3.from
sklearn.ensemble
import
RandomForestClassifier
4.#導(dǎo)入鳶尾花數(shù)據(jù)集需要使用的包
5.from
sklearn.datasets
import
load_iri
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何講解旅游方案
- 精益管理在醫(yī)療供應(yīng)鏈中的滲透
- 精準(zhǔn)營養(yǎng):高血壓個體化DASH飲食方案
- 精準(zhǔn)醫(yī)療資源的優(yōu)化配置:國際模式與本地策略
- 精準(zhǔn)醫(yī)療背景下臨床技能轉(zhuǎn)化體系
- 精準(zhǔn)醫(yī)療時代復(fù)發(fā)監(jiān)測的技術(shù)革新
- 精準(zhǔn)醫(yī)療個體化健康管理的多組學(xué)方案
- 精準(zhǔn)醫(yī)學(xué)視角下自身免疫病治療新靶點(diǎn)發(fā)現(xiàn)
- 精準(zhǔn)醫(yī)學(xué)的臨床價值:療效與經(jīng)濟(jì)的雙重驗證
- 精準(zhǔn)醫(yī)學(xué)與再生醫(yī)學(xué):組織工程精準(zhǔn)構(gòu)建
- 假體隆胸后查房課件
- 2023年互聯(lián)網(wǎng)新興設(shè)計人才白皮書
- 河南省鄭氏中原纖維素有限公司年產(chǎn) 0.2 萬噸預(yù)糊化淀粉、0.5 萬噸羧甲基纖維素鈉、1.3 萬噸羧甲基淀粉鈉項目環(huán)境影響報告
- DB52-T 785-2023 長順綠殼蛋雞
- c語言知識點(diǎn)思維導(dǎo)圖
- 關(guān)于地方儲備糧輪換業(yè)務(wù)會計核算處理辦法的探討
- GB/T 40303-2021GH4169合金棒材通用技術(shù)條件
- GB/T 29319-2012光伏發(fā)電系統(tǒng)接入配電網(wǎng)技術(shù)規(guī)定
- GB/T 1773-2008片狀銀粉
- GB/T 12007.4-1989環(huán)氧樹脂粘度測定方法
- (完整版)北京全套安全資料表格
評論
0/150
提交評論