中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

天津制作網(wǎng)頁東莞seo托管

天津制作網(wǎng)頁,東莞seo托管,wordpress修改首頁調(diào)用,廈門 外貿(mào)公司做網(wǎng)站目錄 模型選擇與調(diào)優(yōu) 1、介紹 模型選擇(Model Selection): 調(diào)優(yōu)(Hyperparameter Tuning): 本章重點 2、交叉驗證 介紹 為什么需要交叉驗證 數(shù)據(jù)處理 3、?超參數(shù)搜索-網(wǎng)格搜索(Grid Search) 介紹…

目錄

模型選擇與調(diào)優(yōu)

1、介紹

模型選擇(Model Selection):

調(diào)優(yōu)(Hyperparameter Tuning):

本章重點

2、交叉驗證

介紹

為什么需要交叉驗證

數(shù)據(jù)處理

3、?超參數(shù)搜索-網(wǎng)格搜索(Grid Search)

介紹

API

🔺Facebook簽到位置預(yù)測K值調(diào)優(yōu)


?🍃作者介紹:準(zhǔn)大三網(wǎng)絡(luò)工程專業(yè)在讀,努力學(xué)習(xí)Java,涉獵深度學(xué)習(xí),積極輸出優(yōu)質(zhì)文章

?分類算法系列①:初識概念

?分類算法系列②:KNN(K-近鄰)算法

🍁您的三連支持,是我創(chuàng)作的最大動力🌹

模型選擇與調(diào)優(yōu)

1、介紹

在機(jī)器學(xué)習(xí)中,模型選擇(Model Selection)和調(diào)優(yōu)(Hyperparameter Tuning)是優(yōu)化模型性能的關(guān)鍵步驟。模型選擇涉及選擇合適的算法或模型架構(gòu),而調(diào)優(yōu)則涉及調(diào)整模型的超參數(shù)以達(dá)到最佳性能。以下是關(guān)于這兩個步驟的詳細(xì)介紹:

模型選擇(Model Selection):

模型選擇是選擇在給定任務(wù)中使用哪種算法或模型的過程。不同的算法適用于不同的問題,因此選擇適當(dāng)?shù)乃惴▽τ谌〉昧己玫男阅苤陵P(guān)重要。模型選擇通常涉及以下步驟:

  1. 問題定義:明確定義要解決的問題,例如分類、回歸、聚類等。
  2. 數(shù)據(jù)準(zhǔn)備:對數(shù)據(jù)進(jìn)行預(yù)處理、清洗和特征工程,以確保數(shù)據(jù)適用于所選的算法。
  3. 候選模型:根據(jù)問題和數(shù)據(jù)類型,選擇幾種合適的模型作為候選,例如決策樹、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等。
  4. 訓(xùn)練和驗證:使用交叉驗證等技術(shù),在訓(xùn)練數(shù)據(jù)上訓(xùn)練候選模型,并在驗證集上評估其性能。
  5. 性能比較:比較不同模型在驗證集上的性能指標(biāo),如準(zhǔn)確率、精確度、召回率等。
  6. 選擇最佳模型:根據(jù)性能比較,選擇性能最佳的模型作為最終模型。

調(diào)優(yōu)(Hyperparameter Tuning):

調(diào)優(yōu)是指為機(jī)器學(xué)習(xí)模型選擇最佳的超參數(shù),以優(yōu)化模型的性能。超參數(shù)是在訓(xùn)練過程之外設(shè)置的參數(shù),它們決定了模型的結(jié)構(gòu)和行為,如學(xué)習(xí)率、正則化參數(shù)、樹的深度等。調(diào)優(yōu)的目標(biāo)是找到使模型在驗證集上表現(xiàn)最佳的超參數(shù)組合。調(diào)優(yōu)通常包括以下步驟:

  1. 選擇超參數(shù)空間:選擇要調(diào)優(yōu)的超參數(shù)和它們的可能取值范圍。
  2. 搜索方法:選擇超參數(shù)搜索方法,如網(wǎng)格搜索、隨機(jī)搜索、貝葉斯優(yōu)化等。
  3. 交叉驗證:使用交叉驗證將數(shù)據(jù)分為訓(xùn)練集和驗證集,以評估不同超參數(shù)組合的性能。
  4. 評價指標(biāo):選擇適當(dāng)?shù)脑u價指標(biāo)來衡量不同超參數(shù)組合的性能。
  5. 調(diào)優(yōu)過程:根據(jù)選擇的搜索方法,不斷嘗試不同的超參數(shù)組合,并記錄它們的性能。
  6. 選擇最佳組合:從調(diào)優(yōu)過程中選擇在驗證集上性能最佳的超參數(shù)組合作為最終模型的超參數(shù)。

