Traditional_machine_learning_tutorial

1. 数据预处理

1.1 数据清洗

常见问题:

缺失值的处理:删除和填充 异常值检测与处理

1.2 缺失值的处理

import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [9, 10, 11, 12],
'D':['','','','']
})

填充缺失值

实际使用时,需要先对训练集进行fit(),然后在测试集上transform(),以避免数据泄露。

import sklearn
from sklearn.datasets import load_iris #内置的数据集
from sklearn.model_selection import train_test_split #数据分割模型
iris = load_iris()

1.3 异常值检测与处理

#使用这个函数 df_clean = remove_outliners_iqr(df,’A’) #移除数据框df的A列中的异常值 print(df_clean)

- 使用IsolationForest(无监督异常检测)

from sklearn.ensemble import IsolationForest iso_forest = IsolationForest(contamination=0.1,random_state=100) outliers = iso_forest.fit_predict(df[[‘A’,’B’]]) #-1表示异常 df[‘is_outlier’]=outliers #新增1列,即为-1和1的值,1是正常,-1是异常 df_clean=df[df[‘is_outlier’]==1] #筛选出正常的值的行 ```