M3. 实战python算法
实战算法
sevieryang
DM/DW/Statistics/Quant
展开
-
时间序列常用的一些基本概念
1 年=52周251工作日21工作日原创 2020-12-18 13:15:59 · 261 阅读 · 0 评论 -
预测分析1:根据一年的历史数据预测后十年的数据趋势
import pandas as pdimport numpy as npfrom scipy import statsimport matplotlib.pyplot as pltimport statsmodels.api as smfrom statsmodels.graphics.api import qqplot#读取数据,进行处理dta = [10930,10318,...原创 2019-02-01 01:52:35 · 14176 阅读 · 3 评论 -
深度学习笔记整理1 - 手写数字识别
手写数字识别MNIST数据集(修改的国家标准与技术研究所——Modified National Institute of Standards and Technology),是一个大型的包含手写数字图片的数据集。该数据集由0-9手写数字图片组成,共10个类别。每张图片的大小为28 * 28。加载必要的库import tensorflow as tf# tensorflow提供了关于手写数字...原创 2019-02-20 09:36:22 · 1466 阅读 · 0 评论 -
深度学习笔记整理2 - 感知器算法
感知器算法说明1957年,美国学者Frank Rossenblatt(弗兰克·罗森布拉特)提出了感知器(感知机)算法。感知器用来接收多个信号,输出一个信号(由多个神经元组成)。每个输入信号具有一定的权重,计算多个输入信号的值与权重的乘积和,根据该结果(和)与指定的阈值进行比较,来决定该神经元是否被激活。说明:感知器是神经网络起源的算法,该思想对于学习神经网络是非常具有指导意义的。算法...原创 2019-02-18 13:04:18 · 2542 阅读 · 0 评论 -
一期:Scorecard Model Testing
import pandas as pdfrom pandas import DataFrameimport datetimeimport collectionsimport numpy as npimport numbersimport randomfrom pandas.tools.plotting import scatter_matrixfrom itertools impo...原创 2019-02-28 23:41:29 · 377 阅读 · 0 评论 -
一期:scorecard model features
import pandas as pdimport datetimeimport collectionsimport numpy as npimport randomfrom sklearn.preprocessing import MDLPdef TimeWindowSelection(df, daysCol, time_windows): ''' :param...原创 2019-02-28 23:39:57 · 397 阅读 · 0 评论 -
一期:neural network
import pandas as pdfrom numpy import *import tensorflow as tffrom tensorflow.contrib.learn.python.learn.estimators import SKCompatfrom sklearn.model_selection import train_test_splitfrom sklearn ...原创 2019-02-27 23:52:32 · 260 阅读 · 0 评论 -
一期:neural network
import pandas as pdfrom numpy import *import tensorflow as tffrom tensorflow.contrib.learn.python.learn.estimators import SKCompatfrom sklearn.model_selection import train_test_splitfrom sklearn ...原创 2019-02-27 23:52:32 · 362 阅读 · 0 评论 -
二期:BSc Developement
from sklearn.neural_network import MLPClassifier'''串行结构的组合模型'''#随机从所有的变量种选取一部分构建神经网络模型trainData_trial = trainData.copy()randomSelectedFeatures = random.sample(WOE_IV_dict.keys(),20)randomSe...原创 2019-02-27 23:50:40 · 145 阅读 · 0 评论 -
二期:Combined Scorecards
from sklearn.neural_network import MLPClassifier'''串行结构的组合模型'''#随机从所有的变量种选取一部分构建神经网络模型trainData_trial = trainData.copy()randomSelectedFeatures = random.sample(WOE_IV_dict.keys(),20)randomSe...原创 2019-02-27 23:49:16 · 285 阅读 · 0 评论 -
二期:cluster for bank customer4
import pandas as pdimport numpy as npimport pickleimport randomimport scipy.cluster.hierarchy as schfrom matplotlib import pyplot as pltfrom numpy import meanfrom sklearn.cluster import KMeans...原创 2019-02-27 23:47:30 · 221 阅读 · 1 评论 -
量化交易:lecture_code 03 retrieving
#!/usr/bin/python# -*- coding: utf-8 -*-# retrieving_data.pyfrom __future__ import print_functionimport pandas as pdimport MySQLdb as mdbif __name__ == "__main__": # Connect to the MySQ...原创 2019-02-27 23:45:01 · 147 阅读 · 0 评论 -
量化交易:lecture_code 03 retrieving
#!/usr/bin/python# -*- coding: utf-8 -*-# retrieving_data.pyfrom __future__ import print_functionimport pandas as pdimport MySQLdb as mdbif __name__ == "__main__": # Connect to the MySQ...原创 2019-02-27 23:45:01 · 227 阅读 · 0 评论 -
量化交易:lecture_code 03 retrieving
#!/usr/bin/python# -*- coding: utf-8 -*-# retrieving_data.pyfrom __future__ import print_functionimport pandas as pdimport MySQLdb as mdbif __name__ == "__main__": # Connect to the MySQ...原创 2019-02-27 23:45:01 · 236 阅读 · 0 评论 -
量化交易:lecture_code 05 ROC
# Rate of Change code# Load the necessary packages and modulesimport pandas as pdimport pandas.io.data as webimport matplotlib.pyplot as plt# Rate of Change (ROC)def ROC(data,n): N = data['Cl...原创 2019-02-27 23:43:10 · 277 阅读 · 0 评论 -
决策树算法笔记整理2 - 建立决策树及可视化
7. 建立决策树三种算法建立决策树的主要是以下三种算法ID3C4.5CART(Classification And Regression Tree)8. 参数与实现说明sklearn中提供的决策树是CART模型。因此构建的树为二叉树结构。API中的参数spliter指的是分类器,默认为best,即按照最优的标准进行划分,但是,划分是基于训练集的,有可能会存在过拟合。参数s...原创 2019-01-26 00:36:36 · 602 阅读 · 0 评论 -
梯度下降算法笔记整理5 - 一文读懂梯度下降算法
一文读懂梯度下降算法 这篇博文主要讲解下梯度与方向导数的关系、等值线图中梯度的表示,以及梯度的应用。因涉及太多高数的知识点,在此就不一一详述了,只是简单梳理下知识点,有所纰漏还望纠正指出,文末附有参考文献,借图。 一、方向导数与梯度 1、方向导数导数引言 我们知道在二维平面上,F(x,y)=0 有斜率的概念,从名字上看...转载 2019-01-25 01:17:33 · 596 阅读 · 1 评论 -
KNN算法笔记整理2 - 样本集过大,选择KD树方法
7. KD树当样本数量较少时,我们可以使用遍历所有样本的方式,找出最近的K的邻居,然而,如果数据集庞大,这种方式会造成大量的时间开销,此时,我们可以使用KD树的方式来选择K个邻居。KD树算法中,首先是对训练数据进行建模,构建KD树,然后再根据建好的模型来获取邻近样本数据。7.1 构建KD树KD树(KD-Tree)是一个二叉树,构建KD树步骤如下(假设样本具有n个特征):分别计算n个特征...原创 2019-01-25 01:08:15 · 1066 阅读 · 0 评论 -
梯度下降算法笔记整理4 - 最小二乘和梯度下降比较
最小二乘法转自:https://blog.csdn.net/iterate7/article/details/789920151. 最小二乘法的思想最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方之和来作为目标,从而找到最优模型,这个模型可以拟合(fit)观察数据。 回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以用著名的最小二乘法来解决。最小二乘法就是曲线拟合...转载 2019-01-25 00:41:51 · 1286 阅读 · 0 评论 -
逻辑回归模型笔记整理3 - 实战 实现二分类预测 & 绘制决策边界
权重更新因此,在随机梯度下降中,我们就可以这样进行权重的调整:wj=wj+η(y(i)−s(z(i))xj(i)wj = wj + \eta(y^{(i)} - s(z^{(i)})x_j^{(i)}wj=wj+η(y(i)−s(z(i))xj(i)而对于批量梯度下降,只需将样本数量相加即可:wj=wj+η∑i=1m(y(i)−s(z(i))xj(i)wj = wj + \eta\sum...原创 2019-01-21 16:38:07 · 1458 阅读 · 0 评论 -
梯度下降算法笔记整理1 - 概念引入 & 前置知识
梯度下降引入导数汽车在10分钟内行驶3公里。我们可以计算其平均速度,然而,在10分钟内,汽车可能并不总是匀速行驶,因此,如果我们想求汽车在某一时刻的瞬时速度,就可以将时间进行划分成若干段(1分钟,1秒钟等)。随着时间段颗粒度的无限缩短,就能够求解出汽车在某一时刻的瞬时速度了。导数体现的是某个瞬间的变化量,例如,汽车在某一个时刻的瞬时速度。我们可以将时间(x)与距离(y)表示为函数:y=f(...原创 2019-01-17 18:45:28 · 753 阅读 · 2 评论 -
线性回归模型笔记整理7 - 模型的过拟合 & 欠拟合 & 总体解决方案
过拟合与欠拟合一. 概念之前,我们介绍过拟合的概念。拟合指的是构建的模型能够符合样本数据的特征。与拟合相关的两个概念是欠拟合与过拟合。欠拟合:模型过于简单,未能充分捕获样本数据的特征。表现为模型在训练集上的效果不好。过拟合:模型过于复杂,过分捕获样本数据的特征,从而将样本数据中一些特殊特征当成了共性特征。表现为模型在训练集上的效果非常好,但是在未知数据上的表现效果不好。进一步解释欠...原创 2019-01-15 21:10:01 · 3235 阅读 · 0 评论 -
【补充】为什么一定要用残差图检查你的回归分析?
转自:https://www.jianshu.com/p/c9022affd8b9作者:ALustForLife先说残差图究竟是什么鬼。Residual Illustration残差图是指以残差为纵坐标,以任何其他指定的量为横坐标的散点图。(上图仅是残差的示意图,非残差图,残差图可见下文)用普通最小二乘法(OLS)做回归分析的人都知道,回归分析后的结果一定要用残差图(residual ...转载 2019-01-31 18:02:50 · 19763 阅读 · 0 评论 -
逻辑回归模型笔记整理5 - 实战 逻辑回归算法实现多分类预测
13. 使用逻辑回归进行多分类(with codes)逻辑回归也可以进行多分类任务。from sklearn.datasets import make_classificationfrom sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train_test_split#...原创 2019-01-27 09:55:58 · 1201 阅读 · 0 评论 -
【补充】膜拜大神——吴恩达(转自Wikipedia)
CN吴恩达Andrew Ng出生 1976年4月18日(42岁)英国居住地 美国母校 卡内基梅隆大学,麻省理工学院,加州大学伯克利分校,莱佛士书院知名于 深度学习,MOOC研究领域 人工智能机构 斯坦福大学论文 Shaping and Policy Search in Reinforcement Learning(2003)博士导师 迈克尔·乔丹(Michael I....原创 2019-01-26 19:55:22 · 1653 阅读 · 0 评论 -
集成学习笔记整理1
集成学习(集成方法)是一种解决问题的思想(不是具体的算法)。操作为将若干个基本评估器(分类器&回归器)进行组合,然后使用这些基本评估器来综合对未知样本进行预测。通过这种“集思广益”的行为,比起使用单个基本评估器进行预测,集成学习具有更好的泛化能力与稳健性。1. 集成学习分类集成学习可以分为以下两类:平均方法训练多个独立的基本评估器(评估器之间没有关联),然后对多个评估器的预测结果...原创 2019-01-26 18:31:06 · 429 阅读 · 0 评论 -
决策树算法笔记整理1 - 如何划分?(信息熵,不纯度及信息增益)
比特化假设存在离散随机变量X,取值与概率如下:取值概率A1/4B1/4C1/4D1/4现在有一组由X变量组成的序列:BACADDCBAC……,如果现在希望将这个序列进行网络传输,我们可以将每种取值使用两个位进行编码:取值编码A00B01C10D11编码后,我们可以得到这样的序列:01001.原创 2019-01-24 13:53:06 · 12508 阅读 · 0 评论 -
梯度下降算法笔记整理2 - 程序实现辅助理解原理
一维梯度下降(with codes)程序:使用梯度下降求解方程y=x2−2x+1y=x^{2} - 2x + 1y=x2−2x+1的最小值。观察学习率对梯度下降的影响。学习率不是越大越好,也不是越小越好。import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltmpl.rcParams["font..原创 2019-01-23 23:52:46 · 952 阅读 · 1 评论 -
KNN算法笔记整理1 - 概念 & 样本有限时的简单运用
引言在讲解KNN之前,我们来看如下的数据集:我们将该数据集绘制在二维平面上。import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltmpl.rcParams["font.family"] = "SimHei"mpl.r原创 2019-01-22 18:20:57 · 446 阅读 · 0 评论 -
逻辑回归模型笔记整理4 - 分类模型评估(混淆矩阵 & ROC曲线)
分类模型评估混淆矩阵(with codes)混淆矩阵,是用来表示误差,衡量模型分类效果的一种形式。该矩阵是一个方阵,矩阵的数值用来表示分类器预测的结果,包括真正例(True Positive),假正例(False Positive),真负例(True Negtive),假负例(False Negtive)。import numpy as npfrom sklearn.datasets i...原创 2019-01-22 18:14:45 · 5547 阅读 · 0 评论 -
逻辑回归模型笔记整理6 - 参数详细说明
LogisticRegression,一共有14个参数: 逻辑回归参数详细说明参数说明如下:penalty:惩罚项,str类型,可选参数为l1和l2,默认为l2。用于指定惩罚项中使用的规范。newton-cg、sag和lbfgs求解算法只支持L2规范。L1G规范假设的是模型的参数满足拉普拉斯分布...转载 2019-01-22 16:39:20 · 2657 阅读 · 0 评论 -
梯度下降算法笔记整理3 - 分类 & sklearn中的梯度下降
梯度下降分类梯度下降可以分为三类:随机梯度下降(SGD-Stochastic gradient descent)批量梯度下降(BGD-Batch Gradient Descent)小批量梯度下降(MBGD-Mini-Batch Gradient Descent)三种方式的不同区别在于,权重更新的方式不同。随机梯度下降每次使用一个样本更新权重,其中样本(i)可能是按顺序选择,也可能是...原创 2019-01-22 08:50:40 · 1746 阅读 · 0 评论 -
【补充】导数,偏导,方向倒数,梯度
导数(derivative)偏导数(partial derivative)方向导数 (directional derivative)梯度 (gradient)Ref导数(derivative)导数,是我们最早接触的一元函数中定义的,可以在 xy 平面直角坐标系中方便的观察。当 Δx→0Δx→0 处的导数就是该点的切线的斜率。偏导数(partial derivative)...转载 2019-03-19 18:48:48 · 536 阅读 · 0 评论 -
梯度下降算法笔记整理6 - 梯度下降 偏导数及其几何意义
在一元函数中,我们已经知道导数就是函数的变化 率。对于二元函数我们同样要研究它的“变化率”。然而,由于自变量多了一个,情况就要复杂的多。 一、几何意义 在xOy平面内,当动点由P(x0,y0)沿不同方向变化时,函数f(x,y)的变化快慢一般说来是不同的,因此就需要研究f(x,y)在(x0,y0)点处沿不同方向的变化率。 偏导数表示固定面上一点的切线斜率 假设...原创 2019-03-19 20:31:50 · 751 阅读 · 0 评论 -
算法笔记整理11 - 损失函数的引入(概念和分类) 数据集的标准化处理
数据集的标准化处理数据集如果标准化处理,对机器学习中的很多算法(包括梯度下降),会有很好的优化(存进)效果。如果数据未标准化(例如,数据集特征之间相差的数量级较大时),很多算法的表现性能不佳。X[0]from sklearn.datasets import load_bostonfrom sklearn.linear_model import LinearRegression, SGDR...原创 2019-01-19 10:17:58 · 865 阅读 · 0 评论 -
逻辑回归模型笔记整理2 - w参数求解,by梯度下降
参数求解样本概率根据之前的介绍,我们可以将类别y(1与0)的概率表示如下(这里使用s代表sigmoid函数):我们可以将以上两个式子综合表示为:p(y∣x;w)=s(z)y(1−s(z))1−yp(y|x;w) = s(z)^y(1 - s(z))^{1-y}p(y∣x;w)=s(z)y(1−s(z))1−y最大似然估计以上是一个样本的概率,我们要求解能够使所有样本联合密度最大的...原创 2019-01-18 20:40:01 · 2321 阅读 · 1 评论 -
逻辑回归模型笔记整理1 - 从概念到推导交叉熵损失函数
算法描述逻辑回归,我们不要被其名字所误导,实际上,逻辑回归是一个分类算法。其优点在于,逻辑回归不仅能够进行分类,而且还能够获取属于该类别的概率。这在现实中是非常实用的。例如,某人患病的概率,明天下雨的概率等。算法的分类思想逻辑回归实现分类的思想为:将每条样本进行“打分”,然后设置一个阈值,达到这个阈值的,分为一个类别,而没有达到这个阈值的,分为另外一个类别。对于阈值,比较随意,划分为哪个类别...原创 2019-01-18 18:43:28 · 1508 阅读 · 0 评论 -
线性回归模型笔记整理10 - 引入验证集 交叉验 模型持久化
交叉验证引入前置: 训练集,验证集与测试集当模型建立后,我们需要评估下模型的效果,例如,是否存在欠拟合,过拟合等。但是,在我们建立模型时,我们不能使用全部数据用于训练(考试的示例)。因此,我们可以将数据集分为训练集与测试集。然而,模型并不是绝对单一化的,其可能含有很多种不同的配置方案(参数),这种参数不同于我们之前接触过的权重(w)与偏置(b),这是因为,权重与偏置是通过数据学习来的,而这种参数...原创 2019-01-16 18:45:41 · 1935 阅读 · 1 评论 -
线性回归模型笔记整理9 - 正则化 解决线性回归模型过拟合问题
多项式扩展时,并不是阶数越多越好通过之前的程序,我们发现,使用多项式扩展完美的解决了欠拟合问题。如果我们使用更多阶的多项式扩展,甚至可以将拟合度提高为1。但是,问题来了,多项式扩展时,是否阶数越多越好呢?证明import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltfrom sklearn.pipe...原创 2019-01-16 17:08:28 · 1708 阅读 · 0 评论 -
线性回归模型笔记整理8 - 多项式扩展 解决线性回归模型欠拟合问题
1. 多项式扩展 解决欠拟合(代码)我们可以使用线性回归模型来拟合数据,然而,在现实中,数据未必总是线性(或接近线性)的。当数据并非线性时,直接使用LinearRegression的效果可能会较差,产生欠拟合。import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltfrom sklearn.line...原创 2019-01-16 13:40:48 · 3471 阅读 · 1 评论