模型選擇和調(diào)優(yōu)是迭代過程,可能需要多次嘗試不同的模型和超參數(shù)組合,以找到最適合任務(wù)的模型并達(dá)到最佳性能。使用交叉驗證、可視化工具和自動化調(diào)優(yōu)庫(如scikit-learn中的GridSearchCV和RandomizedSearchCV)可以幫助更有效地進(jìn)行模型選擇和調(diào)優(yōu)。

本章重點

本章重點是交叉驗證!結(jié)合的示例是之前的Facebook簽到位置問題,對之前使用KNN算法完成的Facebook簽到位置預(yù)測進(jìn)行調(diào)優(yōu),使其結(jié)果更加準(zhǔn)確。

2、交叉驗證

介紹

交叉驗證(Cross-Validation)是一種用于評估機(jī)器學(xué)習(xí)模型性能的技術(shù),它有助于更準(zhǔn)確地估計模型在未知數(shù)據(jù)上的表現(xiàn)。交叉驗證通過在不同的數(shù)據(jù)子集上進(jìn)行多次訓(xùn)練和驗證,提供了對模型泛化性能的更穩(wěn)定估計。

在傳統(tǒng)的訓(xùn)練-測試集劃分中,數(shù)據(jù)被劃分為訓(xùn)練集和測試集,然后使用訓(xùn)練集訓(xùn)練模型,使用測試集評估模型性能。然而,這種方法可能因為數(shù)據(jù)的劃分方式而導(dǎo)致評估結(jié)果不穩(wěn)定,特別是在數(shù)據(jù)量有限的情況下。交叉驗證通過將數(shù)據(jù)劃分為多個折(folds),多次進(jìn)行訓(xùn)練和測試,從而克服了這些問題。

以下是交叉驗證的常見方法:

  1. k折交叉驗證(k-Fold Cross-Validation)
    • 將數(shù)據(jù)分為k個大小相似的折(folds)。
    • 每次將其中一個折作為驗證集,其他k-1個折作為訓(xùn)練集。
    • 重復(fù)這個過程k次,每次選擇不同的折作為驗證集,其他折作為訓(xùn)練集。
    • 計算k次驗證的平均性能作為最終性能評估。
  2. 留一交叉驗證(Leave-One-Out Cross-Validation,LOOCV)
    • 將每個樣本單獨作為一個折,其他樣本作為訓(xùn)練集。
    • 執(zhí)行n次訓(xùn)練和驗證,n為樣本數(shù)量。
    • 計算n次驗證的平均性能作為最終性能評估。
    • 適用于小樣本數(shù)據(jù)集,但計算開銷較大。
  3. 隨機(jī)折交叉驗證(Stratified k-Fold Cross-Validation)
    • 類似于k折交叉驗證,但在劃分折時會保持各個類別的比例相同。
    • 對于不均衡的數(shù)據(jù)集,這種方法可以更好地保持類別分布。

交叉驗證的優(yōu)勢在于它能夠提供更可靠的模型性能估計,因為每個樣本都會被用于訓(xùn)練和驗證,減少了數(shù)據(jù)劃分可能引發(fā)的偶然性影響。交叉驗證還有助于選擇合適的模型和調(diào)整超參數(shù),從而提高模型的泛化性能。在實際應(yīng)用中,k折交叉驗證是最常用的方法之一,但根據(jù)問題的特點和數(shù)據(jù)集的大小,選擇適當(dāng)?shù)慕徊骝炞C方法非常重要。

為什么需要交叉驗證

交叉驗證目的:為了讓被評估的模型更加準(zhǔn)確可信

