导图社区 数据分析与编程学习网站推荐
技术:数据分析与编程学习网站推荐,分为综合网站、数据源、数据库、数据治理、数据分析、可视化、编程等进行了归纳。
编辑于2022-03-19 16:25:46技术:数据分析与编程
综合网站
学习类
应用类
数据源
政府公开数据
深圳政府公开数据
广东政府公开数据
股市数据
Tushare
公司数据
API京东数据
信贷数据
Club
数据库
HADOOP
mysql
MySQL 教程
MongoDB
MongoDB 教程
数据治理
研究报告
洞见研报:【CESI】数据治理工具图谱研究报告(2021版)
洞见研报:【北大光华+蚂蚁金服】蚂蚁金服:数据分析平台演进及数据分析方法应用
数据分析
Python 3
Python 3 教程
正则表达式
正则表达式 - 教程
贷后数据分析
知乎:信贷风控中Vintage、滚动率、迁移率的理解
可视化
产品
FineReport报表软件
编程
Go 语言
Go 语言教程
SVN
SVN 教程
机器学习
数据库
一、 数据库类型
二、 Mysql
三、 Hive
ER图(实体关系图)
数据库教程
四、 书籍-SQL必知必会(第5版)
第1课 了解SQL
1.1 数据库基础
1.2 什么事SQL
1.3 动手实践
第2课 检索数据
2.1 SELECT语句
备注
QL语句不区分大小写
许多SQL开发人员喜欢对SQL关键字使用大写,而对列名和表名使用小写
2.2 检索单个列
2.3 检索多个列
2.4 检索所有列
2.5 检索不同的值
2.6 限制结果
2.7 使用注释
2.8 小结
2.9 挑战题
第3课 排序检索数据
3.1 排序数据
语法
ORDER BY prod_name
除了指示DBMS软件对prod_name列以字母顺序排序数据的ORDER BY子句外,这条语句与前面的语句相同。
3.2 按多个列排序
语法
ORDER BY prod_name1, prod_name2
3.3 按列位置排序
显然,当根据不出现在SELECT清单中的列进行排序时,不能采用这项技术。但是,如果有必要,可以混合使用实际列名和相对列位置。
语法
ORDER BY 1, 2
3.4 制定排序方向
DESC是DESCENDING的缩写,这两个关键字都可以使用。与DESC相对的是ASC(或ASCENDING),在升序排序时可以指定它。但实际上,ASC没有多大用处,因为升序是默认的(如果既不指定ASC也不指定DESC,则假定为ASC)。 在字典(dictionary)排序顺序中,A被视为与a相同,这是大多数数据库管理系统的默认做法。但是,许多DBMS允许数据库管理员在需要时改变这种行为(如果你的数据库包含大量外语字符,可能必须这样做)。这里的关键问题是,如果确实需要改变这种排序顺序,用简单的ORDER BY子句可能做不到。你必须请求数据库管理员的帮助。
语法
ORDER BY prod_name1 DESC, prod_name2
DESC关键字只应用到直接位于其前面的列名。在上例中,只对prod_price列指定DESC,对prod_name列不指定。因此,prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序。
3.5 小结
3.6 挑战题
第4课 过滤数据
4.1 使用WHERE子句
4.2 WHERE字句操作符
4.3 小结
4.4 挑战题
第5课 高级数据过滤
5.1 组合WHERE子句
5.2 IN操作符
5.3 NOT操作符
5.4 小结
5.5 挑战题
第6课 用通配符进行过滤
6.1 LIKE操作符
6.2 使用通配符的技巧
6.3 小结
6.4 挑战题
第7课 创建计算字段
7.1 计算字段
7.2 拼接字段
7.3 执行算术计算
7.4 小结
7.5 挑战题
第8课 使用函数处理数据
8.1 函数
8.2 使用函数
8.2.1 文本处理函数
8.2.2 日期和时间处理函数
8.2.3 数值处理函数
ABS()
COS()
EXP()
PI()
SIN()
SORT()
SORT()
TAN()
8.3 小结
8.4 挑战题
第9课 汇总数据
9.1 聚集函数
9.1.1 AVG()函数
AVG()函数忽略列值为NULL的行。
9.1.2 COUNT()函数
9.1.3 MAX()函数
9.1.4 MIN()函数
9.1.5 SUM()函数
9.2 聚集不同值
9.3 组合聚集函数
9.4 小结
9.5 挑战题
第10课 分组数据
10.1 数据分组
10.2 创建分组
10.3 过滤分组
10.4 分组何排序
10.5 SELECT子句顺序
10.6 小结
10.7 挑战题
第11课 使用子查询
11.1 子查询
11.2 利用子查询进行过滤
11.3 作为计算字段使用子查询
11.4 小结
11.5 挑战题
第12课 联结表
12.1 联结
12.2 创建联结
12.3 小结
12.4 挑战题
第13课 创建高级联结
13.1 使用表别名
13.2 使用不同类型的联结
13.3 使用带聚类函数的联结
13.4 使用联结何联结条件
13.5 小结
13.6 挑战题
第14课 组合查询
14.1 组合查询
14.2 创建组合查询
14.3 小结
14.4 挑战题
第15课 插入函数
15.1 数据插入
15.1.1 插入完整的行
15.1.2 插入部分行
15.1.3 插入检索出的数据
15.2 从一个表复制到另一个表
第16课 更新和删除数据
16.1 更新数据
16.2 删除数据
16.3 更新和删除的指导原则
第17课 创建和操纵表
17.1 创建表
17.2 更新表
17.3 删除表
17.4 重命名表
第18课 使用视图
18.1 视图
(1) 含义
1| 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。
(2) 作用
1| 简化复杂的SQL操作
2| 重用代码
3| 更改数据格式和表示
4| 使用表的一部分而不是整个表
5| 保护数据
6| 更改数据格式和表示
(3) 要求
1| 与表一样,视图必须唯一命名
(4) 注意
1| 性能问题
2| 对于可以创建的视图数目没有限制
3| 创建视图,必须具有足够的访问权限
4| 视图可以嵌套
5| 许多DBMS禁止在视图查询中使用ORDER BY子句
6| 有些DBMS要求对返回的所有列进行命名
7| 视图不能索引,也不能有关联的触发器或默认值
8| 有些DBMS把视图作为只读的查询
18.2 创建视图
(1) 创建视图语法
(1)
CREATE VIEW AS viewname
(2) 删除视图语法
DROP VIEW viewname
(3) 视图应用
可以用多层视图,不同视图的信息不同(不同信息代表着不同的权限)
第19课 使用存储过程
19.1 存储过程
19.2 为什么要使用存储过程
19.3 执行存储过程
19.4 创建存储过程
1| 创建过程
1| Oracle案例 这个存储过程有一个名为ListCount的参数。此参数从存储过程返回一个值而不是传递一个值给存储过程。关键字OUT用来指示这种行为。Oracle支持IN(传递值给存储过程)、OUT(从存储过程返回值,如这里)、INOUT(既传递值给存储过程也从存储过程传回值)类型的参数。存储过程的代码括在BEGIN和END语句中,这里执行一条简单的SELECT语句,它检索具有邮件地址的顾客。然后用检索出的行数设置ListCount(要传递的输出参数)。
IN(传递值给存储过程); OUT(从存储过程返回值,如这里); INOUT(既传递值给存储过程也从存储过程传回值)类型的参数
BEGIN和END语句:BEGIN和END语
2| 调用过程
2| 分析▼这段代码声明了一个变量来保存存储过程返回的任何值,然后执行存储过程,再使用SELECT语句显示返回的值。
声明了一个变量来保存存储过程返回的任何值
执行存储过程
SELECT语句显示返回的值
第20课 管理事务处理
20.1 事务处理
事务(transaction)指一组SQL语句 使用事务处理(transaction processing),通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性。
1| 事务定义:事务(transaction)指一组SQL语句
2| 回退(rollback)指撤销指定SQL语句的过程
3| 提交(commit)指将未存储的SQL语句结果写入数据库表
4| 保留点(savepoint)指事务处理中设置的临时占位符(placeholder),可以对它发布回退(与回退整个事务处理不同)
5| 事务处理用来管理INSERT、UPDATE和DELETE语句
5| 不能回退SELECT语句(回退SELECT语句也没有必要),也不能回退CREATE或DROP操作。事务处理中可以使用这些语句,但进行回退时,这些操作也不撤销。
6| 事务处理不能回退CREATE或DROP操作
20.2 控制事务处理
1| SQL Server
2| MariaDB和MySQL
3| Oracle
4| PostgreSQL使用ANSI SQL语法
第21课 使用游标
21.1 游标
定义:SQL检索操作返回一组称为结果集的行
游标与视图的差异,视图是查询的语句,游标是查询的实际结果。 这组返回的行都是与SQL语句相匹配的行(零行到多行)。简单地使用SELECT语句,没有办法得到第一行、下一行或前10行。但这是关系DBMS功能的组成部分。
21.2 使用游标
使用要点
在使用游标前,必须声明(定义)它
这个过程实际上没有检索数据,它只是定义要使用的SELECT语句和游标选项
一旦声明,就必须打开游标以供使用
这个过程用前面定义的SELECT语句把数据实际检索出来。 如果不使用会怎么样?
对于填有数据的游标,根据需要取出(检索)各行
在结束游标使用时,必须关闭游标,可能的话,释放游标(有赖于具体的DBMS)
使用步骤
创建游标
使用游标
关闭游标
Mysql:CLOSE ordernumbers
第22课 高级SQL特性
22.1 约束
DBMS通过在数据库表上施加约束来实施引用完整性
定义
类型
主键
外键
外键是表中的一列,其值必须列在另一表的主键中。外键是保证引用完整性的极其重要部分
唯一约束
检查约束
22.2 索引
用途
索引用来排序数据以加快搜索和排序操作的速度。
注意
索引改善检索操作的性能,但降低了数据插入、修改和删除的性能
索引改善检索操作的性能,但降低了数据插入、修改和删除的性能。在执行这些操作时,DBMS必须动态地更新索引
索引数据可能要占用大量的存储空间
并非所有数据都适合做索引
并非所有数据都适合做索引
索引用于数据过滤和数据排序
索引用于数据过滤和数据排序。如果你经常以某种特定的顺序排序数据,则该数据可能适合做索引。
可以在索引中定义多个列(例如,州加上城市)
可以在索引中定义多个列(例如,州加上城市)。这样的索引仅在以州加城市的顺序排序时有用。如果想按城市排序,则这种索引没有用处。
索引必须唯一命名
创建索引
索引必须唯一命名。这里的索引名prod_name_ind在关键字CREATE INDEX之后定义。ON用来指定被索引的表,而索引中包含的列(此例中仅有一列)在表名后的圆括号中给出。
使用索引?
22.3 触发器
提示:约束比触发器更快一般来说,约束的处理比触发器快,因此在可能的时候,应该尽量使用约束。
定义
触发器是特殊的存储过程,它在特定的数据库活动发生时自动执行。触发器可以与特定表上的INSERT、UPDATE和DELETE操作(或组合)相关联。与存储过程不一样(存储过程只是简单的存储SQL语句),触发器与单个的表相关联。与Orders表上的INSERT操作相关联的触发器只在Orders表中插入行时执行。类似地,Customers表上的INSERT和UPDATE操作的触发器只在表上出现这些操作时执行。
触发器是特殊的存储过程,它在特定的数据库活动发生时自动执行
触发器内的代码数据的访问权
INSERT操作中的所有新数据
UPDATE操作中的所有新数据和旧数据
DELETE操作中删除的数据
触发器常见用途
读者可能已经注意到了,不同DBMS的触发器创建语法差异很大,更详细的信息请参阅相应的文档。
保证数据一致
基于某个表的变动在其他表上执行活动
进行额外的验证并根据需要回退数据
计算列的值或更新时间戳
触发器使用
注意
一般来说,约束的处理比触发器快
在可能的时候,应该尽量使用约束
22.4 数据库安全
附录A 样例表脚本
附录B SQL语句的语法
附录C SQL数据类型
附录D SQL保留字
常用SQL语句速查
五、 SQL操作
1. 基本操作
查询数据库
SHOW DATABASES [LIKE '数据库名']
选择数据库
USE <数据库名>
表结构
DESC 表名
2. 条件查询
2. NULL值处理 IFNULL(字段名, 0) 将某字段中null值替换成0 IS NOT NULL <=> NULL 判断是否为null
选择
SELECT
条件
WHERE
条件运算符
> <= != <> < >
不能用于判断null
逻辑表达式
&& and, || or, ! not
模糊查询
"like, between and(包含临界值), in is nul"
通配符: % 任意多个字符 _ 任意单个字符 _\_% in (’a', 'b','c') //in 相当于 = ,不能用通配符
安全等于
<=> 等于,也可以判断null
3. 排序查询
ORDER BY
ORDER BY {<列名> | <表达式> | <位置>} [ASC|DESC]
SELECT * FROM tb_students_info ORDER BY height;
SELECT * FROM tb_students_info ORDER BY height DESC, light ASC 同时有升序与降序排列
4. 分组查询
GROUP BY
GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC]
SELECT dept_id,GROUP_CONCAT(name) AS names -> FROM tb_students_info -> GROUP BY dept_id;
分组查询搭配分组函数使用
5. 子查询
IN
<表达式> [NOT] IN <子查询>
SELECT name FROM tb_students_info -> WHERE dept_id IN -> (SELECT dept_id -> FRO artments -> WHERE dept_type= 'A' );
6. 联合查询
UNION:行连接
查询语句1 UNION 查询语句2
7. 视图
创建视图
CREATE VIEW
CREATE VIEW <视图名> AS <SELECT语句>
CREATE VIEW v_students_info -> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date) -> AS SELECT id,name,dept_id,age,sex,height,login_date -> FROM tb_students_info; Query OK, 0 rows affected (0.06
修改视图
ALTER VIEW
ALTER VIEW <视图名> AS <SELECT语句>
LTER VIEW view_students_info -> AS SELECT id,name,age -> FROM tb_students_info;
删除视图
DROP VIEW
DROP VIEW <视图名1> [ , <视图名2> …]
DROP VIEW IF EXISTS v_students_info;
8. 连接
内连
INNER JOIN
SELECT <列名1,列名2 …> FROM <表名1> INNER JOIN <表名2> [ ON子句]
SELECT id,name,age,dept_name FROM tb_students_info,tb_departments WHERE tb_students_info.dept_id=tb_departments.dept_id;
外连
六、 主要操作
一列处理之后若干行合并
一列处理之后为另一列
多个列运算为一个列
多张表合并
建立一个新的视图,新建列明
七、 目标实现
数据
一、 元数据
二、 数据结构
长日期关系
三、 数据合并
四、 数据类型
五、 数据关系
六、 报文
七、 数据库字典
数学与统计
一、 数理理论
概率论
书籍-概率论与数理统计
几何概率
概率分布
随机过程
马尔科夫过程
随机分析
应用概率论
数理统计学
书籍-统计学
抽样理论
假设检验
非参数统计
方差分析
相关回归分析
统计推断
贝叶斯统计
试验设计
多元分析
统计判决理论
时间序列分析
应用统计学
统计质量控制
可靠性数据
保险数学
统计模拟
二、 模型研究
线性回归
逻辑回归
XGB
SVM
决策树
GBDT
提升树
三、 数据分析
数据分析模型
模型验证
风控模型—群体稳定性指标(PSI)深入理解应用
风控模型—区分度评估指标(KS)深入理解应用
风控模型—WOE与IV指标的深入理解应用
python
一、 认知:在线编辑
1. Python3在线工具
二、 认知:库
1. Python
(1) 基本功能
数据类型:type(a)
2. NumPy
(1) 基本数据结构
1| NumPy Ndarray对象
1| # -*- coding: utf-8 -*- import numpy as np a = np.array([[1,2,3],[2,3,4]], ndmin = 5, dtype = complex) print(a) Ndarray对象就是N维数组类型,数组可以有基本的操作,但是不同于向量,向量是有方向的。 疑问: (1)dtype的类型有哪些?在下一节内容中有介绍 (2)数组的应用如何理解?包括被操作、方法、索引等。
创建Ndarray对象:numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
2| NumPy - 数据类型
内置数据类型numpy.int/bool
创建新数据类型numpy.dtype(object, align, copy)
3| NumPy-数组
属性大小:ndarray.shape();调整维度:ndarray.shape=(2,3)/ndarray.reshape(2,4,3)
属性维数:ndarray.ndim
每个元素的字节单位长度:numpy.itemsize
多个属性集合:numpy.flags
(2) 文件操作
1| NumPy IO文件操作
(3) 数据运算
1| NumPy - 线性代数
两个数组的点积:numpy.dot(a,b)
两个向量的点积:numpy.vdot(a,b)
两个数组的内积:numpy.inner(a,b)
两个数组的矩阵积:numpy.matmul()
数组的行列式:numpy.determinant()
求解线性矩阵方程:numpy.solve()
寻找矩阵的乘法逆矩阵:numpy.inv()
2| NumPy - 统计函数
沿轴的值的最大最小值:numpy.amin(ndarray,axis) 和 numpy.amax(ndarray,axis)
沿轴的值的范围(最大值 - 最小值):numpy.ptp(ndarray,axis)
百分位数:numpy.percentile(a, q, axis)
数据样本的上半部分与下半部分分开的值:numpy.median()
算术平均值:numpy.mean(a)
加权平均值:numpy.average(a)
3| NumPy - 算数运算
加减乘除:numpy.add(a,b),subtract(a,b),multiply(a,b)和divide(a,b)
numpy.reciprocal(a):此函数返回参数逐元素的倒数
numpy.power():将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂
numpy.mod(a,b):返回输入数组中相应元素的除法余数
4| NumPy - 算数函数
三角函数
numpy.sin,cos和tan
numpy.arcsin,arccos,和arctan
舍入函数
numpy.around()
numpy.floor()
numpy.ceil()
5| NumPy - 字符串函数
5| 序号 函数及描述 1.add() 返回两个str或Unicode数组的逐个字符串连接 2.multiply() 返回按元素多重连接后的字符串 3.center() 返回给定字符串的副本,其中元素位于特定字符串的中央 4.capitalize() 返回给定字符串的副本,其中只有第一个字符串大写 5.title() 返回字符串或 Unicode 的按元素标题转换版本 6.lower() 返回一个数组,其元素转换为小写 7.upper() 返回一个数组,其元素转换为大写 8.split() 返回字符串中的单词列表,并使用分隔符来分割 9.splitlines() 返回元素中的行列表,以换行符分割 10.strip() 返回数组副本,其中元素移除了开头或者结尾处的特定字符 11.join() 返回一个字符串,它是序列中字符串的连接 12.replace() 返回字符串的副本,其中所有子字符串的出现位置都被新字符串取代 13.decode() 按元素调用str.decode 14.encode() 按元素调用str.encode
函数用于对dtype为numpy.string_或numpy.unicode_的数组执行向量化字符串操作
6| NumPy - 矩阵库
mat()函数将目标数据的类型转化成矩阵(matrix)
NumPy 包含一个 Matrix库numpy.matlib
3. Scipy
4. Pandas
(1) 文件操作
1| Pandas IO工具
1| # -*- coding: utf-8 -*- import pandas as pd import numpy as np fname = "D:/python3_exam/model1/2.xls" dataf = pd.read_excel(fname) print(dataf.head()) print(dataf.pivot_table("信息类别", "诉讼地位", "查询模式", aggfunc="count")) //遇到的问题// 1、ImportError: No module named ‘xlrd‘ 解决办法 https://www.baidu.com/link?url=p1SW4MIDBFpqKVTYt51BAyTNWo6anVXXWbH3n3QRifSyiDwZef-wzzmRfAaOIvrlxnACv9USj7Vzn5xCtlKoBikZQ6YKpG79GogXqYSAvIO&wd=&eqid=f79e8f890001b5fc0000000661dd2dc7
pd = read.csv("文件路径")
pd =read.excel("文件路径")
(2) 基本数据结构
1| Pandas系列(Series)
2| Pandas数据帧(DataFrame)
创建DataFrame:df = pd.DataFrame(data)
3| Pandas面板(Panel)
4| Pandas基本功能
dataframe函数与属性
值(ndarray)dt.valuse
大小:dt.size
开始n行:dt.head(n)
最后n行:dt.tail(n)
维数:dt.ndim
数据类型:dt.dtypes
转置行和列:dt.T
行轴标签和列轴标签列表:dt.axes
(3) 数据操作
1| Pandas索引和选择数据
.loc[:,'标签名']基于标签
.iloc[]基于整数
.ix[]基于标签和整数
2| Pandas重建索引
3| Pandas迭代
4| Pandas排序
5| Pandas索引和选择数据
6| Pandas聚合
7| Pandas缺失数据
8| Pandas合并/连接
9| Pandas级联
(4) 数据计算
1| 描述性统计信息的函数
1| # -*- coding: utf-8 -*- import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack', 'Lee','David','Gasper','Betina','Andres']), 'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])} #Create a DataFrame df = pd.DataFrame(d) print(df.values) print(df.sum()) print(df.sum(1))
2| Pandas统计函数
(5) 数据输出
Pandas可视化
5. sklearn
6. 自然语言处理
7. Matplotlib
8. pymysql
导入模块:
import pymysql
建立连接:
db = pymysql.connect("localhost","root","123456","test" )
建立对象
cursor = db.cursor()
执行语句
cursor.execute("SELECT VERSION()")
断开连接:
db.close()
三、 操作
1. 数据读取
(1) 文件-表
1| python内置
2| pandas文件处理
(2) 表-数据
1| dataframe读取series
1| RESULT_ID = dataf.loc[:,"RESULT_ID"]
(3) 数据-数组
1| 建立numpy.array
2. (整张表)数据处理
(1) 整表处理
1| pandas数据处理
(2) 单列处理
1| 去重
通过集合去重 RESU = list(set(RESULT_ID))
RESU1 = pd.Series(RESU) 可以将列表转为series格式,然后再转为dataframe格式
2| 选择数据
dataf.loc[dataf["RESULT_ID"]==1052,"FINANCEORG"] #主键条件选择FINANCEORG列数据
3. (整张表)数据统计
(1) 整表统计
1| dataframe
2| ndarray
(2) 单列统计
4. (若干表)运算
(1) 计算类型
1| 单表_单列
2| 单表_多列
3| 多表_单列
4| 多表_多列
(2) 计算步骤
1| 筛选主键
2| 主键去重
3| 选择某主键值数据
4| 单ID号计算
5| 循环计算所有ID号值
(3) 运算(单标_单列)
(4) 运算(单表_多列)
5. (数据表)存放数据
(1) dataframe
1| 通过Series创建dataframe
增加一列:pd.DataFrame(population,columns=['population'])
2| 增加一行
df.loc[n]:直接给某行进行赋值,远远超过当前行数也可,例如dta.loc[33333333]=[10110001,2]
df.append():增加行,同列名的在后面增加,无同列明的既增加新的列,有增加新的行,如果不要增加新的列,则需要先处理数据为相同列名,如:dta.append(pd.DataFrame([[1,2]],clomus=[RESULT_ID,B]),ignore_index=True)
dta.append(pd.DataFrame([[1,2]],clomus=[RESULT_ID,B]),ignore_index=True) 要注意的点包括,pd.DataFrame([[1,2]])才表示一行,pd.DataFrame([1,2])表示一列 dta.append(dta)不能让dta发生变化,只有通过dta=dta.append(dta)才行,这点与insert()不同
3| 增加一列
df[]=[]:直接填入新增加的列名与值即可,但是行数需要匹配起来,例如dta["b"]=[1,2,3,4,5,6,7,8,9]
insert():增加的列的行数要保持一致,例如dta.insert(1,2,[0,1,2,3,4,5,6,7,8,9], allow_duplicates=False)
# 即df.insert(添加列位置索引序号,添加列名,数值,是否允许列名重复)
(2) 存入文件
1| python内置
2| pandas文件处理
6. (单列)指标分析
(1) 指标分档
7. (标准化表)建模
8. 相关性分析
(1) DataFrame
dt.corr()
9. 检验
10. 可视化
11. 文字处理
12. 爬虫
13. 保存文件
四、 主题
1. 信贷分析
(1) 表
1| 分析表结构
2| 分析业务含义
3| 分析数据结构
(2) 获取数据
(3) 数据清洗
(4) 确定分析数据结构
(5) 计算指标值
(6) 指标分析
2. 信贷数据验证
python
一、 案例
Lending Club 数据 做数据分析&评分卡
项目目的
研究Lending Club 贷款的风险特征,并提出建模方案
数据获取
数据集来自Lending Club平台发生借贷的业务数据,2017年第一季度,具体数据集可以从Lending Club官网下载,需要先用邮箱注册一个账号。
数据探索
导入需要用到的工具
导入数据
先把标签处理一下
处理缺失值
数据描述
建模准备工作
查看缺失值具体情况,并决定填充策略
特征抽象
同值信息处理
连续变量分箱
用随机森林对变量重要程度排序
计算woe值与IV值
开始训练模型
输出评分卡
二、 书籍
Python金融大数据挖掘 与分析全流程详解
机器学习实战:基于 Scikit-Learn、Keras和TensorFlow
第一部分 机器学习的基础知识
第1章 机器学习概览
第2章 端到端的机器学习项目
第3章 分类
第4章 分类模型
第5章 支持向量机
第6章 决策树
第7章 集成学习何随机森林
第8章 降维
第9章 无监督学习技术
第二部分 神经网络与深度学习
第10章 Keras人工神经网络简介
第11章 训练深度神经网络
第12章 使用TensoFlow自定义模型和训练
第13章 使用TensorFlow加载和预处理数据
第14章 使用卷积云神经网络的深度计算机视觉
第15章 使用RNN和CNN处理序列
第16章 使用RNN和注意力机制进行自然语言处理
第17章 使用自动编译码器和GAN的特征学习和生成学习
第18章 强化学习
第19章 大规模训练和部署TensorFlow模型
附录
附录A 课后联系题解答
附录B 机器学习项目清单
附录C SVM对偶问题
附录D自动微分
附录E 其他流动的人工神经网络架构
附录F特殊数据结构
附录G TensorFlow图
数据分析实现
一、 数据挖掘
1. 百度百科:数据挖掘
2. 数据挖掘分析方法
3. 经典算法
二、 构建模型
1. 知乎-模型构建和优化过程(有点乱)
1. 一、预处理过程 探索数据集、数据预处理、特征工程。 ——见相关笔记 二、构建模型过程 包括构建模型的预处理,选择算法与模型优化,而模型优化涉及评估验证和调参。 三、预测过程
2. 知乎:基于Python互联网金融 LeningClub贷款违约预测模型
3. 如何搭建金融信贷风控中的机器学习模型
三、 特征工程
三、
1. 知乎:特征工程到底是什么?
2. 一文读懂特征工程
四、 工具
1. 数据挖掘工具
2. 特征工程工具
3. 建模工具