概念:
特征工程:本質上是一項工程活動,他目的是最大限度地從原始數據中提取特征以供算法和模型使用
特征工程的重要性:特征越好,靈活性越強、模型越簡單、性能越出色。
特征工程包括:數據處理、特征選擇、維度壓縮
量綱不一:
就是單位,特征的單位不一致,不能放在一起比較
通過:0-1標准化、Z標准化、Normalizer歸一化
數據處理-歸一化:

1 import pandas 2 3 data=pandas.read_csv( 4 "C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\6.1\\data1.csv") 5 6 #Min-Max標准化 7 from sklearn.preprocessing import MinMaxScaler 8 9 scaler=MinMaxScaler() 10 11 data["標准化累計票房"]=scaler.fit_transform(data[["累計票房"]]) 12 data["標准化豆瓣得分"]=scaler.fit_transform(data[["豆瓣評分"]]) 13 14 #Z-Score標准化 15 from sklearn.preprocessing import scale 16 17 data["標准化累計票房"]=scale(data["累計票房"]) 18 data["標准化豆瓣評分"]=scale(data["豆瓣評分"]) 19 20 21 #Normalizer歸一化 22 from sklearn.preprocessing import Normalizer 23 24 scaler = Normalizer() 25 26 data['歸一化累計票房'] = scaler.fit_transform( 27 data['累計票房'] 28 )[0] 29 data['歸一化豆瓣評分'] = scaler.fit_transform( 30 data['豆瓣評分'] 31 )[0]
數據處理-虛擬變量:
虛擬變量也叫啞變量和離散特征編碼,可用來表示分類變量、非數量因素可能產生的影響
使用get_dummies獲取虛擬變量
如果新數據分類較少,要獲取前面的category類,可以用categories=data["列名"].cat.categories來得到之前的分類,與之前的列一一對應

1 import pandas 2 3 data=pandas.read_csv( 4 "C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\6.1\\data2.csv") 5 6 data["症狀"]=data["症狀"].astype("category") 7 8 dummiesData = pandas.get_dummies( 9 data, 10 columns=['症狀'], 11 prefix=['症狀'], 12 prefix_sep="_" 13 ) 14 15 16 newData=pandas.read_csv( 17 "C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\6.1\\data2New.csv") 18 19 20 newData["症狀"]=newData["症狀"].astype( 21 "category", 22 categories=data["症狀"].cat.categories) 23 24 dummiesNewData=pandas.get_dummies( 25 newData, 26 columns=["症狀"], 27 prefix=["症狀"], 28 prefix_sep="_")
數據處理—缺失值
缺失值產生原因:有些信息暫時無法獲取、有些信息被遺漏或者錯誤的處理了
缺失值處理方法:數據補齊、刪除缺失行、不處理
導入Imputer類,該類有三個備選項:mean、median、most_frequent

1 import pandas 2 3 data=pandas.read_csv("C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\6.1\\data3.csv") 4 5 from sklearn.preprocessing import Imputer 6 7 #mean,median,most_frequent 8 9 imputer=Imputer(strategy="mean") 10 11 data["累計票房"]=imputer.fit_transform(data[["累計票房"]])