"""
用linearsvm從tfidf(word)中挑選特徵,並將結果儲存到本地
tfidf(article)可做類似處理
"""import time
import pickle
from sklearn.feature_selection import selectfrommodel
from sklearn.svm import linearsvc
t_start = time.time()
"""讀取特徵"""
with open('tfidf_word.pkl', 'rb') as f:
x_train, y_train, x_test = pickle.load(f)
"""進行特徵選擇"""
lsvc = linearsvc(c=0.5, dual=false).fit(x_train, y_train)
slt = selectfrommodel(lsvc, prefit=true)
x_train_s = slt.transform(x_train)
x_test_s = slt.transform(x_test)
"""儲存選擇後的特徵至本地"""
num_features = x_train_s.shape[1]
with open('linearsvm-tfidf(word).pkl', 'wb') as f:
pickle.dump((x_train_s, y_train, x_test_s), data_f)
t_end = time.time()
print("特徵選擇完成,選擇{}個特徵,共耗時{}min".format(num_features, (t_end-t_start)/60))
# 特徵選擇完成,選擇888357個特徵,共耗時11.78min
'''
用lr從tfidf(word)中挑選特徵,並將結果儲存到本地
tfidf(article)可做類似處理
'''import time
import pickle
from sklearn.feature_selection import selectfrommodel
from sklearn.linear_model import logisticregression
t_start = time.time()
"""讀取tfidf(word)特徵"""
with open('tfidf_word.pkl', 'rb') as fp:
x_train, y_train, x_test = pickle.load(fp)
"""進行特徵選擇"""
lr = logisticregression(c=120, dual=false).fit(x_train, y_train)
slt = selectfrommodel(lr, prefit=true)
x_train_s = slt.transform(x_train)
x_test_s = slt.transform(x_test)
"""儲存選擇後的特徵至本地"""
num_features = x_train_s.shape[1]
with open('lr-tfidf(word).pkl', 'wb') as data_f:
pickle.dump((x_train_s, y_train, x_test_s), data_f)
t_end = time.time()
print("特徵選擇完成,選擇{}個特徵,共耗時{}min".format(num_features, (t_end-t_start)/60))
七種常用特徵工程
像乙個優秀的工程師一樣使用機器學習,而不要像乙個機器學習專家一樣使用機器學習方法。google 當在做資料探勘和資料分析時,資料是所有問題的基礎,並且會影響整個工程的流程。相比一些複雜的演算法,如何靈活的處理好資料經常會取到意想不到的效益。而處理資料不可或缺的需要使用到特徵工程。一 什麼是特徵工程 ...
特徵工程(1) 特徵工程是什麼?
特徵是資料中抽取出來的對結果 有用的資訊,可以是文字或者資料。特徵工程是使用專業背景知識和技巧處理資料,使得特徵能在機器學習演算法上發揮更好的作用的過程。過程包含了特徵提取 特徵構建 特徵選擇等模組。特徵工程的目的是篩選出更好的特徵,獲取更好的訓練資料。因為好的特徵具有更強的靈活性,可以用簡單的模型...
特徵工程 特徵交叉 交叉特徵 特徵組合
關於特徵交叉的作用以及原理,我這裡不進行詳細描述,因為大佬們已經說得很清楚了,這裡就附上幾個連線 特徵組合 特徵交叉 feature crosses 結合sklearn進行特徵工程 對於特徵離散化,特徵交叉,連續特徵離散化非常經典的解釋 下面說怎樣製作和交叉特徵 多項式生成函式 sklearn.pr...