机器学习(2.sklearn(Scikit-learn)库、字典数据的特征抽取)

sklearn(全称Scikit-learn库介绍)

      •Python语言的机器学习工具

      •Scikit-learn包括许多知名的机器学习算法实现

      •Scikit-learn文档完善,容易上手,丰富API,使其在学术界颇受欢迎。

安装:windows下    pip install Scikit-learn       注:安装scikit-learn需要Numpy,pandas等库

 数据的特征抽取

   特征抽取(进行特征值化):  · 字典特征抽取: 把字典的数据转换为具体的数据

                       · 文本特征抽取:  把文本的数据转换为具体额数据

     注:特征值化是为了计算机更好的去理解数据

字典特征抽取

1.作用:对字典数据进行特征值化

2.语法:

   •DictVectorizer(sparse=True,)

      (1) DictVectorizer.fit_transform(X)      

                •X:字典或者包含字典的迭代器      传进去一个列表,列表中包含多个字典

                •返回值:返回sparse矩阵

      (2)•DictVectorizer.inverse_transform(X)

                  •X:array数组或者sparse矩阵

                 •返回值:转换之前数据格式

      (3)•DictVectorizer.get_feature_names()

                   •返回类别名称

       (4)•DictVectorizer.transform(X)

                   •按照原先的标准转换

3.流程与例子

from sklearn.feature_extraction import DictVectorizer

def dictvec1():
    dict = DictVectorizer()

    data = dict.fit_transform([
        {"city": "上海", 'temperature': 100},
        {"city": "北京", 'temperature': 60},
        {"city": "深圳", 'temperature': 30}
    ])
    print(data)
    return None

def dictvec2():
    dict = DictVectorizer(sparse=False)

    data = dict.fit_transform([
        {"city": "上海", 'temperature': 100},
        {"city": "北京", 'temperature': 60},
        {"city": "深圳", 'temperature': 30}
    ])
    print(dict.get_feature_names())
    print(data)
    return None

if __name__ == '__main__':
    dictvec1()
    dictvec2()
打印的结果:
# 第一个函数的打印结果
  (0, 0)	1.0
  (0, 3)	100.0
  (1, 1)	1.0
  (1, 3)	60.0
  (2, 2)	1.0
  (2, 3)	30.0
# 第二个函数的打印结果
['city=上海', 'city=北京', 'city=深圳', 'temperature']
[[  1.   0.   0. 100.]
 [  0.   1.   0.  60.]
 [  0.   0.   1.  30.]]

   第一 函数dictvec1() 的打印结果,就是sparse的矩阵模式 (在scipy模块中就是这种模式),也就是找下表,对应数据

     转换成这种矩阵的模型是为了节约内存,方便读取处理

  第二个函数的打印结果: 是一个二维数组的类型  对应numpy中的 ndarray类型,也即是 one-hot编码
调用 get_feature_names() 函数,类似打印出类名,最后一个是结果值
对应刚才输入的数据,第二个函数的数据数组,的第一个小数组,对应列名,第一个城市是上海,则对应的位置上就为,1,数组的最后一个就是对应的结果值,第二个小数组同理,
第二值为1代表就是上海,最后一只也对应响应的结果值
总结: 字典数据抽取:把字典中一些类别数据,分别进行转换成特征数据
            数据形式,有类别的这些特征,先要转换字典数据

4.ont-hot编码

  比如说,Human的类别为1,Penguin的类别为2,Octopus的类别为3,Ailen的类别为4

只要数据对应的列名符合就为1,不符合的都为0

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是那个同伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值