学习笔记:机器学习day1

本文介绍了机器学习数据集的构成,包括常用数据集的来源和结构。重点讲解了特征工程,包括文本和字典特征抽取,以及数据预处理的归一化、标准化和缺失值处理。还提到了数据降维的方法,如PCA,并介绍了Scikit-learn库在机器学习中的应用。
摘要由CSDN通过智能技术生成

数据集的构成

机器学习的数据:文件CSV

mysql不适合机器学习:

  1. 性能瓶颈,读取速度
  2. 格式不太符合机器学习要求数据的格式

读取工具:

  1. pandas:读取工具
  2. numpy:快的原因:把GIL锁释放了
一、 数据集的结构

可用数据集
scikit-learn的特点:

  1. 数据量较小
  2. 方便学习

kaggle特点:

  1. 大数据竞赛平台
  2. 80万科学家
  3. 真实数据
  4. 数据量巨大

UCI特点:

  1. 收录了360个数据集
  2. 覆盖科学、生活、经济等领域
  3. 数据量几十万

常用数据集的结构组成
结构:特征值+目标值

房子面积 房子位置 房子楼层 目标值
数据 80 9 3 80

注:有些数据集科研没有目标值
机器学习:数据中的重复值不需要去重

二、特征工程

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

重要概念:

1. 数据的特征抽取(feature_extraction)

将一个文本、字符串转换成数字就是特征抽取

1.文本特征抽取

方式1(用得比较少):CountVectorizer()

  • 返回词频率矩阵
  • CountVectorizer.fit_transform(X)
    X:文本或者包含文本字符串的可迭代对象
    返回值:返回sparse矩阵
  • CountVectorizer.inverse_transform(X)
    X:array数组或者sparse矩阵
    返回值:转换之前数据格式
  • CountVectorizer.get_feature_names()
    返回值:单词列表
#导入包
from sklearn.feature_extraction.text import CountVectorizer
#实例化CountVectorizer
vector =CountVectorizer()
#调用fit_transform输入并转换数据
res = vector.fit_transform(["Life is short,I like python.","Life is long, I dislike python."])
#打印结构
print(vector.get_feature_names())
print(res.toarray())

结果输出:(单个字母不统计)

['dislike', 'is', 'life', 'like', 'long', 'python', 'short']
[[0 1 1 1 0 1 1]
 [1 1 1 0 1 1 0]]

注意:中文不支持特征文本特征抽取,需要用到jieba分词。
使用:jieba.cut
例子:

import jieba
words = '我是一个好程序员'
#分词
words_cut = jieba.cut(words)
#将词转换成列表
con = list(words_cut)
#将列表转换成字符串并用空格隔开
c1 = " ".join(con)
print(c1)
我 是 一个 好 程序员

注意:传入文本特征抽取时候要加上[]。
res = vector.fit_transform([c1])

方式2 tf-idf分析
Tf: 词的频率 term frequency

idf:逆文档频率 inverse document frequency
log(总文档数量/该词出现的文档数量)

tf * idf 反映重要性程度

TF-IDF的主要思想是:如果某个词或者短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为该词或者短语具有很好的类别区分能力,适合用来分类。

TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

类:sklearn.feature_extraction.text.TfidfVectorizer

  • TfidfVectorizer(stop_word=None,…)
    返回词的权重矩阵

  • TfidfVectorizer.fit_transform(x)
    x:文本或者包含文本字符串的可迭代对象
    返回值:返回sparse矩阵

  • TfidfVectorizer.inverse_transform(x)
    x:array数组或者sparse矩阵
    返回值:转换之前数据格式

  • TfidfVectorizer.get_feaure_names()
    返回值:单词列表

from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer()
data = tf.fit_transform(['life is short,i like python','life is long,i dislike python.'])
print(tf.get_feature_names())
print(data.toarray())

结果输出:(反映词的重要性)

['dislike', 'is', 'life', 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值