机器学习概述、数据特征抽取、数据特征处理

本文介绍了机器学习的基本概念,包括定义、应用场景和常用库,如scikit-learn、Kaggle和UCI。接着深入探讨数据的特征工程,包括特征抽取和处理。在特征抽取部分,详细阐述了字典特征抽取、英文文本和TF-IDF方法。最后讨论了数据的特征处理,如归一化、标准化和缺失值处理的重要性及其具体实现。
摘要由CSDN通过智能技术生成

机器学习概述

机器学习的定义

机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测

机器学习的应用场景
  1. 自然语言处理
  2. 计算机视觉
  3. 智能驾驶
  4. 系统推荐
机器学习常用库
  1. scikit-learn:1)数据量较小;2)方便学习
  2. Kaggle:1)大数据竞赛平台;2)80万科学家;3)真实数据;4)数据量巨大
  3. UCI:1)收录了360个数据集;2)覆盖科学、生活、经济等领域;3)数据量几十万

数据的特征工程

数据集数据的结构组成

结构:特征值+目标值
在这里插入图片描述
注:有些数据集可以没有目标值

特征工程的定义

特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性

特征工程的意义

影响模型的预测结果

数据的特征抽取
  1. 特征抽取针对非连续型数据
  2. 特征值化是为了计算机更好的去理解数据
字典的特征抽取
  1. API:sklearn.feature_extraction.DictVectorizer
  2. 类:DictVectorizer(sparse=True,…)
  3. 方法:
  • DictVectorizer.fit_transform(X)
    X:字典或者包含字典的迭代器
    返回值:返回sparse矩阵
  • DictVectorizer.inverse_transform(X)
    X:array数组或者sparse矩阵
    返回值:转换之前数据格式
  • DictVectorizer.get_feature_names()
    返回类别名称
    DictVectorizer.transform(X)
    按照原先的标准转换
def dictvec():
    """
    字典数据抽取
    :return: None
    """
    # 实例化
    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(dict.inverse_transform(data))
    print(data)
    return None

输出结果:

['city=上海', 'city=北京', 'city=深圳', 'temperature']
[{
   'city=北京': 1.0, 'temperature': 100.0}, {
   'city=上海': 1.0, 'temperature': 60.0}, {
   'city=深圳': 1.0, 'temperature': 30.0}]
[[  0.   1.   0. 100.]
 [  1.   0.   0.  60.]
 [  0.   0.   1.  30.]]

get_feature_names的结果中可以看出,对于文本类特征,每一种特征的字符串对应了一个类

文本特征抽取
英文文本
  1. API:sklearn.feature_extraction.text.CountVectorizer
  2. 类:CountVectorizer(max_df=1.0,min_df=1,…)
    返回词频矩阵
  3. 方法:
  • CountVectorizer.fit_transform(X,y)
    X:文本或者包含文本字符串的可迭代对象
    返回值:返回sparse矩阵
  • CountVectorizer.inverse_transform(X)
    X:array数组或者sparse矩阵
    返回值:转换之前数据格式
  • CountVectorizer.get_feature_names()
    返回值:单词列表
def countvec():
    """
    对文本进行特征值化
    :return: None
    """
    cv = CountVectorizer()
    data = cv.fit_transform(["人生 苦短,我 喜欢 python", "人生漫长,不用 python"])
    print(cv.get_feature_names())
    print(data.toarray())
    return None

输出结果:

['is', 'life', 'like', 'long', 'love', 'python', 'short',
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值