scikit-learn工具可以做:数据的特征抽取、特征预处理、降维。
数据的特征抽取:将文本等数据进行特征值化(转换成计算机可以理解的数字类型)
demo.py(字典数据抽取,字典类型的数据转换成数字类型,DictVectorizer):
from sklearn.feature_extraction import DictVectorizer # 需要pip3安装scikit-learn。依赖Numpy,pandas等模块
# 字典数据抽取(将字典类型的数据转换成数字类型)
# 实例化DictVectorizer
dict = DictVectorizer(sparse=False) # sparse=False表示返回矩阵形式(默认True)。(sparse表示稀疏,矩阵形式浪费内存)
# 调用fit_transform
data = dict.fit_transform([{'city': '北京','temperature': 100}, {'city': '上海','temperature':60}, {'city': '深圳','temperature': 30}])
print(dict.get_feature_names()) # ['city=上海', 'city=北京', 'city=深圳', 'temperature']
print(data) # 第一列表示是否是"上海",第二列表示是否是"北京",最后一列表示"temperature"(本身是数值类型,不需要转换)。 参考get_feature_names()的返回值。
'''
[[ 0. 1. 0. 100.]
[ 1. 0. 0. 60.]
[ 0. 0. 1. 30.]]
'''
# 将数字类型转换成字典类型
print(dict.inverse_transform(data)) # [{'city=北京': 1.0, 'temperature': 100.0}, {'temperature': 60.0, 'city=上海': 1.0}, {'temperature': 30.0, 'city=深圳': 1.0}]