or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
資料前處理與分析
Source
練習Dataset
Boston Dataset 欄位說明
CRIM
ZN
INDUS
CHAS
NOX
RM
AGE
DIS
RAD
TAX
PTRATIO
B
LSTAT
**MEDV**
課堂投影片與練習
我們常用 Pandas DataFrame 來處理結構化的資料。
載入 CSV 檔案: 使用
pd.read_csv()
。載入 scikit-learn 內建資料集: scikit-learn 提供了一些範例資料集 (如波士頓房價資料集),這些資料集載入後通常是 dictionary 格式。
.keys()
查看包含哪些內容 (如 data, target, feature_names, description)。df.head()
/df.tail()
(預設顯示前/後 5 筆,可指定數字)。df.shape
(回傳 (列數, 欄位數))。df.info()
。df.describe()
。df['欄位名稱'].value_counts()
.df.info()
可以快速查看每個欄位非空值的數量,從而推算遺失值.df.isnull()
或df.isna()
:回傳一個與 DataFrame 形狀相同的 boolean DataFrame,True 表示該位置是遺失值 (NaN),False 表示非遺失值..sum()
:df.isnull().sum()
可以快速計算每個欄位的遺失值數量..any()
:df.isnull().any()
可以快速判斷哪些欄位包含遺失值.df.dropna()
:刪除任何包含一個或多個遺失值的列 (預設axis=0
).df.dropna(axis=1)
:刪除任何包含一個或多個遺失值的欄.df.dropna(thresh=N)
:刪除遺失值數量超過 N 的列.np.nan
。然後嘗試使用df.dropna()
刪除包含遺失值的列。觀察刪除前後 DataFrame 的形狀 (.shape
) 變化。2. 填補 (Fill NA): 用某些值來取代遺失值.
*
df.fillna(value)
:用指定的值填補 (如df.fillna(0)
用 0 填補).* 用統計量填補 (需確保欄位為數值型態):
*
df.fillna(df.mean())
:用該欄位的平均值填補.*
df.fillna(df.median())
:用該欄位的中位數填補.*
df.fillna(df.mode())
:用該欄位的眾數填補.* 使用內插法 (Interpolation).
* 使用向前填補 (
method='ffill'
) 或向後填補 (method='bfill'
).課堂範例: 處理異常值(接續波士頓房價資料集)
課堂練習:處理異常值(接續波士頓房價資料集)
DataFrame.duplicated()
:回傳一個 Series,標示每一列是否為重複(基於所有欄位)。第一次出現的標示為 False,後續重複的標示為 True.subset
參數,只檢查特定欄位是否重複.DataFrame.drop_duplicates()
:移除重複的列.keep='first'
),可以設定keep='last'
保留最後一次出現的,或keep=False
刪除所有重複的列.subset
參數,只根據特定欄位來判斷是否重複.下一堂課
StandardScaler
實現.MinMaxScaler
實現.課堂範例: 標準化(接續波士頓房價資料)
StandardScaler
) 和最小-最大標準化 (MinMaxScaler
)。.describe()
結果有何不同。.map()
方法或替換功能實現.pd.get_dummies()
函數或 Scikit-learn 的OneHotEncoder
實現.使用相關係數進行特徵選取範例 (波士頓房價資料集):
df.corr()
:計算 DataFrame 中所有數值欄位之間的皮爾森相關係數矩陣.train_test_split
函數.stratify
參數確保訓練集和測試集中的類別分佈與原始資料相似.