機器學習中的特徵工程學習
1. 機器學習的定義
2.特徵工程意義
- 意義:會直接的影響機器學習的效果
- 做用:篩選、處理選擇一些合格的特徵
3.數據集的構成
- 平臺
- scikit-learn 方便學習,數據比較少
- kaggle
- UCI
- 結構
4. 特徵工程包含內容
5. 特徵抽取
- 將數據(文本或圖像)抽取成機器能夠識別的數特徵
- sklearn.feature_extraction
- 字典數據特徵抽取
- 目的:對特徵當中有類型的信息作處理—————>處理成one-hot編碼,類別都作成這樣
- dictvectorizer: 默認返回sparse矩陣,sparse=False的時候回返回默認的數據
- 文本特徵抽取
- get_feature_names() 返回值:單詞列表
- CountVectorizer(stop_words=[])
- 對於中文來講:也不統計單個漢字,智能以符號或者空格來隔開每個詞語
- stop_words:中止詞的意思
- 這些詞語不能反映文章主題,詞語比較中性,
- 由於、因此、等等、
- Tf-idf文本特徵抽取
- 用來評估一個詞語對於一個文件集或一個語料庫中的其中一份文件的重要程度
- 公式
- tf 詞頻 指某一個詞語在該文件中出現的頻率 詞數/總詞數
- 逆文檔頻率 一個詞語的廣泛重要 lg( 文章數量/出現關鍵字的文章數)
- Tfidf = tf*idf(逆文檔頻率)
6.特徵預處理
- 經過一些轉換函數將特徵數據轉換成更加適合算法模型的特徵數據過程
- 缺失值處理使用pandas
- 數值類型數據的無量綱化
- 歸一性(小數據)
- 將全部數據變換成映射到[0,1]之間
- 公式: (x-min)/(max-min) * (mx-mi)+mi
- Max 一列的最大值
- min一列的最小值
- mx想獲得值的區間的最大值,這裏就是1
- mi想獲得值區間的最小值、這裏就是0
- API
- sklearn.preprocessing import MinMaxScaler
- 總結
- 注意最大值和最小值是變化的、最大值和最小值很是容易受到異常點影響、全部這種方法魯棒性比較差、只適合傳統精準小數據場景。
- 標準化(大數據的時候)
- 經過對原始數據進行變換到均值爲0,標準差爲1的範圍
- 公式
- (x-mean)/o mean是平均值,o爲標準差
- 方差公式 ((x1-mean)^2+(x2-mean)^2+….(xn-mean)^2)/n
- 標準差 根號方差
- 這裏必定要比較大的數據量
- API
- sklearn.preprocessing.StandardScaler()
- 處理以後全部數據都彙集在均值爲0附近、標準差爲1
- 返回值形狀相同的array
- 爲何要進行歸一化/標準化
- 特徵的單位會在大小相差較大、或者某特徵的方差相比其餘特徵大出幾個數量級、容易影響目標結果、使得一些算法沒法學習到其餘的特徵
- 其實就是使得不一樣規格的數據轉換成統一規格的數據
7.特徵選擇
- 特徵降維
- 就是下降特徵的數量
- 下降特徵數量、獲得一些不相關的特徵、
- 降維的兩種方式
歡迎關注本站公眾號,獲取更多信息