机器学习
机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测
机器学习的数据主要储存再文件(csv)中
特征抽取
sklearn.feature_extraction
字典特征抽取
from sklearn.feature_extraction import DictVectorizer
例子:
from sklearn.feature_extraction import DictVectorizer
def dictvec():
# 实例化
dict = DictVectorizer(sparse=False)
# 调用fit_transform
data = dict.fit_transform([{'city': '北京', 'temperature': 100},
{'city': '上海', 'temperature': 60},
{'city': '深圳', 'temperature': 30}]
)
print(dict.get_feature_names())
print(data)
return None
dictvec()
字典数据抽取:
把字典中一些类别数据,分别进行转换成特征数据,数据形式,有类别的这些特征先要转换字典数据
文本特征抽取:
sklearn.feature_extraction.text.CountVectorizer
例子:
def countvect(): #文本进行特征值化 cv = CountVectorizer() data = cv.fit_transform((["txy","badaodeshen "])) print(cv.get_feature_names()) print(data.toarray()) return None countvect()
单个的字母不会统计,若对中文统计,则需要使用jieba.cut代码
TF和IDF
TF:term frequency(词的频率)
IDF: inverse document frequency(逆文档频率)
log(总文档数量/改词出现的文档数)
TF*IDF=重要性
特征处理
1.归一化:
通过对原始数据进行变换把数据映射到(默认为[0,1])之间
𝑋′= (x-min)/(max-min)
𝑋′′=𝑋′∗(𝑚𝑥−𝑚𝑖)+𝑚𝑖
mx为1,mi为0
通常在特称重要性相同时,会使用归一化
缺点:无法处理异常值
2.标准化:
通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内
𝑋′= (x-mean)/σ
mean为平均值,σ为标准差
缺失值处理
删除 | 如果每列或者行数据缺失值达到一定的比例,建议放弃整行或者整列 |
插补 | 可以通过缺失值每行或者每列的平均值、中位数来填充 |