特征工程

GIL
       全称Global Interpreter Lock, 保证了了同一时刻只有一个线程在一个CPU上执行字节码,无法将多个线程映射到多个CPU上

numpy:释放了GIL

数据集
        scikit-learn: 数据量小,方便学习
        UCI:收录了360个数据集,覆盖科学,生活,经济等领域,数据量几十万

Kaggle:大数据竞赛平台,真实数据,数据量巨大

特征值+目标值

feature is called "特征“

目标值:e.g. 男/女

特征工程:将原始数据转换为更好地代表预测模型的潜在问题的特征,提供数据预测的准确性

特征抽取
        字典特征抽取:数值化。把字典中一些类别数据,分别转换成特征。
        数组形式的数据,有类别的特征先转成字典数据。
        sklear.feature_extraction.DictVectorizer
        返回值为Sparse Matrix

def dict_vec():
    dictvect=sklearn.feature_extraction.DictVectorizer()
    list=[{"city":"Beijing","temp":100},
          {"city":"London","temp":60},
          {"city":"Shanghai","temp":30}]
    arr=dictvect.fit_transform(list)
    return arr
 Sparse Matrix:
       (0, 0)	1.0
       (0, 3)	100.0
       (1, 1)	1.0
       (1, 3)	60.0
       (2, 2)	1.0
       (2, 3)	30.0

返回值为ndarray

dictvect=sklearn.feature_extraction.DictVectorizer(sparse=False)
[[  1.   0.   0. 100.]
[  0.   1.   0.  60.]
[  0.   0.   1.  30.]] 

One-hot 编码
        为每个类别生产一个布尔列,这些列中只有一列可以为每个样本取值1。
在这里插入图片描述
文本特征抽取
       sklearn.feature_extraction.text.CountVectorizer
       返回词频矩阵
              1.统计所有文章当中所有的词,重复的只看作一次。
              2.对每篇文章,在词的列表里面进行统计,统计出每个词出现的个数
       text=cv.fit_transform("life is hard, I want to go out and go back London")
在这里插入图片描述
       fit_transform(需要是Iterable type),改成 list 后不报错

def count_words():
    cv=CountVectorizer()
    text=cv.fit_transform(["life is hard, I want to go out and go back London"])
    print(cv.get_feature_names())
    print(text.toarray())
 ['and', 'back', 'go', 'hard', 'is', 'life', 'london', 'out', 'to', 'want']
 [[1 1 2 1 1 1 1 1 1 1]]          

       中文文本需要另外分词:jieba分词器

直接pip install jieba 会报错,
需要用国内的镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
def Chinese_txt():
    #分词
    con1=jieba.cut("金融是货币资金融通的总称主要指与货币流通和银行信用相关的各种活动")
    con2=jieba.cut("主要内容包括货币的发行投放流通和回笼各种存款的吸收和提取各项贷款的发放和收回")
    con3=jieba.cut("信用与货币流通这两个经济过程已紧密地结合在一起最能表明金融特征的是可以创造和消减货币的银行信用")
    print(con1)
    #字符串转换成列表
    list1=list(con1)
    list2=list(con2)
    list3=list(con3)
    print(list1)
    #列表返回成字符串
    return c1,c2,c3
 print(con1)# 直接打印出来的不是结果,需要转换成list
 print(list1)
<generator object Tokenizer.cut at 0x0000026CEB43D848>

['金融', '是', '货币资金', '融通', '的', '总称', '主要', '指', '与', '货币流通', '和', '银行信用', '相关', '的', '各种', '活动']

先将中文文本进行分词处理,jieba会提供合适的分词形式。

def Chinese_txt_split():
    #分词
    con1=jieba.cut("金融是货币资金融通的总称主要指与货币流通和银行信用相关的各种活动")
    con2=jieba.cut("主要内容包括货币的发行投放流通和回笼各种存款的吸收和提取各项贷款的发放和收回")
    con3=jieba.cut("信用与货币流通这两个经济过程已紧密地结合在一起最能表明金融特征的是可以创造和消减货币的银行信用")
    print(con1)
    #字符串转换成列表
    list1=list(con1)
    list2=list(con2)
    list3=list(con3)
    print(list1)
    #列表返回成以空格隔开的字符串
    c1=" ".join(list1)
    c2=" ".join(list2)
    c3=" ".join(list3)
    return c1,c2,c3

然后再统计词频数量

def count_words():
    c1,c2,c3=Chinese_txt_split()
    cv=CountVectorizer()
    text=cv.fit_transform([c1,c2,c3])
    print(cv.get_feature_names())
    print(text.toarray())
    
if __name__ == '__main__':
    count_words()
['一起', '两个', '主要', '信用', '内容', '创造', '包括', '发放', '发行', '可以', '各种', '各项', '吸收', '回笼', '存款', '总称', '投放', '提取', '收回', '最能', '活动', '流通', '消减', '特征', '相关', '紧密', '经济', '结合', '融通', '表明', '货币', '货币流通', '货币资金', '贷款', '过程', '金融', '银行信用']
[[0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1] 
[0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0]
[1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1]]

