精华内容
下载资源
问答
  • 2020-11-24 05:27:36

    本文结合代码实例待你上手

    python

    数据挖掘和机器学习技术。

    本文包含了五个知识点:

    1.

    数据挖掘与机器学习技术简介

    2. Python

    数据预处理实战

    3.

    常见分类算法介绍

    4.

    对鸢尾花进行分类案例实战

    5.

    分类算法的选择思路与技巧

    一、数据挖掘与机器学习技术简介

    什么是数据挖掘?数据挖掘指的是对现有的一些数据进行相应的处理和分析,

    最终得到数

    据与数据之间深层次关系的一种技术。

    例如在对超市货品进行摆放时,

    牛奶到底是和面包

    摆放在一起销量更高,还是和其他商品摆在一起销量更高。

    数据挖掘技术就可以用于解决

    这类问题。具体来说,超市的货品摆放问题可以划分为关联分析类场景。

    在日常生活中,数据挖掘技术应用的非常广泛。例如对于商户而言,常常需要对其客户的

    等级(

    svip

    vip

    、普通客户等)进行划分,这时候可以将一部分客户数据作为训练数据,

    另一部分客户数据作为测试数据。

    然后将训练数据输入到模型中进行训练,

    在训练完成后,

    输入另一部分数据进行测试,

    最终实现客户等级的自动划分。

    其他类似的应用例子还有验

    证码识别、水果品质自动筛选等。

    那么机器学习技术又是什么呢?一言以蔽之,

    凡是让机器通过我们所建立的模型和算法对

    数据之间的关系或者规则进行学习,最后供我们利用的技术都是机器学习技术。

    其实机器

    学习技术是一个交叉的学科,

    它可以大致分为两类:

    传统的机器学习技术与深度学习技术,

    其中深度学习技术包含了神经网络相关技术。

    在本次课程中,

    着重讲解的是传统的机器学

    习技术及各种算法。

    由于机器学习技术和数据挖掘技术都是对数据之间的规律进行探索,

    所以人们通常将两者

    放在一起提及。而这两种技术在现实生活中也有着非常广阔的应用场景,其中经典的几类

    更多相关内容
  • 主要是对于北京市的二手房信息进行分析和预测,分别对于二手房价格和面积、朝向等锋面展开了叙述,进行数据挖掘分析和可视化,(本资源包括代码数据。word实验报告)
  • 数据挖掘代码(仅供学习) imooc-spider——数据挖掘 python——数据挖掘 源码奉送
  • 使用聚类算法对公司客户价值进行自动划分案例实战 关联分析问题应用场景介绍 Apriori算法介绍 FP-Growth算法介绍 使用关联分析算法解决课程的个性化推荐问题 作业练习:使用关联分析算法解决超市商品货品摆放调整...
  • 安装Anaconda Python集成环境下载环境anaconda下载选择安装环境下载过程中使用默认,但有一个页面需要确认,如下图。anaconda选择页面第一个勾是是否把 Anaconda 加入环境变量,这涉及到能否直接在 cmd中使用 conda...

    友情提示:此篇文章大约需要阅读 7分钟57秒,不足之处请多指教,感谢你的阅读。

    安装Anaconda Python集成环境

    下载环境

    anaconda下载选择

    安装环境

    下载过程中使用默认,但有一个页面需要确认,如下图。

    anaconda选择页面

    第一个勾是是否把 Anaconda 加入环境变量,这涉及到能否直接在 cmd中使用 conda、jupyter、 ipython 等命令,推荐打勾。

    第二个是是否设置 Anaconda 所带的 Python 3.6 为系统默认的 Python 版本,可以打勾。

    安装完成后,在开始菜单中显示“Anaconda2”如下图所示。

    安装显示界面

    安装第三方程序包 Graphviz

    目的是在决策树算法中八进制最终的树结构。

    1、打开 Anaconda Prompt ,输入 conda install python-graphviz,回车即可完成安装,如下图所示,本图所示已经安装 了 graphviz包,若之前没有安装,这时会花点时间安装,安装不用干预。

    安装决策树依赖包

    安装完成后先输入 python,然后再输入 import graphviz,测试是否成功安装,如上图所示。

    需要设置环境变量,才能使用新安装的 graphviz。

    Anaconda及依赖包环境变量设置

    首先查看 anaconda安装在哪个目录下,可以打开 Spyder的属性,看一看目标是什么目 录。例如本机的 anaconda安装路径为 C:\Users\lenovo\Anaconda2。

    下面设置环境变量

    (1) 在用户变量“path”里添加 C:\Users\lenovo\Anaconda2\Library\bin\graphviz

    (2) 在系统变量的“path”里添加 C:\Users\lenovo\Anaconda2\Library\bin\graphviz\dot.exe

    (3) 如果现在有正在打开的 anaconda 程序,例如正在 Spyder,那么关闭 Spyder,再启动,这 样刚才设置的环境变量生效。

    决策树分析

    格式化原始数据

    将下图的表 demo输入到 Excel中,保存为.csv 文件(.csv为逗号分隔值文件格式)。

    注意将表 demo中的汉字值转换成数据字值,例如“是否是公司职员”列中的“是”为“1”, “否”为“0”。转换后的表中数据如下图所示。

    学习表

    编写数据分析代码

    编写程序对上面的数据进行决策树分类,采用信息熵(entropy)作为度量标准。参考代码如下所示:

    from sklearn.tree import DecisionTreeClassifier,export_graphviz

    import graphviz

    import csv

    dataset = []

    reader = csv.reader(open("demo.csv"))

    for line in reader:

    if reader.line_num == 1:

    continue

    dataset.append(line)

    X = [x[0:4] for x in dataset]

    y = [x[4] for x in dataset]

    clf = DecisionTreeClassifier(criterion='entropy').fit(X, y)

    dot_data = export_graphviz(clf, out_file=None)

    graph = graphviz.Source(dot_data)

    graph.render("table");

    digraph Tree {

    node [shape=box] ;

    0 [label="X[0] <= 0.5\nentropy = 0.94\nsamples = 14\nvalue = [9, 5]"] ;

    1 [label="X[1] <= 1.5\nentropy = 0.985\nsamples = 7\nvalue = [3, 4]"] ;

    0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;

    2 [label="entropy = 0.0\nsamples = 3\nvalue = [0, 3]"] ;

    1 -> 2 ;

    3 [label="X[1] <= 2.5\nentropy = 0.811\nsamples = 4\nvalue = [3, 1]"] ;

    1 -> 3 ;

    4 [label="entropy = 0.0\nsamples = 2\nvalue = [2, 0]"] ;

    3 -> 4 ;

    5 [label="X[3] <= 0.5\nentropy = 1.0\nsamples = 2\nvalue = [1, 1]"] ;

    3 -> 5 ;

    6 [label="entropy = 0.0\nsamples = 1\nvalue = [1, 0]"] ;

    5 -> 6 ;

    7 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1]"] ;

    5 -> 7 ;

    8 [label="X[1] <= 2.5\nentropy = 0.592\nsamples = 7\nvalue = [6, 1]"] ;

    0 -> 8 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;

    9 [label="entropy = 0.0\nsamples = 4\nvalue = [4, 0]"] ;

    8 -> 9 ;

    10 [label="X[3] <= 0.5\nentropy = 0.918\nsamples = 3\nvalue = [2, 1]"] ;

    8 -> 10 ;

    11 [label="entropy = 0.0\nsamples = 2\nvalue = [2, 0]"] ;

    10 -> 11 ;

    12 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1]"] ;

    10 -> 12 ;

    }

    数据分析结果

    程序运行结果在与该程序在同一目录下的 table.pdf 文件中,将每一个叶子结点转换成IF-THEN 规则。

    决策树分析结果

    IF-THEN分类规则

    (1)IF"不是公司员工" AND "年龄大于等于40", THEN "不买保险"。

    (2)IF"不是公司员工" AND "年龄小于40", THEN "买保险"。

    (3)IF"不是公司员工" AND "年龄大于50" AND "信用为良", THEN "不买保险"。

    (4)IF"不是公司员工" AND "年龄大于40" AND "信用为优", THEN "买保险"。

    (5)IF"是公司员工" AND "年龄小于50", THEN "不买保险"。

    (6)IF"是公司员工" AND "年龄小于50" AND "信用为优", THEN "买保险"。

    (7)IF"是公司员工" AND "年龄小于50" AND "信用为良", THEN "不买保险"。

    展开全文
  • python 数据挖掘算法

    千次阅读 2022-02-19 17:05:33
    1、首先简述数据挖掘的过程 第一步:数据选择 可以通过业务原始数据、公开的数据集、也可通过爬虫的方式获取。 第二步: 数据预处理 数据极可能有噪音,不完整等缺陷,需要对数据进行数据标准化,方法有min-max ...

    1、首先简述数据挖掘的过程

    第一步:数据选择

            可以通过业务原始数据、公开的数据集、也可通过爬虫的方式获取。

    第二步: 数据预处理

            数据极可能有噪音,不完整等缺陷,需要对数据进行数据标准化,方法有min-max 标准化, z-score 标准化,修正的标准z-score。

    第三步:特征值数据转换

            将数据提取特征使这些数据符合特定数据挖掘算法的分析模型。数据模型有很多,等下详细讲解。

    第四步:模型训练

            选择好的数据挖掘算法对数据进行训练

    第五步:测试模型+效果评估

            有两种主流方法:

            十折交叉验证:将数据集随机分割成十个等份,每次用9份数据做训练集,1份数据做测试集,如此迭代10次。十折交叉验证的关键在于较平均地分为10份。

            N折交叉验证又称为留一法:用几乎所有的数据进行训练,然后留一个数据进行测试,并迭代每一数据测试。留一法的优点是:确定性。

    第六步:模型使用

            使用训练好的模型对数据进行预测。

    第七步:解释与评价

            对数据挖掘后的信息加以分析解释,并应用于实际的工作领域。

    2、主要的算法模型讲解 ——基于sklearn

    1)线性回归:希望所有点都落在直线上,所有点离直线的距离最近。首先假设好y=ax+b中a和b的值,然后计算每个数据点到这条直线上的距离总和,目的是要使这个总和最小!

    from sklearn.linear_model import LinearRegression
    # 定义线性回归模型
    model = LinearRegression(fit_intercept=True, normalize=False, 
        copy_X=True, n_jobs=1)
    """
    参数
    ---
        fit_intercept:是否计算截距。False-模型没有截距
        normalize: 当fit_intercept设置为False时,该参数将被忽略。 如果为真,则回归前的回归系数X将通过减去平均值并除以l2-范数而归一化。
         n_jobs:指定线程数
    """

    2)逻辑回归:二分算法,用于两分类问题。需要预测函数的“大概形式”, 比如是线性还是非线性的。

    上面有提到,该数据集需要一个线性的边界。 不同数据需要不同的边界。

    from sklearn.linear_model import LogisticRegression
    # 定义逻辑回归模型
    model = LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, 
        fit_intercept=True, intercept_scaling=1, class_weight=None, 
        random_state=None, solver=’liblinear’, max_iter=100, multi_class=’ovr’, 
        verbose=0, warm_start=False, n_jobs=1)
    
    """参数
    ---
        penalty:使用指定正则化项(默认:l2)
        dual: n_samples > n_features取False(默认)
        C:正则化强度的反,值越小正则化强度越大
        n_jobs: 指定线程数
        random_state:随机数生成器
        fit_intercept: 是否需要常量
    """

    3)朴素贝叶斯算法NB:用于判断某件事的发生概率,我就曾用此算法做过舆情分类器。将一些语句变为01二维矩阵,计算词语的出现频率,从而判断语句的情感色彩是怎样的。

    效率很高,但存在一定的错误概率

    概率模型朴素贝叶斯 原理与优点_lipeitong333的博客-CSDN博客

    from sklearn import naive_bayes
    model = naive_bayes.GaussianNB() # 高斯贝叶斯
    model = naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)
    model = naive_bayes.BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
    """
    文本分类问题常用MultinomialNB
    参数
    ---
        alpha:平滑参数
        fit_prior:是否要学习类的先验概率;false-使用统一的先验概率
        class_prior: 是否指定类的先验概率;若指定则不能根据参数调整
        binarize: 二值化的阈值,若为None,则假设输入由二进制向量组成
    """

    4)决策树DT:类似流程图的树结构,它使用分支方法来说明决策的每个可能结果。树中的每个节点代表对特定变量的测试 - 每个分支都是该测试的结果。

    决策树 信息增益与信息增益比_lipeitong333的博客-CSDN博客

    from sklearn import tree 
    model = tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None, 
        min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, 
        max_features=None, random_state=None, max_leaf_nodes=None, 
        min_impurity_decrease=0.0, min_impurity_split=None,
         class_weight=None, presort=False)
    """参数
    ---
        criterion :特征选择准则gini/entropy
        max_depth:树的最大深度,None-尽量下分
        min_samples_split:分裂内部节点,所需要的最小样本树
        min_samples_leaf:叶子节点所需要的最小样本数
        max_features: 寻找最优分割点时的最大特征数
        max_leaf_nodes:优先增长到最大叶子节点数
        min_impurity_decrease:如果这种分离导致杂质的减少大于或等于这个值,则节点将被拆分。
    """

    5)支持向量机SVM:就是判断线性可分不可分,能不能用直线分割两类数据!理论可以推广到三维,甚至思维以上的特征空间。三维使用平面来分隔数据,四维和四维以上因为人类 无法直观的感知出来,所以画不出来,但是能分隔数据,存在这样的平面叫做超平面。

    SVC 二值分类器 工作原理_lipeitong333的博客-CSDN博客

    from sklearn.svm import SVC
    model = SVC(C=1.0, kernel=’rbf’, gamma=’auto’)
    """参数
    ---
        C:误差项的惩罚参数C
        gamma: 核相关系数。浮点数,If gamma is ‘auto’ then 1/n_features will be used instead.
    """

    6)k近邻算法KNN:采用测量不同特征值之间距离的方法对数据进行分类的一个算法。

    给定一个样本的集合,这里称为训练集,并且样本中每个数据都包含标签。对于新输入的一个不包含标签的数据,通过计算这个新的数据与每一个样本之间的距离,选取前k个,通常k小于20,以k个剧里最近的数据的标签中出现次数最多的标签作为该新加入的数据标签。 

    K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。(这就类似于现实生活中少数服从多数的思想)根据这个说法,咱们来看下引自维基百科上的一幅图:

     

    • 如果K=3,绿色圆点的最邻近的3个点是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
    • 如果K=5,绿色圆点的最邻近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。 
    from sklearn import neighbors
    #定义kNN分类模型
    model = neighbors.KNeighborsClassifier(n_neighbors=5, n_jobs=1) # 分类
    model = neighbors.KNeighborsRegressor(n_neighbors=5, n_jobs=1) # 回归
    """参数
    ---
        n_neighbors: 使用邻居的数目
        n_jobs:并行任务数
    """

    7)K-均值聚类(K-means)

    • 定义目标聚类数K,例如,k=3
    • 随机初始化的 k 个聚类中心(controids)
    • 计算每个数据点到K个聚类中心的Euclidean Distance,然后将数据点分到Euclidean Distance最小的对应类聚中心的那类
    • 针对每个类别,重新计算它的聚类中心;
    • 重复上面 3-4 两步操作,直到达到某个中止条件(迭代次数、最小误差变化等)

    import pandas as pd
    import matplotlib.pyplot as plt
    from sklearn.cluster import KMeans
    
    df = pd.DataFrame({"x": [25, 34, 22, 27, 33, 33, 31, 22, 35, 34, 67, 54, 57, 43, 50, 57, 59, 52, 65, 47, 49, 48, 35, 33, 44, 45, 38, 43, 51, 46],
                       "y": [79, 51, 53, 78, 59, 74, 73, 57, 69, 75, 51, 32, 40, 47, 53, 36, 35, 59, 59, 50, 25, 20, 14, 12, 20, 5,  29, 27, 8,  7]})
    
    kmeans = KMeans(n_clusters=3).fit(df)
    centroids = kmeans.cluster_centers_
    # 打印类聚中心
    print(type(centroids), centroids)
    
    # 可视化类聚结果
    fig, ax = plt.subplots()
    ax.scatter(df['x'],df['y'],c=kmeans.labels_.astype(float),s=50, alpha=0.5)
    ax.scatter(centroids[:, 0], centroids[:, 1], c='red', s=50)
    plt.show()
    

    和KNN所不同,K-均值聚类属于无监督学习。

    监督学习知道从对象(数据)中学习什么,而无监督学习无需知道所要搜寻的目标,它是根据算法得到数据的共同特征。比如用分类和聚类来说,分类事先就知道所要得到的类别,而聚类则不一样,只是以相似度为基础,将对象分得不同的簇。

    More:

    FP-Growth_lipeitong333的博客-CSDN博客

    Apriori关联分析算法 -尿布与啤酒的故事_lipeitong333的博客-CSDN博客

    ps):我们在机器学习中一直会遇到两种问题,一种是回归问题,一种是分类问题。我们从字面上理解,很容易知道分类问题其实是将我们现有的数据分成若干类,然后对于新的数据,我们根据所分得类而进行划分;而回归问题是将现有数据拟合成一条函数,根据所拟合的函数来预测新的数据。 这两者的区别就在于输出变量的类型。回归是定量输出,或者说是预测连续变量;分类问题书定量输出,预测离散变量。Po一张我在知乎上看到的一张图片,解释的很好:



     3、sklearn自带方法joblib来进行保存训练好的模型

    from sklearn.externals import joblib
    
    # 保存模型
    joblib.dump(model, 'model.pickle')
    
    #载入模型
    model = joblib.load('model.pickle')


    参考链接:https://juejin.cn/post/6844903682576760846、https://juejin.cn/post/6961934412518785054、
    https://juejin.cn/post/6844903513504530446、https://juejin.cn/post/6974596282694254606、机器学习神器:sklearn的快速使用 - 掘金 (juejin.cn)机器学习之逻辑回归(纯python实现) - 掘金 (juejin.cn)

    机器学习笔记5-支持向量机1 - 掘金 (juejin.cn)

    展开全文
  • 通过 DCGAN网络来训练数据,从而产生人脸图像。 实验准备: 数据源的获取:根据人名随机地从网页图片上抓取包含人脸的图片。而人名的获取是从 Dbpedia上得到的,作为一个标准,他们都是出生在现代。这个数据集是来自1万...
  • python数据挖掘分析流程及代码

    千次阅读 2020-11-07 02:29:17
    数据预处理 1.数据去重 import pandas as pd # 导入pandas库 # 生成重复数据 data1 = ['a', 3] data2 = ['b', 2] data3 = ['a', 3] data4 = ['c', 2] df = pd.DataFrame([data1, data2, data3, data4], columns...

    数据预处理

    1.数据去重

    import pandas as pd # 导入pandas库
     
    # 生成重复数据
    data1 = ['a', 3]
    data2 = ['b', 2]
    data3 = ['a', 3]
    data4 = ['c', 2]
    df = pd.DataFrame([data1, data2, data3, data4], columns=['col1',
    'col2'])
    print (df)
     
    # 判断重复数据
    isDuplicated = df.duplicated() # 判断重复数据记录
    print (isDuplicated) # 打印输出
     
    # 删除重复值
    new_df1 = df.drop_duplicates() # 删除数据记录中所有列值相同的记录
    new_df2 = df.drop_duplicates(['col1']) # 删除数据记录中col1值相同的记录
    new_df3 = df.drop_duplicates(['col2']) # 删除数据记录中col2值相同的记录
    new_df4 = df.drop_duplicates(['col1', 'col2']) # 删除数据记录中指定列(col1/col2)值相同的记录
    print (new_df1) # 打印输出
    print (new_df2) # 打印输出
    print (new_df3) # 打印输出
    print (new_df4) # 打印输出

    2.缺失值处理

    对于缺失值的处理上,主要配合使用sklearn.preprocessing中的Imputer类、Pandas和Numpy。其中由于Pandas对于数据探索、分析和探查的支持较为良好,因此围绕Pandas的缺失值处理较为常用。

    import pandas as pd # 导入pandas库
    import numpy as np # 导入numpy库
    from sklearn.preprocessing import Imputer # 导入sklearn.preprocessing中的Imputer库
     
    # 生成缺失数据
    df = pd.DataFrame(np.random.randn(6, 4), columns=['col1', 'col2','col3', 'col4']) # 生成一份数据
    df.iloc[1:2, 1] = np.nan # 增加缺失值
    df.iloc[4, 3] = np.nan # 增加缺失值
    print (df)
     
    # 查看哪些值缺失
    nan_all = df.isnull() # 获得所有数据框中的N值
    print (nan_all) # 打印输出
    # 查看哪些列缺失
    nan_col1 = df.isnull().any() # 获得含有NA的列
    nan_col2 = df.isnull().all() # 获得全部为NA的列
    print (nan_col1) # 打印输出
    print (nan_col2) # 打印输出
     
    # 丢弃缺失值
    df2 = df.dropna() # 直接丢弃含有NA的行记录
    print (df2) # 打印输出
     
    # 使用sklearn将缺失值替换为特定值
    nan_model = Imputer(missing_values='NaN', strategy='mean',axis=0) # 建立替换规则:将值为Nan的缺失值以均值做替换
    nan_result = nan_model.fit_transform(df) # 应用模型规则
    print (nan_result) # 打印输出
     
    # 使用pandas将缺失值替换为特定值
    nan_result_pd1 = df.fillna(method='backfill') # 用后面的值替换缺失值
    nan_result_pd2 = df.fillna(method='bfill', limit=1) # 用后面的值替代缺失值,限制每列只能替代一个缺失值
    nan_result_pd3 = df.fillna(method='pad') # 用前面的值替换缺失值
    nan_result_pd4 = df.fillna(0) # 用0替换缺失值
    nan_result_pd5 = df.fillna({'col2': 1.1, 'col4': 1.2}) # 用不同值替换不同列的缺失值
    nan_result_pd6 = df.fillna(df.mean()['col2':'col4']) # 用平均数代替,选择各自列的均值替换缺失值
    # 打印输出
    print (nan_result_pd1) # 打印输出
    print (nan_result_pd2) # 打印输出
    print (nan_result_pd3) # 打印输出
    print (nan_result_pd4) # 打印输出
    print (nan_result_pd5) # 打印输出
    print (nan_result_pd6) # 打印输出
    airline_data = pd.read_csv('air_data.csv', encoding='gb18030')  # 以指定格式读取数据
    print('原始数据的尺寸为:',airline_data.shape)
    
    '''
    丢弃票价为空的记录
    '''
    exp1 = airline_data['SUM_YR_1'].notnull()
    exp2 = airline_data['SUM_YR_2'].notnull()
    airline_notnull = airline_data[exp1 & exp2]
    print('删除缺失记录后数据的尺寸为:',airline_notnull.shape)
    

     

    pd.isnull(t3)
    pd.notnull(t3)
    t3.[pd.notnull(t3['w'])]
    t3.dropna(axis=0,how="any")
    t3.dropna(axis=0,how="all")# 全为空值
    t3.dropna(axis=0,how='any',inplace=True)
    t2['age']=t2['age'].fillna(t2['age'].mean())
    t2['age'][1]=np.nan

    3.异常值处理

    有关异常值的确定有很多规则和方法,这里使用Z标准化得到的阀值作为判断标准:当标准化后的得分超过阀值则为异常。完整代码如下:

    但一般根据实际情况进行分析处理:

    import pandas as pd # 导入pandas库
     
    # 生成异常数据
    df = pd.DataFrame({'col1': [1, 120, 3, 5, 2, 12, 13],'col2':[12, 17, 31, 53, 22, 32, 43]})
    print (df) # 打印输出
     
    # 通过Z-Score方法判断异常值
    df_zscore = df.copy() # 复制一个用来存储Z-score得分的数据框
    cols = df.columns # 获得数据框的列名
    for col in cols: # 循环读取每列
    df_col = df[col] # 得到每列的值
    z_score = (df_col - df_col.mean()) / df_col.std() # 计算每列的Z-score得分
    df_zscore[col] = z_score.abs() > 2.2 # 判断Z-score得分是否大于2.2,如果是则是True,否则为False
    print (df_zscore) # 打印输出
    '''
    丢弃票价为0,平均折扣率不为0,总飞行公里数大于0的记录
    '''
    index1 = airline_notnull['SUM_YR_1'] == 0
    index2 = airline_notnull['SUM_YR_1'] == 0
    index3 = airline_notnull['avg_discount'] != 0
    index4 = airline_notnull['SEG_KM_SUM'] > 0
    airline = airline_notnull[-(index1&index2&index3&index4)]#按条件删除数据
    print('删除异常记录后数据的尺寸为:',airline.shape)
    
    """
    处理时间数据
    """
    airline_selection = airline.loc[:,['FFP_DATE','LOAD_TIME','FLIGHT_COUNT','LAST_TO_END','avg_discount','SEG_KM_SUM']]
    L = pd.to_datetime(airline_selection['LOAD_TIME'])-pd.to_datetime(airline_selection['FFP_DATE'])
    L = L.astype('str').str.split().str[0]
    L = L.astype('int')/30

    python Dataframe按条件删除某行,删除某列

    .删除df.ts_code大于等于"500000"且小于"600000"的所有行
         df = df.drop(df[(df.ts_code >= "500000") & (df.ts_code < "600000")].index)
    2.删除exchange_id列
         df = df.drop('exchange_id', axis=1)

     

    4.DataFrame常用操作

    """
    //标准化
    data_mean = data_train.mean()
    data_std = data_train.std()
    data_train = (data_train - data_mean)/data_std  
    """
    
    """
    dataframe操作
    """
    """
    data=airline_data.copy()
    data.shape
    data.dtypes
    data.index
    data.columns
    data.values
    data.head(3)
    data.describe()
    """

    5.数据筛选

    df[(df['Row_Labels'].str.len()>4)&(df["Count"]>700)]

    6.数据修改

    python dataframe选择满足某条件的行,进行操作

    数据如上图所示,现找出state中'state'列中含有字符'io'的行,将其的debt列赋值为'aa',实现代码如下:

    frame.ix[frame['state'].str.contains('io'),['debt']] = 'aa'
    frame

    现找出state中'state'列中等于‘Ohio’行,将其的debt列赋值为'aa',frame还是开头定义的,实现代码如下:

    frame.ix[frame['state']=='Ohio',['debt']] = 'aa'
    frame

    多个选择条件时,用(‘&’、‘|’),如现找出state中'state'列中等于‘Ohio’行或者‘Merry’的行,用'|',将其的debt列赋值为'aa',实现代码如下

    frame.ix[(frame['state']=='Ohio')|(frame['state']=='Merry'),['debt']] = 'aa'
    frame

     7.数据筛选

    https://blog.csdn.net/weixin_43689776/article/details/84395845

    8.分组聚合

    https://blog.csdn.net/brucewong0516/article/details/78768443

    https://blog.csdn.net/weixin_37536446/article/details/82109431

    https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/103951771    //函数齐全

    https://blog.csdn.net/weixin_42782150/article/details/90716533    //分组遍历讲的好

    https://blog.csdn.net/u014252563/article/details/70835271      //DataFrame执行groupby聚合操作后,如何继续保持DataFrame对象而不变成Series对象

    https://blog.csdn.net/weixin_43656359/article/details/104428030    //函数方法查表

    9.筛选日期

    7.3 
    # 라이브러리를 임포트합니다.
    import pandas as pd
    ​
    # 데이터프레임을 만듭니다.
    dataframe = pd.DataFrame()
    ​
    # 创建datetime
    dataframe['date'] = pd.date_range('1/1/2001', periods=100000, freq='H')
    dataframe
    # 두 datetime 사이의 샘플을 선택합니다.  筛选日期
    dataframe[(dataframe['date'] > '2002-1-1 01:00:00') &
              (dataframe['date'] <= '2002-1-1 04:00:00')]
    date
    8762	2002-01-01 02:00:00
    8763	2002-01-01 03:00:00
    8764	2002-01-01 04:00:00
    筛选日期
    # 设置索引
    dataframe = dataframe.set_index(dataframe['date'])
    ​
    #筛选日期
    dataframe.loc['2002-1-1 01:00:00':'2002-1-1 04:00:00']
    date
    date	
    2002-01-01 01:00:00	2002-01-01 01:00:00
    2002-01-01 02:00:00	2002-01-01 02:00:00
    2002-01-01 03:00:00	2002-01-01 03:00:00
    2002-01-01 04:00:00	2002-01-01 04:00:00
    

     

    展开全文
  • Python数据预处理实战 3. 常见分类算法介绍 4. 对鸢尾花进行分类案例实战 5. 分类算法的选择思路与技巧 一、数据挖掘与机器学习技术简介 什么是数据挖掘数据挖掘指的是对现有的一些数据进行相应的...
  • 聊天机器人(也可以称为语音助手、聊天助手、对话机器人等)是目前非常热门的人工智能研发方向与产品方向。目前己有一些比较成熟的产品,如苹果Siri、微软 Cortana与小冰、 Google Now、百度的“度秘”、 Facebook推出...
  • 全网最全python实现数据挖掘,数据分析(matlablib,pandas,numpy,量化分析)(附源代码) 个人公众号:yk 坤帝 后台回复数据挖掘1 获取源代码 1.横直方图电影票房 2.散点图3月与10月每天的天气 3.条形图电影...
  • 本文的数据来源是2009年UC1库中的 Wine Quality Data Set的数据,选取其中 Vinho Verde牌子的葡萄牙青酒数据作为分析探究,数据集共计1600个样本。在1600个样本数据中包含了11个表示该葡萄酒样本的物理及化学性质数据,...
  • 线性回归预测算法一般用以解决“使用已知样本对未知公式参数的估计”类问题。线性回归在整个财务中广泛应用于众多应用程序中。本文将介绍如何使用线性回归进行股票特征的提取与预测。
  • 通过 Python爬虫技术来实现一个网站票务信息的爬取任务实例。 网络爬虫的总体设计: 根据本例网络爬虫的概要设计,本例的网络爬虫是一个自动提取网页的程序,根据设定的主题判断其是否与主题相关,再根据配置文件中的...
  • python数据挖掘案例系列教程——python实现搜索引擎

    万次阅读 多人点赞 2018-01-07 20:32:07
    python数据挖掘系列教程 今天我们使用python实现一个网站搜索引擎。主要包含两个部分。网站数据库的生成、搜索引擎。其中搜索引擎部分我们使用单词频度算法、单词距离算法、外部回值算法、链接文本算法、pagerank...
  • 实例采用python3环境,编辑器采用Jupyter Notebook,安装使用方法请参考,本实例中所用到的附件内容放在文末,如果想要自行运行一下代码,可以尝试一下。 Jupyter Notebook介绍、安装及使用教程 亲和性分析示例 ...
  • python数据分析 数据集,包括源代码实例源码和数据集
  • python数据分析 tmdb电影数据分析 源码及数据
  • 数据分析精华案例-香水产品数据挖掘实用案例分析
  • Python数据挖掘实例:K均值聚类

    千次阅读 2020-06-10 17:21:31
    Python数据挖掘实例:K均值聚类任务任务要求数据预览分析代码实现结果分析数据文件链接 任务 任务要求 数据文件链接在全文的最后 借助Python软件进行上市公司财务状况数据挖掘与统计分析。 已知:132只股票、32个...
  • Python数据分析与挖掘实战》​ 在当今大数据驱动的时代,要想从事机器学习、人工智能、数据挖掘等前沿技术,离不开数据跟踪与分析,通过NumPy、Pandas等进行数据科学计算,通过Seaborn、Matplotlib等进行数据可视...
  • 数据挖掘与机器学习技术简介 Python数据预处理实战 常见分类算法介绍 对鸢尾花进行分类案例实战 分类算法的选择思路与技巧
  •  Python数据预处理实战 3. 常见分类算法介绍 4. 对鸢尾花进行分类案例实战 5. 分类算法的选择思路与技巧一、数据挖掘与机器学习技术简介什么是数据挖掘数据挖掘指的是对现有的一些数据进行相应的处理和分析,...
  • Python数据分析与挖掘

    2021-06-09 13:23:58
    围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。 三、数据采集篇: 通过网络爬虫实战解决数据...
  • 其中包含4个案例,以毕业论文的格式写出。包含原始数据代码可复制粘贴。
  • 数据挖掘 | [关联规则] 利用apyori库的关联规则python代码实现 数据挖掘 | [有监督学习——分类] 朴素贝叶斯及python代码实现——利用sklearn 数据挖掘 | [无监督学习——聚类] K-means聚类及python代码实现——利用...
  • 产品评论大数据挖掘情感分析python版,带有python代码和数据。
  • Python数据分析实例

    万次阅读 多人点赞 2019-06-14 22:13:37
    Python数据分析 Python爬取网页数据
  • 实例简介】【实例截图】【核心代码】《Python数据挖掘入门与实践》源码├── Chapter 1│ ├── affinity_dataset.txt│ ├── ch1_affinity.ipynb│ ├── ch1_affinity_create.ipynb│ └── ch1_oner_...
  • 基于python的情感分析,含有案例分析完整python脚本源码及所用数据

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,507
精华内容 10,202
关键字:

python数据挖掘实例代码