數(shù)據(jù)處理

一般情況下,數(shù)據(jù)分為訓(xùn)練集和測試集,但是為了讓從訓(xùn)練得到模型結(jié)果更加準(zhǔn)確。

做以下處理:

  1. 訓(xùn)練集:訓(xùn)練集+驗證集
  2. 測試集:測試集

?

那么對于之前的Facebook簽到位置預(yù)測問題的k值,如何取得一個合理的值?下面使用超參數(shù)搜索-網(wǎng)格搜索(Grid Search)

3、?超參數(shù)搜索-網(wǎng)格搜索(Grid Search)

?

介紹

超參數(shù)網(wǎng)格搜索(Grid Search)是一種常用的超參數(shù)調(diào)優(yōu)方法,用于尋找最佳的超參數(shù)組合,從而優(yōu)化機(jī)器學(xué)習(xí)模型的性能。它通過在預(yù)定義的超參數(shù)空間中搜索所有可能的組合,然后評估每個組合的性能,最終選擇性能最佳的組合作為最終的超參數(shù)設(shè)置。

以下是超參數(shù)網(wǎng)格搜索的步驟和原理:

  1. 超參數(shù)空間定義: 首先,為模型選擇要調(diào)優(yōu)的超參數(shù),并為每個超參數(shù)指定可能的取值范圍。例如,對于支持向量機(jī),可以選擇C(正則化參數(shù))和kernel(核函數(shù)類型)作為需要調(diào)優(yōu)的超參數(shù),為它們指定一組候選取值。
  2. 生成網(wǎng)格: 將每個超參數(shù)的可能取值組合成一個網(wǎng)格,生成所有可能的超參數(shù)組合。這個網(wǎng)格中的每個點都代表一組超參數(shù)設(shè)置。
  3. 交叉驗證: 對于每個超參數(shù)組合,使用交叉驗證來評估模型在驗證集上的性能。通常使用k折交叉驗證,對于每個超參數(shù)組合,訓(xùn)練模型k次,并計算平均性能指標(biāo)。
  4. 選擇最佳組合: 根據(jù)交叉驗證的結(jié)果,選擇性能最佳的超參數(shù)組合作為最終的選擇。通常根據(jù)準(zhǔn)確率、F1得分、均方誤差等評價指標(biāo)來衡量性能。
  5. 應(yīng)用最佳超參數(shù): 使用在步驟4中選擇的最佳超參數(shù)組合來訓(xùn)練模型,然后在獨立的測試集上評估其性能。

超參數(shù)網(wǎng)格搜索的優(yōu)點在于它是一種簡單而有效的方法,可以在有限的計算資源下嘗試多種超參數(shù)組合。然而,網(wǎng)格搜索的缺點是它可能會對計算資源造成較大的負(fù)擔(dān),特別是在超參數(shù)空間較大時。為了提高效率,可以使用隨機(jī)搜索等方法來在超參數(shù)空間中采樣,以更快地找到性能較好的超參數(shù)組合。

API

sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)

????????對估計器的指定參數(shù)值進(jìn)行詳盡搜索

????????estimator:估計器對象

????????param_grid:估計器參數(shù)(dict){“n_neighbors”:[1,3,5]}

????????cv:指定幾折交叉驗證

????????fit:輸入訓(xùn)練數(shù)據(jù)

????????score:準(zhǔn)確率

結(jié)果分析:

????????bestscore:在交叉驗證中驗證的最好結(jié)果

????????bestestimator:最好的參數(shù)模型

????????cvresults:每次交叉驗證后的驗證集準(zhǔn)確率結(jié)果和訓(xùn)練集準(zhǔn)確率結(jié)果

🔺Facebook簽到位置預(yù)測K值調(diào)優(yōu)

使用網(wǎng)格搜索估計器,在原來的KNN算法實現(xiàn)Facebook簽到位置預(yù)測的代碼基礎(chǔ)上,新的修改如下代碼:

# 使用網(wǎng)格搜索和交叉驗證找到合適的參數(shù)
knn = KNeighborsClassifier()param = {"n_neighbors": [3, 5, 10]}gc = GridSearchCV(knn, param_grid=param, cv=2)gc.fit(x_train, y_train)print("選擇了某個模型測試集當(dāng)中預(yù)測的準(zhǔn)確率為:", gc.score(x_test, y_test))# 訓(xùn)練驗證集的結(jié)果
print("在交叉驗證當(dāng)中驗證的最好結(jié)果:", gc.best_score_)
print("gc選擇了的模型K值是:", gc.best_estimator_)
print("每次交叉驗證的結(jié)果為:", gc.cv_results_)

代碼解釋:

創(chuàng)建KNN分類器:knn = KNeighborsClassifier()

定義超參數(shù)空間:param = {"n_neighbors": [3, 5, 10]}

創(chuàng)建GridSearchCV實例,傳入KNN分類器實例和定義好的超參數(shù)空間,cv=2表示使用2折交叉驗證gc = GridSearchCV(knn, param_grid=param, cv=2)

執(zhí)行網(wǎng)格搜索和交叉驗證:gc.fit(x_train, y_train)

評估測試集性能,使用訓(xùn)練好的網(wǎng)格搜索模型在測試集上進(jìn)行預(yù)測并輸出準(zhǔn)確率:print("選擇了某個模型測試集當(dāng)中預(yù)測的準(zhǔn)確率為:", gc.score(x_test, y_test))

打印交叉驗證結(jié)果:

  • gc.best_score_:輸出在交叉驗證中獲得的最佳性能指標(biāo)。
  • gc.best_estimator_:輸出最佳性能對應(yīng)的模型,包括超參數(shù)設(shè)置。
  • gc.cv_results_:輸出每次交叉驗證的結(jié)果,包括參數(shù)設(shè)置和性能指標(biāo)。

回顧k值交叉驗證:

?

KNN調(diào)優(yōu)全部代碼:

# -*- coding: utf-8 -*-
# @Author:︶ㄣ釋然
# @Time: 2023/8/30 23:48
import pandas as pd
from sklearn.model_selection import train_test_split  # 將數(shù)據(jù)集分割為訓(xùn)練集和測試集。
from sklearn.neighbors import KNeighborsClassifier  # 實現(xiàn)KNN分類器
from sklearn.preprocessing import StandardScaler  # 特征標(biāo)準(zhǔn)化
from sklearn.model_selection import GridSearchCV  # 網(wǎng)格搜索'''
sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)對估計器的指定參數(shù)值進(jìn)行詳盡搜索estimator:估計器對象param_grid:估計器參數(shù)(dict){“n_neighbors”:[1,3,5]}cv:指定幾折交叉驗證fit:輸入訓(xùn)練數(shù)據(jù)score:準(zhǔn)確率
結(jié)果分析:bestscore:在交叉驗證中驗證的最好結(jié)果_bestestimator:最好的參數(shù)模型cvresults:每次交叉驗證后的驗證集準(zhǔn)確率結(jié)果和訓(xùn)練集準(zhǔn)確率結(jié)果
'''
def knn_GridSearch():"""K近鄰算法預(yù)測入住位置類別:return:"""# 一、處理數(shù)據(jù)以及特征工程# 1、讀取收,縮小數(shù)據(jù)的范圍data = pd.read_csv("./data/FBlocation/train.csv")# 數(shù)據(jù)邏輯篩選操作 df.query()data = data.query("x > 1.0 & x < 1.25 & y > 2.5 & y < 2.75")# 刪除time這一列特征data = data.drop(['time'], axis=1)print(data)# 刪除入住次數(shù)少于三次位置place_count = data.groupby('place_id').count()tf = place_count[place_count.row_id > 3].reset_index()data = data[data['place_id'].isin(tf.place_id)]# 3、取出特征值和目標(biāo)值y = data['place_id']# y = data[['place_id']]x = data.drop(['place_id', 'row_id'], axis=1)# 4、數(shù)據(jù)分割與特征工程?# (1)、數(shù)據(jù)分割x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)# (2)、標(biāo)準(zhǔn)化std = StandardScaler()# 隊訓(xùn)練集進(jìn)行標(biāo)準(zhǔn)化操作x_train = std.fit_transform(x_train)print(x_train)# 進(jìn)行測試集的標(biāo)準(zhǔn)化操作x_test = std.fit_transform(x_test)# 二、算法的輸入訓(xùn)練預(yù)測# K值:算法傳入?yún)?shù)不定的值    理論上:k = 根號(樣本數(shù))# K值:后面會使用參數(shù)調(diào)優(yōu)方法,去輪流試出最好的參數(shù)[1,3,5,10,20,100,200]# 使用網(wǎng)格搜索和交叉驗證找到合適的參數(shù)knn = KNeighborsClassifier()param = {"n_neighbors": [3, 5, 10]}gc = GridSearchCV(knn, param_grid=param, cv=2)gc.fit(x_train, y_train)print("選擇了某個模型測試集當(dāng)中預(yù)測的準(zhǔn)確率為:", gc.score(x_test, y_test))# 訓(xùn)練驗證集的結(jié)果print("在交叉驗證當(dāng)中驗證的最好結(jié)果:", gc.best_score_)print("gc選擇了的模型K值是:", gc.best_estimator_)print("每次交叉驗證的結(jié)果為:", gc.cv_results_)if __name__ == '__main__':knn_GridSearch()

執(zhí)行結(jié)果:

?

http://www.risenshineclean.com/news/49535.html

相關(guān)文章:

  • 蘭州易天網(wǎng)站建設(shè)公司有哪些?產(chǎn)品策劃方案怎么做
  • 廣州十大純設(shè)計公司seo難不難學(xué)
  • 網(wǎng)站建設(shè)訂單模板下載長沙seo網(wǎng)站優(yōu)化公司
  • 最便宜的網(wǎng)站建設(shè)2023年最新新聞簡短摘抄
  • 蘭州拼團(tuán)網(wǎng)站建設(shè)競價賬戶托管哪家好
  • 從零開始做網(wǎng)站數(shù)據(jù)庫精準(zhǔn)客戶運營推廣
  • 微信公眾號網(wǎng)站導(dǎo)航怎么做百度優(yōu)化推廣
  • 建筑公司網(wǎng)站有哪些國家新聞最新消息今天
  • wordpress 自定義注冊表單前端seo優(yōu)化
  • 百度關(guān)鍵字優(yōu)化安徽seo網(wǎng)絡(luò)推廣
  • wordpress插件加密seo搜索引擎優(yōu)化哪家好
  • wordpress圖片網(wǎng)站關(guān)鍵詞研究工具
  • 哪些網(wǎng)站可以做百科參考資料目前最好的引流推廣方法
  • 臺州做網(wǎng)站是什么站長之家seo概況查詢
  • 網(wǎng)站建設(shè)信息公開和解讀回應(yīng)網(wǎng)站優(yōu)化怎么操作
  • 網(wǎng)站的ico圖標(biāo)做多大國內(nèi)的搜索引擎有哪些
  • 行業(yè)網(wǎng)站建設(shè)搜索引擎營銷特點是什么
  • 有個網(wǎng)站專做品牌 而且價格便宜百度商店
  • 溫州人才網(wǎng)站開發(fā)汕頭seo優(yōu)化公司
  • vue做網(wǎng)站的實例西安外包公司排行
  • 平陽手機(jī)網(wǎng)站制作網(wǎng)絡(luò)營銷的概述
  • 廣告人網(wǎng)站網(wǎng)絡(luò)營銷模式下品牌推廣研究
  • 做游戲還是做網(wǎng)站好外貿(mào)網(wǎng)站推廣公司
  • 怎樣給自己的網(wǎng)站做優(yōu)化夜狼seo
  • wordpress固定鏈接改不回來合肥網(wǎng)站優(yōu)化seo
  • 廣告公司logo企業(yè)seo服務(wù)
  • 沈陽網(wǎng)站制作聚藝科技成都最新數(shù)據(jù)消息
  • 建站資源低價刷粉網(wǎng)站推廣
  • 北京網(wǎng)站建設(shè)價格網(wǎng)站注冊查詢
  • 互聯(lián)網(wǎng)輿情信息中心北京優(yōu)化seo排名優(yōu)化