机器学习笔记

机器学习概述
    1.1能做什么
        传统预测
        图像识别
        自然语言处理
    1.2机器学习定义
        数据
        模型
        预测
        从历史数据中获得规律
        1.2.3 数据集构成
            特征值 + 目标值
    1.3机器学习算法分类
        监督学习
            目标值:类别-分类问题
                k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归
            目标值:连续-回归问题
                线性回归、岭回归
        无监督学习
            目标值:无-聚类、k-means
    1.4机器学习开发流程
        获取数据
        数据处理
        特征工程
        机器学习算法训练-模型
        模型评估
        应用
    1.5学习框架和资料介绍
        算法是核心,数据与计算是基础
        实战类书籍
        机器学习-周志华/统计学习方法-李航
        深度学习-花书
        机器学习库和框架
        
特征工程
    2.1数据集
        2.1.1可用数据集
            公司内部 爬虫 数据接口 监控等 / 学习使用:sklearn kaggle uci scikit-learn 天池
        sklearn数据集
            load_* 加载数据集(本地数据集)
            fetch_* 获取数据集(网络下载,下载的目录是 ~/scikit_learn_data/)
            
        数据集的划分:
            训练数据:用于训练,构建模型
            测试数据:检验模型,评估模型
                测试集:0.2-0.3
                训练集特征值,测试集特征值,训练集目标值,测试集目标值
    2.2特征工程介绍
        算法 特征工程
        1为什么需要特征工程(feature engineering)
        2什么是特征工程
            sklearn 特征工程
            pandas 数据清洗、数据处理
        特征工程步骤:
            1特征抽取
                机器学习算法-统计方法-数学公式
                    数据需要转换成数学能理解的值-特征值化(转化为数字特征)
                        字典特征提取(特征离散化)
                        文本特征提取
                        图像特征提取
                        举例:文本类型-》数值;类别-》数值
            字典特征提取
                sklearn.feature_extraction
                sklearn.feature_extraction.DictVectorize()
                父类:转换器类
                返回sparse矩阵(稀疏矩阵,0值很多,且分布没有规律)
                    将非零值 按位置表示出来[节省内存,提高加载效率]
                应用场景:pclass,sex
            文本特征提取
                单词作为特征
                1 sklearn.feature_extraction.text.CountVectorizer(stop_word=[])
                    返回词频矩阵
                countvectorizer:计算单次频率
                stop_words:停用词(排除对分类用处小的)
                2 TfidfVectorizer:某类问题专属单词   语料库(corpus)
                    TF(Term Frequenc)词频: 某个词在文章中的出现次数 / 文章总词数
                    IDF(Inverse Document Frequency)逆文档频率 =log(语料库的文档总数/包含该词的文档总数+1)
                    TF-IDF = 词频(TF) * 逆文档频率(IDF)
        特征预处理(sklearn.preprocessing API)
            归一化和标准化(无量纲化):为了调和不同数量级对特征学习的影响,将数据调整到同一规格
                归一化:将数据映射到[0,1]间
                    公式:X'=(x-min)/(max-min)        x''=x' * (mx-mi) + mi    注:mx,mi为区间最大最小值
                    调用归一化:sklearn.preprocessing.MinMaxScaler(feature_range=(0,1)...)
                    缺点:异常值很多时难以处理-->鲁棒性较差,只适合精确小数据场景
                标准化:将原始数据变化成均值为0,标准差为1的范围内
                    公式:X'=(x-mean)/std(标准差)
                    标准差:反应离散程度-->各值与平均值差的平方和/总数后开方sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/n)
                    场景:适合大数据环境夏嘈杂的环境
                    
        特征降维
            ndarray
                    维数:嵌套的层数
                降维
                    降低特征个数
                效果
                    特征间不相关
            降维方法
                特征选择
                    概念:从原有特征中找出主要特征
                    filter(过滤式):
                        方差选择法:低方差特征过滤[举例:所有鸟都有爪子,方差为0,可以过滤]
                            sklearn.feature_selection.VarianceThreshold(threshold=0.0)[方差为0]
                        相关系数法:特征与特征间的相关程度
                            ​​相关系数 -1=<r=<1,r>0时两变量正相关,r<0时负相关
                            |r|=1时,变量完全相关,|r|=0时两变量不相关
                            |r|->0时,相关性下降,|r|->1时,相关性增加
                            |r|<0.4为低度相关,0.4=<|r|<0.7为显著相关,0.7=<|r|<1时高度线性相关
                            相关性很强时 
                                选择其中一个
                                加权求和
                                主成分分析
                    
                    embeded嵌入式
                        决策树
                        正则化
                        深度学习
    
                主成分分析(PCA)
                    主成分分析:降维
                        找到合适德直线,通过矩阵运算,得到合适对的结果
                    sklearn.decomposition.PCA(n_components=2)
            案例分析:intacart代码如下
                

import pandas as pd
from sklearn.decomposition import PCA

# 获取数据
products_data = pd.read_csv("E:\data\instacart-market-basket-analysis\products.csv")
orders_data = pd.read_csv("E:\data\instacart-market-basket-analysis\orders.csv")
aisles_data = pd.read_csv("E:\data\instacart-market-basket-analysis\\aisles.csv")
orders_product_data = pd.read_csv("E:\data\instacart-market-basket-analysis\order_products__prior.csv")

# 合并aisles和products表合并
tab1 = pd.merge(aisles_data, products_data, on=['aisle_id', 'aisle_id'])
tab2 = pd.merge(tab1, orders_product_data, on=['product_id', 'product_id'])
tab3 = pd.merge(tab2, orders_data, on=['order_id', 'order_id'])

# 找到user_id和aisle之间的联系
table = pd.crosstab(tab3['user_id'], tab3['aisle'])

# 实例化
transform = PCA(n_components=0.8)
# 调用fit_transform方法
data_new = transform.fit_transform(table)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值