Python3数据分析与挖掘建模实战 笔记

省略号的问题

import numpy as np
import pandas as pd
pd.set_option('display.max_columns',1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth',1000)
numpy.set_printoptions(threshold=numpy.nan)

单因子探索分析与数据可视化

集中趋势: 均值、中位数、众数、分位数
离中趋势: 标准差、方差
偏态系数: 平均值偏离状态(中位数)的一种衡量
峰态系数: 数据分布集中强度的衡量,越大顶部越尖

数据分类

定类(类别): 根据事务离散、无差别属性进行的分类
定序(顺序): 可以界定数据的大小,但不能测定差值
定距(间隔): 可以界定数据大小的同时,可测定差值,但无绝对零点
定比(比率): 可以界定数据大小,可测定差值,有绝对零点

多因子探索分析

假设检验
卡方检验
方差检验
T检验:https://blog.csdn.net/m0_37777649/article/details/74938120

主成分分析法(PCA)

  1. 求特征协方差矩阵
  2. 求协方差的特征值和特征向量
  3. 将特征值按照从大到小的顺序排序,选择其中最大的K个
  4. 将样本点投影到选取的特征向量上

分类模型评估

关键指标(正确率、召回率、f-measure、查准率、FPR、FRR)
阈值选取(ROC、AUC、增益图、KS图)

回归模型评估

MAE、MSE、RMSE、r2_source

聚类模型评估

RMS、轮廓系数

关联模型评估

支持度、置信度、提升度

机器学习

KNN
朴素贝叶斯
决策树 (Gini系数,信息熵增益)
支持向量机(SVM)
集合方法(随机森林、Adaboost提升法)
罗基斯特映射
人工神经网络
线性回归(岭回归、Lasso)
回归树和提升树(GBDT)
聚类(K-means、DBSCAN、层次聚类、图分裂)
关联(关联规则、序列规则)
标签传播算法

    # 全部的20%做验证集,剩下80%,其中25%做测试集,75%做训练集
    x_tt, x_vad, y_tt, y_vad = train_test_split(f_v, l_v, test_size=0.2)
    x_train, x_test, y_train, y_test = train_test_split(x_tt, y_tt, test_size=0.25)

    # from sklearn.externals import joblib
    # joblib.dump(knn_cls,"knn_cls")

    models = []
    models.append(("KNN", KNeighborsClassifier(n_neighbors=3)))
    models.append(("GaussianNB",GaussianNB()))
    models.append(("BernoulliNB", BernoulliNB()))
    for clf_name,clf in models:
        clf.fit(x_train,y_train)
        xy_lst = [(x_train,y_train),(x_vad,y_vad),(x_test,y_test)]
        for i in range(len(xy_lst)):
            print(i)
            x_part = xy_lst[i][0]
            y_part = xy_lst[i][1]
            y_pred = clf.predict(x_part)
            print(clf_name,accuracy_score(y_part,y_pred))
            print(clf_name,recall_score(y_part, y_pred))
            print(clf_name,f1_score(y_part, y_pred))

数据初步检测顺序

  1. isnull(),检测是否有空值
  2. mean(), 检测平均值
  3. median(),检测中位数
  4. std(),检测标准差
  5. max(),检测最大值
  6. min(),检测最小值
  7. skew(),检测偏态系数
  8. kurt(),检测峰态系数
  9. 通过连续异常可以清除异常数据:[le_s<上四分位数+k(一般为1.5)*(上四分位数-下四分位数)][le_s>下四分位数-k*(上四分位数-下四分位数)]
  10. histogram(),可以画直方图

特征值提取

  1. 清洗数据
  2. 得到标注,就是需要研究的数据
  3. 把数值类型的数据,进行数据预处理,归一化(MinMaxScaler)或者标准化(StandardScaler)
  4. 把非数值类型的数据,进行数值化,独热编码(One-Hot Encoding)和 LabelEncoder标签编码
  5. 特征降维,PCA或者LDA

建模流程

  1. 划分训练集,测试集,验证集(train_test_split)
  2. 选择模型(分类、回归、聚类、关联、半监督)
  3. 模型评估

你可能感兴趣的:(Python)