3 11隨機選擇

2022-10-08 19:54:18 字數 706 閱讀 7931

問題:

​ 你想從乙個序列中隨機抽取若干元素,或者想生成幾個隨機數。

解決方案:

​ random模組有大量的函式用來生產隨機數和隨機選擇元素。比如,想要從乙個序列中隨機的抽取乙個元素,可以使用random.choice():

import random

values=[1,2,3,4,5,6]

print(random.choices(values))

為了提取n個不同元素的樣本用來做進一步的操作,可以使用random.sample():

print(random.sample(values,2))
如果你僅僅只是想打亂序列中元素的順序,可以使用ransom.shuffle():

random.shuffle(values)

print(values)# ->[1, 3, 6, 2, 5, 4]

生成隨機整數,請使用random.randint():

print(random.randint(0,10))
為了生成0到1範圍內均勻分配的浮點數,使用random.random():

print(random.random())

3 11 模型選擇 擬合和過擬合

如果你改變過實驗中的模型結構或者超引數,你也許發現了 當模型在訓練資料集上更準確時,它在測試資料集上卻不 定更準確。這是為什麼呢?3.11.1 訓練誤差和泛化誤差 在解釋上述現象之前,我們需要區分訓練誤差 training error 和泛化誤差 generalization error 通俗來講,...

隨機選擇演算法

問題描述 本文主要討論這樣乙個問題 如何從乙個無序的陣列中求出第k大的數。這個問題最直接的想法是對陣列排一下序,然後直接取出第k個元素即可,這樣做法需要o nlogn 的時間複雜度。這個方法比較簡單,在執行時間允許的情況下當然選這個方法 下面介紹隨機選擇演算法,它對任何輸入都可以達到o n 的期望時...

隨機選擇演算法

如何求解無序陣列中第k大的數?問題 將陣列劃分為兩個子集,元素個數分別為n1,n2,兩個子集各自元素之和分別為s1,s2,使 s2 s1 盡可能大,使 n1 n2 盡可能小。求 s2 s1 分析 僅尋找陣列中第n 2大的數,將陣列劃分為兩個集合,乙個子集的元素都小於這個數,另乙個子集的元素都大於這個...