机器学习01

机器学习

机器学习库

scikit-learn,tensorflow

机器学习框架:
在这里插入图片描述
在这里插入图片描述
什么是机器学习?

在这里插入图片描述

数据集的组成

机器学习的数据:csv文件

可用数据集:
在这里插入图片描述

常用数据集数据的结构:特征值+目标值。
在这里插入图片描述
根据特征找目标(进行判断)。
注:有些数据集可以没有目标值。

特征工程

特征工程是什么?
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装Scikit-learn:

pip3 install Scikit-learn

要在python安装目录下找到script,进行安装
在这里插入图片描述
输入以下指令判断是否安装成功。

import sklearn

注:安装前需要numpy,pandas等库

字典特征数据抽取

也就是转化为数字值,方便计算机识别
在这里插入图片描述
流程:
流程:

from sklearn.feature_extraction import DictVectorizer

def dictvet():
    dict=DictVectorizer()    #实例化

    #传的是列表数据
    data=dict.fit_transform([{"city":"北京","温度":100},{"city":"上海","温度":60},
                             {"city":"广州","温度":30}])

    print(dict.get_feature_names_out()) #得到特征值
    
    print(data)  #默认返回一个sparse矩阵
    #字典类型抽取:把字典中一些类别数据,分别进行转化为特征,使用one-hot编码,数字不需要变
    #如果是数组类型数据,有类别,先转化为字典,在进行抽取


    return None


dictvet()

运行结果:
['city=上海' 'city=北京' 'city=广州' '温度']
  (0, 1)	1.0
  (0, 3)	100.0
  (1, 0)	1.0
  (1, 3)	60.0
  (2, 2)	1.0
  (2, 3)	30.0

from sklearn.feature_extraction import DictVectorizer

def dictvet():
    dict=DictVectorizer(sparse=False)  
    data=dict.fit_transform([{"city":"北京","温度":100},{"city":"上海","温度":60},
                            {"city":"广州","温度":30}])
    print(data)
      return None


dictvet()
运行结果:
[[  0.   1.   0. 100.]
 [  1.   0.   0.  60.]
 [  0.   0.   1.  30.]]
                           

在这里插入图片描述

文本特征数据抽取

在这里插入图片描述
和字典特征抽取大同小异。

from sklearn.feature_extraction.text import CountVectorizer  #导入包
def countvec():
    cv=CountVectorizer() #实例化
    #传列表类型
    data=cv.fit_transform(["Life is short,i like python","Life is too long,i dislike python"])

    print(cv.get_feature_names_out()) #得出统计文章中所有的词,重复的只看做一次,单个字母不统计
    print(data)  #也是返回sparse矩阵,但是CountVectorizer api没有sparse参数,所以只能通过toarray将sparse转为数组形式
    print(data.toarray())
countvec()

运行结果:
['dislike' 'is' 'life' 'like' 'long' 'python' 'short' 'too']
  (0, 2)	1
  (0, 1)	1
  (0, 6)	1
  (0, 3)	1
  (0, 5)	1
  (1, 2)	1
  (1, 1)	1
  (1, 5)	1
  (1, 7)	1
  (1, 4)	1
  (1, 0)	1
[[0 1 1 1 0 1 1 0]
 [1 1 1 0 1 1 0 1]]

对于中文文章:
应该先进行分词操作,使用jieba库
下载:

pip3 install jieba
from sklearn.feature_extraction.text import CountVectorizer  #导入包
import jieba
def hanzivec():
    dv = CountVectorizer()  # 实例化
    data1 = dv.fit_transform([' '.join(list(jieba.cut("人生苦短,及时行乐"))),
                              ' '.join(list(jieba.cut("不以物喜,不以己悲")))]) #' '.join()转化为字符串
    # 使用jieba进行分词,还需要转化为列表类型,再转化为字符串类型
    print(dv.get_feature_names_out())  # 对于中文不支持这种抽取,因为不能表达出这篇文章的主题,先进行分词,
    # 再进行抽取,英文不需要分词
    print(data1)
    print(data1.toarray())

运行结果:
['不以' '不以己' '人生' '及时行乐' '物喜' '苦短']
  (0, 2)	1
  (0, 5)	1
  (0, 3)	1
  (1, 0)	1
  (1, 4)	1
  (1, 1)	1
[[0 0 1 1 0 1]
 [1 1 0 0 1 0]]

#若得到的列表相差不大,我们就可以进行预测

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值