Tf-idf
       term frequency
       inverse document frequency:
              log(总文档数量/该词出现的文档数量)

        如果某个词语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词具有很好的类别区分能力,适合用来分类。

tf * idf 重要性程度: 词频 * 逆文档频率

 sklearn.feature_extraction.text.TfidfVectorizer
def tfidfvec():
    c1,c2,c3=Chinese_txt_split()
    tf=TfidfVectorizer()
    text=tf.fit_transform([c1,c2,c3])
    print(tf.get_feature_names())
    print(text.toarray())

在这里插入图片描述

特征预处理

   数值型数据:
        1.归一化
        2. 标准化
        3. 缺失值

   类别型数据: one-hot编码
   时间类型:时间的区分

sklearn.preprocessing

归一化(Normalisation) 公式:
x’ = (x - X_min) / (X_max - X_min)
x’’=x’ * (X_max - X_min) + X_min

sklearn.preprocessing.MinMaxScaler

有些特征同等重要,但是值的大小不在一个数量级上,需要进行归一化,避免有些数值过小而被忽略不计。

缺点:如果出现异常点,会对结果产生较大影响(由于最大值和最小值发生了改变),所以这种方法鲁棒性(反应了产品的稳定性)较差。

标准化(Standardization)
    通过对原始数据进行变换把数据变换到均值为0,方差为1的范围内。
         x’ = (x - μ ) / σ
μ is mean, σ is variance

sklearn.preprocessing.StandarScaler
def standar():
    std=StandardScaler()
    data=std.fit_transform([[-1,-3,4],
                             [-4,2,6],
                             [3,-2,1]])
    print(data)
[[-0.11624764 -0.9258201   0.16222142]
 [-1.16247639  1.38873015  1.13554995]
 [ 1.27872403 -0.46291005 -1.29777137]]

缺失值处理方法

  1. 删除

  2. 插补

    Imputer ( missing_values='NaN',strategy='mean',axis=0)
    

数据降维

    特征选择:

  1. Filter: Variance Threshold

  2. Embedded: 正则化,决策树

  3. Wrapper

  4. neural network

    sklearn.feature_selection.VarianceThreshold
    

    PCA
      特征数量达到上百的时候,要考虑数据的简化
      目的:是数据维数的压缩,尽可能降低原数据的维度(复杂度),损失少量信息。
      作用: 可以削减回归分析或者聚类分析中特征的数量。
(有一些具有相关性的数据可以进行化简)
       参数 n_components: (Number of components)
       range 0-1, usually use 90~95% ( 保存了90-95%的信息量)

   sklearn.decomposition.PCA

交叉表 (特殊的分组表)

pd.crosstab (mt['usr_id'],mt['product_id'])

可以用来统计每个客户每种商品的购买次数

数据类型
      离散型数据:全部都是整数而且不可以再细分。
      连续型数据:变量的取值可以是连续的,如,长度,时间,质量值等,通常是非整数。

监督学习
      分类 (离散型数据): k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
      回归 (连续型数据): 线性回归、岭回归
      标注 隐马尔可夫模型 (不做要求)

无监督学习
      聚类 :k-means

转换器 :fit_transformer中的Transformer,用于特征工程
估计器:分类器和回归器都属于estimator,是一类实现了算法的API。

标题Python网络课程在线学习平台研究AI更换标题第1章引言介绍Python网络课程在线学习平台的研究背景、意义、国内外现状和研究方法。1.1研究背景与意义阐述Python在线学习平台的重要性和研究意义。1.2国内外研究现状概述国内外Python在线学习平台的发展现状。1.3研究方法与论文结构介绍本文的研究方法和整体论文结构。第2章相关理论总结在线学习平台及Python教育的相关理论。2.1在线学习平台概述介绍在线学习平台的基本概念、特点和发展趋势。2.2Python教育理论阐述Python语言教学的理论和方法。2.3技术支持理论讨论构建在线学习平台所需的技术支持理论。第3章Python网络课程在线学习平台设计详细介绍Python网络课程在线学习平台的设计方案。3.1平台功能设计阐述平台的核心功能,如课程管理、用户管理、学习跟踪等。3.2平台架构设计给出平台的整体架构,包括前后端设计、数据库设计等。3.3平台界面设计介绍平台的用户界面设计,强调用户体验和易用性。第4章平台实现与测试详细阐述Python网络课程在线学习平台的实现过程和测试方法。4.1平台实现介绍平台的开发环境、技术栈和实现细节。4.2平台测试对平台进行功能测试、性能测试和安全测试,确保平台稳定可靠。第5章平台应用与效果分析分析Python网络课程在线学习平台在实际应用中的效果。5.1平台应用案例介绍平台在实际教学或培训中的应用案例。5.2效果评估与分析通过数据分析和用户反馈,评估平台的应用效果。第6章结论与展望总结Python网络课程在线学习平台的研究成果,并展望未来发展方向。6.1研究结论概括本文关于Python在线学习平台的研究结论。6.2研究展望提出未来Python在线学习平台的研究方向和发展建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值