告別死背語法與死背公式!在這裡,我們用生動的動畫與視覺化比喻,帶你「看見」Python 程式碼在記憶體裡發生什麼事、iPAS 中級的程式題到底在寫什麼,以及會考的那些數學實際上長什麼樣子。
生產線平均每小時 5 個瑕疵品,剛好 5 個的機率是多少?逐行拆開 scipy.stats.poisson:poisson 是物件不是函式、變數為什麼不能叫 lambda、numpy 其實沒用到;把 pmf、cdf、sf 和「剛好、以下、少於、超過、以上」一一對應,實測 0.1755、0.4405、0.9863、0.0318,再用 10 萬小時的模擬看平均發生率不固定時會怎樣。附 3 支動畫影片和互動實驗。
NEW200 筆 YouTube、Facebook、報紙廣告預算和銷售額:describe() 的 count、mean、四分位數怎麼讀;isna 和 isnull 是同一個、isNaN 不存在;LinearRegression().fit(X, y) 和 sm.OLS(y, X2) 的順序剛好相反,寫反時一個馬上出錯、一個要到 summary() 才出錯;p 值 0.914 為什麼不顯著。用公開資料重現考卷每一個數字。附 3 支動畫影片和互動實驗。
透視 NumPy 在計算 MSE(均方誤差)時的向量化操作與底層記憶體運作機制,揭開機器學習評估指標的微觀世界。
NEW八個人的合唱團,每次排練每人抽一次籤:np.random.binomial 交出 0/1 遮罩,乘上輸入再除以 p。逐行拆開這是哪一種正則化:種子 42 的遮罩長什麼樣、同一份 x 抽 10 萬次再平均為什麼回到原值、不除以 p 平均只剩 0.8 倍、預測模式為什麼原封不動交回同一個物件,再和 L1、L2、Batch Normalization、PyTorch 的 nn.Dropout 對照。附 3 支動畫影片和互動實驗。
用「倉庫 + 紙條」的比喻,一眼看懂 Python 裡 Class、Instance 和 Variable 的愛恨情仇。
程式是 114 年第二次 AI 應用規劃師-中級-第三科:機器學習技術與應用 40題
探索更多 NumPy 的記憶體操作與進階陣列變化機制。
程式是 114 年第二次 AI 應用規劃師-中級-第三科:機器學習技術與應用 41題
只有 3 行的 pandas 程式,一個字一個字拆:read_csv 怎麼照 DataFrame 設計圖做出表格、第 4 行的方括號和點各在做什麼、describe 的 8 個數字,以及收入右偏時為什麼要用中位數補值。再揭開一個考卷沒說的陷阱:選項那行 fillna(inplace=True) 在 pandas 3 根本補不進 df。附 3 支動畫影片、補值模擬器,和可以下載資料直接跑的完整程式。
NEW第 41 題的題組後三題,考卷沒印程式,這頁把情境寫成一支 scikit-learn 程式逐行拆開。A、B、C 編成 1、2、3,線性迴歸只能畫一條直線,把 C 區高估 62;隨機森林只問「≤ 1.5?≤ 2.5?」,三區全中。2000 人只有 1 個外掛,全部猜正常就有 99.95% 準確率,考卷那張全是 1.00 的報告少了 support。作弊零容忍時,predict_proba 的門檻從 0.5 降到 0.0037,30 位外掛才全部抓到。附 3 支動畫影片和 3 個互動實驗。
NEW「總貢獻營收最高的前 3 名客戶」,四個選項竟然算出四種不同的前 3 名:單筆最大、編號最前、買最多次,只有 groupby → sum → nlargest 才是總貢獻。用 20 張收據分籃子,看懂 groupby 交出的是一個「還沒加總」的物件、max 和 sum 差在哪、head 為什麼不等於前 3 名,以及 nlargest 為什麼比排序快。附 3 支動畫影片和收據分籃子互動實驗。
NEW只有 8 行的 Keras 程式,一個字一個字拆:import 進來的是類別還是函式、物件和方法怎麼分、Dense 的每個參數在控制什麼、第一層為什麼有 50,240 個參數,以及 softmax 為什麼要配 categorical_crossentropy。附 3 支動畫影片、輸出層互動實驗室,和可以貼進 Colab 直接跑的完整程式。
NEW只有 7 行的 torchvision 程式,一個字一個字拆:Compose 怎麼把四台「機器」串成一條生產線、__init__、self、__call__ 各負責什麼,以及 RandomHorizontalFlip 為什麼會把 b 翻成 d、標籤卻還寫著 b,驗證損失還一路下降把問題藏起來。附 3 支動畫影片、資料增強抽籤機,和不用下載資料集就能跑的完整程式。
NEW只有 8 行的 PyTorch 程式,一個字一個字拆:resnet50 為什麼是函式、nn.Linear 和 Adam 為什麼是類別、for 迴圈怎麼把 161 個參數的 requires_grad 全部關掉,以及 model.fc 換上新零件後,為什麼只剩 4,098 個數字在學。再真的訓練一步,親眼看到前面的權重一個都沒變。附 3 支動畫影片、ResNet-50 凍結控制台,和可以貼進 Colab 直接跑的完整程式。
NEW考卷只給了一張訓練曲線圖:訓練 0.81、驗證 0.72。先把沒印出來的 compile、fit、plt.plot 補齊,一層層拆開 fit 交回的 History 物件、history.history 字典和 list 索引(為什麼圖上的 6 是第 7 輪)。再把四個選項的情況各真的訓練一次 CIFAR-10,親眼看學習率太低、批次太大、低度擬合、過擬合的曲線各長什麼樣子。附 3 支動畫影片和學習曲線判讀器。
NEW題目沒有程式,只問「超過 50 層又怕梯度消失,選哪種架構」。答案 ResNet 的關鍵,在 torchvision 原始碼裡只有一行 out += identity:逐行拆開真正的 Bottleneck.forward,看懂 identity = x 為什麼不是複製、加法為什麼能讓梯度跨層直達。再實測 50 層網路有沒有捷徑:第 1 層的梯度從 10 的負 21 次方變成 0.075。附 3 支動畫影片和梯度實驗室。
StandardScaler → PCA → LogisticRegression 串成一條 Pipeline 再交叉驗證,第 1 行走到第 17 行一行都不跳。可切「零程式基礎/有程式底子」兩種模式,57 個名詞點開就有三層漸進式說明。附真實資料集檢視器、5 折切分檢視器與 6 個互動實驗室,分數全是實跑出來的。
NEW給一個 2×2 的 confusion_matrix 求正類的 Recall。這題最狠的地方是四個選項全都是真實存在的指標——0.82 是 Precision、0.95 是 NPV、0.10 是 FPR,只有 0.90 才是 Recall。逐行拆解 cm.ravel() 與分母該怎麼選,附混淆矩陣計算機、判定門檻連動實驗室與類別不平衡陷阱示範。
NEW正類只佔 1% 的詐欺資料,全預測負類的基準模型 accuracy 就有 0.99——但它一筆詐欺都沒抓到。逐行拆解那五行程式,再把 PR-AUC vs ROC-AUC、class_weight、重抽樣與依成本調門檻四種後續方案講清楚,順便揭穿「把驗證集正類複製到訓練集」為什麼是雙重洩漏。四個互動實驗室,數字全是實跑出來的。
NEWparam_grid 開出 3 × 4 × 2 個組合、cv=5、refit=False——到底 fit 了幾次?兩個乘法一步一步拆:組合數怎麼連乘、折數怎麼再乘上去、refit 什麼時候要加一。附組合檢視器、五折之旅動畫、refit 開關與搜尋成本計算機四個互動實驗室,實跑彩蛋:24 個組合其實只有 12 種模型。
NEW重要性最高的特徵是「原因」嗎?0 分就是永遠沒用?它是相關係數嗎?三大誤讀全部用實跑反例拆掉:冰淇淋因果模擬(重要性 0.609、介入後真實 y 不變)、常數欄位恰好 0 分、分身攤分實驗。順便把 zip、dict、sorted、lambda 那兩行連環呼叫一次講懂。
NEW訓練滿分、驗證掉三成——四個選項全部實跑對照:只加樹 val 卡在平台、用 training accuracy 選參遇到 12 組滿分並列、一路加深反而更糟;用 CV 限制 max_depth 與 min_samples_leaf 才讓 val 從 0.722 升到 0.767、單棵樹從 9.3 層剪到 5 層。附複雜度曲線與選參陷阱實驗室。
NEWWine 的 proline 一欄獨佔 99.77% 的變異——未縮放時兩瓶酒的距離 99% 由它決定,K-means 淪為「只看一欄」(ARI 0.371,跟只用 proline 分群完全等價);標準化後升到 0.897。附距離解剖器、178 點分群對照散點與 DBSCAN eps 之旅,順便講清楚群號為什麼不是標籤。
NEW群號從 0 開始編,-1 是沒被任何密度群集收編的雜訊點。本站大海撈針,一字不差重現題目輸出 [ 0 0 -1 1 1 -1 0 1]——那兩個 -1 的圈內只有 3 點(含自己)。附核心/邊界/噪點判定器、月牙三視圖(DBSCAN ARI 0.955 vs K-means 0.479)、參數掃描(同一份資料噪點 0→300 筆)與 silhouette 陷阱。
NEW(32, 24, 5)=(幾筆, 幾步, 幾個特徵)。TensorFlow 實跑四個選項的下場:C、D 當場報錯,B (24, 32, 5) 竟然不報錯——默默回 24 個預測。附軸拆解器、滑動視窗工廠(100 步切出 77 筆)、參數點算(1,408 = 4×(80+256+16))與 return_sequences 對照。
NEW上線是拿過去預測未來,驗證就得照演——過去訓練、未來驗證、不可洗牌。實跑對照最震撼:同一個隨機森林,隨機 K-fold 打 0.980、TimeSeriesSplit 揭穿它 -1.828(上線預演 -0.949 站在誠實這邊)。附摺疊檢視器(expanding/rolling/gap)、洩漏顯微鏡(未來混入訓練 94%~100%)與內插外推散點。
NEW幾類幾座位+softmax;整數配 sparse、one-hot 配 categorical。四個選項全部下水實跑:正解 0.970;sigmoid+BCE 硬吃三類竟然跑得動——但損失一路鑽到 -17.75(交叉熵不可能是負的,這是配方壞掉的警報)。附 softmax 手算機與三份任務配方總表。
NEW歸零、前向、損失、反向、剪梯、更新——剪刀夾在梯度誕生與使用之間。三個錯序全部實跑:剪在反向前=剪空氣(clip 回傳 0.0)、剪在更新後=馬後炮(40 倍超速)、反向後歸零=冷凍庫(20 epoch 權重一動不動)。附梯度累積器(1×2×3× 親手按)與爆梯度救命現場。
NEW同一份預測、兩個 F1:macro 0.6465 誠實、weighted 0.9298 被 95% 的多數類拉高。拆段 30 秒填混淆矩陣、看破「0.2857 是 precision 不是 recall」的分母陷阱,再用門檻滑桿實跑:0.5 降到 0.05,recall 0.271→0.797、誤報 3→218 筆——多抓也多冤。
NEW三站生產線:補洞、縮放、模型。fit 依序在訓練資料「學」、predict 只「用」不再學——實跑對質:predict 前後四組參數 np.array_equal 全 True,X_test 的洞填訓練學到的 -0.12、不是自己的 -0.21。再實跑「重新 fit」的世界:單筆全零特徵人人同分 0.4965、含 NaN 單筆直接報錯。
NEW四段 scaler 程式只有一段乾淨:fit_transform 給訓練、transform 給測試——尺在訓練集刻一次。實跑:無漂移四方同分 0.7767 看不出誰作弊;漂移 +2.5 一來,誠實的 B 掉到 0.5、兩把尺的 C 假報 0.7767;合併刻尺的 A 更陰——換一批測試集,模型係數跟著翻號。
NEW寬表融成長表、月份×通路分組加總——六根條與 groupby sum 實跑一字不差(ax.patches 逐根對帳)。合計視角 1230/1220/1230 看似平穩,分通路才見 web 翻 1.73 倍、store 掉 42% 的大翻轉;再埋一刀版本考點:ci=None 已死,0.12 起請寫 errorbar=None。
NEW9 筆訂單闖兩道關卡:金額 >= 1000 刷掉兩筆(999 差一元出局、1000 整整好過關)、inner 對名單再刷三筆——5000 元大單死於 inactive、3000 元死於查無此人。4 筆存活帶上 region;再實跑 left 的 NaN、C 的空集合、D 的 anti-join 與一對多翻倍陷阱。
NEW四段程式全實跑對質:A 的 head 撈到名冊前三、B 撈到最低三筆單、C 的 tail 撈到墊底兩名——只有先 groupby 加總、再 nlargest 才是名次(手機 110000/筆電 105000/平板 60000)。加映單筆冠軍陷阱:手錶一張 48000 巨單稱王單筆榜,品類總額其實只排第四。
NEWapproxQuantile 的 0.01 是名次誤差不是金額——實跑:近似 399 元 vs 精確 404 元、差 5 元(0.1 檔差 86 元)。top10 四站全在 Spark 端 lazy 執行、與 pandas nlargest 跨引擎一字不差;反面實跑全表 collect:10 萬列 vs 10 列——差一萬倍。
NEW一個 None 讓整數欄默默升格 float64(實跑 [2022.0, nan, 2024.0]);median 跳洞內插出 2023.0 補回;astype('Int64') 收尾。加映:小寫 i 見 NaN 直接 IntCastingNaNError——報錯訊息還親自推薦 'Int64';大 I 不補洞也能裝 <NA>。
NEW一次一疊、只記兩個數字:串流累加與全載一字不差(784.866 元)、記憶體 5.4 vs 35.5 MB。「疊平均再平均」實跑高估 18.86 元——大疊小疊要加權(第 13 頁老戲);list()+concat 假串流峰值比全載還高。tracemalloc 四選項全實測。
NEW7 日移動平均+前一日銷售量的正解是 rolling(7)+shift(1)。shift(-1) 的作弊模型實跑 R²=1.0、係數 [−0.0, 1.0]——抄答案;部署日最後一列 NaN 當場穿幫。全期 mean 混未來、cumsum 走鐘 32.8 倍——四選項全實跑驗屍。
NEW逆向工程重現 p=0.021 一字不差:0.021 < 0.05 拒絕 H0、equal_var=False=Welch(df 76.7 帶小數)。ttest_rel 硬上直接 ValueError;排列檢定 10,000 次演出 p 的本義;病態案例 0.0087 vs 0.4106——保險絲的價值。
NEW先 corr 再 heatmap:實跑氣溫↔冰飲 +0.8956、手算一字不差。vmin=0 讓 12 格負相關集體隱形(−0.87 與 0 同色);餵原始 df 當場 ValueError;冰飲↔熱飲 −0.79 的假相關——偏相關 +0.03 拆穿第三變數。
NEWreader 是 TextFileReader 不是 DataFrame:一次一塊、邊讀邊加——實跑全載 1,304.8 MB vs 串流峰值 41.1 MB、region 欄 category 縮 93 倍;單機串流不是 Spark、字典編碼值不變。
跟著貓老師 Mochi 看懂矩陣怎麼相乘、怎麼改變圖形,以及順序為什麼不能亂換;再從圖片濾鏡一路連到 Transformer 與 ChatGPT 背後的矩陣運算。
NEW先把矩陣乘法一格一格算給你看,再玩維度接龍、向量羅盤與 PCA 主軸儀。不教數學系那套,只教 iPAS 真的會考的六件事:維度、NumPy 函式、餘弦相似度、特徵值、SVD、範數。
NEW點骰子自己組事件,親手驗證「互斥不等於獨立」;再用常態面積尺看 PDF 與 CDF 怎麼連動、二項分布什麼時候才能拿常態來近似。條件機率的分母到底是誰,一次搞定。
NEWt 檢定?ANOVA?卡方還是雙比例 Z?三步決策樹幫你選對,每個結果都附歷屆真題。另有 Z 檢定判決台(拒絕域、p 值、信賴區間一致性)與 Pearson/Spearman/Kendall 抗打擊實驗。
NEW「訓練不收斂」到底是哪一種病?梯度消失放大鏡把看不見的梯度畫成長條圖,一眼看懂 Sigmoid 為何害人、ResNet 為何有效、He 初始化差在哪個 √2。還有 Batch/Epoch 換算器與超參數搜尋競技場。
NEW「一堆奇怪符號搞得我很亂」——這不是你的問題。Σ 其實是希臘文的 S、∫ 是被拉長的 S、∂ 是圓體的 d。50 個符號的念法、意思、發明者與年代,可搜尋;查不到出處的(像學習率 η)也誠實標示,不編故事。
寫第一行程式之前的環境準備。用「環境選擇器」30 秒找到你的起點,搞懂 Colab、Jupyter、本機安裝三種執行方式,還有 VS Code 與 pip/venv。最快的路,其實完全不用安裝。
NEW從第一行 print() 到寫出自己的類別,共 16 個單元。每個單元都有範例、正反案例對照,還有動手玩的互動小遊戲,分兩種難度循序前進。
NEW用「廚房與副主廚」的比喻,讓完全沒寫過程式的人 10 分鐘看懂 IDE 是什麼、AI IDE 又強在哪,以及該從哪一套工具開始。
NEW給完全新手的白話指南。不用先會寫程式,也能搞懂 API 到底在做什麼、為什麼到處都在講 API,以及它跟你每天用的 App 有什麼關係。
NEW寫給文組與初學者的白話指南。一次講清楚 Framework 和 Library 的差別:到底是你呼叫它,還是它呼叫你?看完不再被這兩個詞搞混。
為什麼 Python 是 AI 的語言?帶你從頭了解 Python 的生態系與核心優勢,開啟你的 AI 學習之旅。
寫下 age = 25 時,記憶體發生哪 3 件事?為什麼變數只存「門牌」?從 int、str、list 一路揭開原來全都是物件,再用 Class 藍圖與 Instance 實例的眼光看 NumPy 的 .shape、Pandas 的 fillna 為什麼沒改到原表、sklearn 為什麼要先實例化。最後 1 分鐘快問快答驗收。
NEW V2 · Claude 製作左邊程式亮哪一行,右邊記憶體就同步變化。從 age = 25 的動作順序、b = a 為什麼不是複製、換箭頭與改物件的差別,一路看到 class 藍圖與 self,再用同一張圖看懂 NumPy 的 .shape、Pandas 的 fillna 為什麼沒改到原表、sklearn 的 fit 與 transform。最後 7 題隨堂測驗。
NEW先體驗沒有物件導向的混亂,再用 class、instance、self 和 method 把資料與行為重新整理起來。用 iPhone 比喻一路拆到能真正理解 OOP 為何存在。