- 博客(40)
- 收藏
- 关注
转载 回归评价指标:MSE、RMSE、MAE、R2、Adjusted R2
回归评价指标:MSE、RMSE、MAE、R2、Adjusted R2 1、均方误差:MSE(Mean Squared Error) 其中,为测试集上真实值-预测值。 2、均方根误差:RMSE(Root Mean Squard Error) 可以看出,RMSE=sqrt(MSE)。 3、平均绝对误差:MAE(Mean Absolute Error) 以上各指标,根据不同业务,会有不同的值大小,不具有可读性,因此还可以使用以...
2021-03-31 11:12:17 2021
转载 Python格式化输出%.2f%%
str.format()Python2.6之后新增的一宗格式化字符串的函数。用{}和:来替换以前的%>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序'hello world' >>> "{0} {1}".format("hello", "world") # 设置指定位置'hello world' >>> "{1} {0} {1}".format("hello", "w
2021-03-28 09:25:25 9434 1
转载 正则表达式
1.原生字符串Python中字符串前面加上 r 表示原生字符串,与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符”\”,那么使用编程语言表示的正则表达式里将需要4个反斜杠”\”:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r”\”表示。同样,匹配一个数字的”\d”可以写成r”\d”。有了原生字符串,再也不用担心
2021-03-27 18:09:13 74
原创 特征选择和数据降维
为什么要进行特征选择和数据降维?“特征选择是选择用于模型构建的相关特征的子集的过程”,或者换句话说,选择最重要的特征。降维是指通过保留一些比较重要的特征,去除一些冗余的特征,减少数据特征的维度。但降维之后的数据不可解释了,改变了原来的维度所在的意义,产生了新的维度。一、特征选择的三种方式?1.过滤选择二、降维1.PCA---方差越大,数据反应的信息就越多...
2021-03-27 17:13:13 613
转载 特征预处理:归一化/标准化/缺失值
转载于https://www.pianshen.com/article/3411681144/感谢什么时候需要标准化和归一化?那么是否任何情况都有必要进行标准化归一化呢?答案是否定的。我们所熟知的决策树、随机森林等概率模型,就不需要。因为它们并不关心变量的值,而是关心变量的分布和变量之间的条件概率。当变量的值影响模型的训练效果时,我们使用,否则不需要举例:KNN,欧氏距离要计算变量之间的距离,变量量级不统一,影响模型,故使用标准化。逻辑回归是不是用正则。如果你不用正则,那么.
2021-03-27 15:55:23 1069
原创 逻辑回归原理
逻辑回归一般用于预测连续变量,不用于分类问题上,但是他用在二分类问题上可以表现的很好。逻辑回归Logistic Regression,简称LR。它的特点是能够把我们的特征输入集合转化为0和1这两类的概率。逻辑回归的本质是线性回归,只是在特征到结果的映射上加入了一层Sigmod函数映射,即先把特征线性求和,再使用Sigmoid函数转为概率求解,大于0.5的分为1类,小于0.5的分为0类,进行分类。Logistic函数(或称为Sigmoid函数),函数形式为:案例:...
2021-03-26 20:50:43 1000
原创 ValueError: could not convert string to float: ‘?‘
说明数据集中存在异常值?,处理方式:#用nan替换?data=data.replace(to_replace='?',value=np.nan)#再删除空值data=data.dropna()
2021-03-26 20:49:54 323
转载 Sklearn中的fit与fit_transform
Note: 必须先用fit_transform(trainData),之后再transform(testData) 如果直接transform(testData),程序会报错 如果fit_transfrom(trainData)后,使用fit_transform(testData)而不是transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。(一定要避免这种情况) 写在前面 fit和transform没有任何关系...
2021-03-26 17:07:38 4125
原创 线性回归之
线性回归线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合。线性回归方程:损失函数:损失函数推理过程:1.公式转换:2.误差公式:3.转化为Θ求解:,负相关,要想误差越小,就要越大。...
2021-03-26 16:28:31 2049
转载 机器学习梯度下降法,最通俗易懂的解释
本文从一个下山场景开始,提出梯度下降算法的基本思想,接着从数学上解释梯度下降算法原理,最后实现一个简单的梯度下降算法实例! 梯度下降的场景假设 梯度下降法的基本思想可以类比为一个下山的过程。假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最...
2021-03-26 15:02:51 858
原创 集成算法之随机森林
集成算法之随机森林(森林就是构建多个树,随机就是取数是随机且有范围的)集成算法包含(bagging/boosting/stacking)在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由所有决策树输出的类别的众数而定。利用相同的训练数搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的分类决策。例如,如果你训练了5个树,其中有4个树的结果是 True ,1个数的结果是 False ,那么最终结果会是 True .在前面的决策当中我们提到,一个标准的决策树会根
2021-03-25 19:58:26 541
转载 决策树
决策树的原理:通过不断的划分条件来进行分类,其中决策树最关键的就是,找出那些对结果影响最大的条件(信息熵小的),放在前面,来节省查找次数。排序:是否有房子、信贷情况的信息增益、是否有工作、年龄决策树算法选择ID3信息增益大的放前面,C4.5信息增益率大的放前面,CRAT选基尼系数小的放前面(CART分类树算法使用基尼系数来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,特征越好。这和信息增益(比)是相反的。)树的层级和叶子...
2021-03-25 18:06:51 3703 1
原创 朴素贝叶斯文档分类
朴素贝叶斯是逆向求概率的过程求P(C|W)在文档中有某个关键词的情况下,这个文档属于某个分类的概率计算公式:P(C|W)=P(W|C)P(C)/P(W)P(W|C)在文档属于某个类别的前提下,某个关键词出现的概率-------训练数据求出(朴素贝叶斯预测文档分类的原理是:根据以上公式,可以计算出某篇文档下出现得比较多的词,然后把这些词去每个分类下求下概率,在哪个分类下的概率高,那么就意味着这篇文章是属于哪个分类。 )P(C)文档属于某类的概率-------------------------
2021-03-24 21:18:20 152
转载 Anaconda Jupyter Notebook中实现代码提示功能
在命令行下输入以下命令1)pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user2)pip install --user jupyter_nbextensions_configurator jupyter nbextensions_configurator enable --user结果如下图在Anaconda Jupyter中配置如果上一步骤成功完成后,在Anac
2021-03-24 11:29:03 2177
原创 机器学习算法简介
机器学习算法数据类型:不同类型的数据集采用的算法是不一样的。总体来说,生活场景中只有两种类型的数据,一种是离散型,一种是连续型:1.离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。比如分类就是离散型数据。2.连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的。如,长度、时间、质量值等,这类数通常是非整数,含有小数部分。|可用数据集:1. Kaggle :一个大数据竞赛平台,上面的数据都是真实的,并
2021-03-24 11:14:54 312
转载 有监督学习与无监督学习的区别
有监督学习监督学习的训练集要求包括输入输出,也可以说是特征和目标。训练集中的目标是由人标注的。监督学习就是最常见的分类(注意和聚类区分)问题,通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优表示某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。也就具有了对未知数据分类的能力。监督学习的目标往往是让计算机去学习我们已经创建好的分类系统(模型)。监督学习是训练神经网络和决策树的常见技术。这两
2021-03-24 10:32:32 16431
原创 Scikit-Learn库
Scikit-Learn库介绍:scikit-learn是基于Python语言的机器学习工具,具有以下特点:1.简单高效的数据挖掘和数据分析工具。2.可供大家在各种环境中重复使用。3.建立在 NumPy , SciPy 和 matplotlib 上。4.开源,可商业使用-BSD许可证5.目前最新的文档版本是 0.20。历史由来:对Python语言有所了解的科研人员可能都知道sciPy ——一个开源的基于Python 的科学计算工具包。基于 SciPy ,目前开发者们针对不同的应用领域已经发
2021-03-24 10:17:34 926
原创 Seaborn官网文档
Seaborn官网文档http://seaborn.pydata.org/generated/seaborn.countplot.html
2021-03-23 10:51:13 868
原创 python读取csv时keyerror
当我在读取CSV文件中的'Games'时使用data['Games']报 keyerror错误,返回自己的excel表,用鼠标点击属性发现提示我前面有空字符串,选择‘清空前后空字符串’,保存,重新导入数据,成功解决问题。...
2021-03-22 19:14:55 3355 4
转载 五、SQL学习之虚拟表View+存储过程PROCEDURE
视图的作用1,简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。2, 安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。3, 逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。--创建视图CRE.
2021-03-11 21:47:23 360
转载 四、SQL学习之DDL操作表和数据库
1、创建表:NULL不等于空串,空串是有效值一:表名定义规范:(1)数据库表的命名小写,单词间用下划线("_")分割,如subscribed_pois,poi_categories等(2)表名限制在30个字符内。--创建表CREATE TABLE pet2(petname VARCHAR(255) PRIMARY KEY,owner VARCHAR(255) DEFAULT 'police',species VARCHAR(255),sex CHAR(1) NOT NULL,..
2021-03-11 20:40:23 92
转载 三、SQL学习之增删改操作
1.数据插入-----简单插入SELECT * FROM prod_info WHERE cost=20.11;--插入完整数据INSERT INTO prod_info2(prod_id,prod_name,brand,type,class,cost,sale_price,supplier_id) VALUES(40001,'电脑','联想','拯救者','电子产品',5000,5500,'DJ0001');SELECT * FROM prod_info2 W
2021-03-11 14:34:54 114
转载 二、SQL学习之多表查询
一、标量子查询:只返回一行一列(相当于一个常数)--查询价格大于奶茶的商品1.查询奶茶的价格-------------15 SELECT m.sale_price FROM milk_tea AS m WHERE m.prod_name='奶茶';2.查询大于奶茶的价格 >15SELECT m.prod_name,m.sale_price FROM milk_tea AS m WHERE m.sale_price>15;合成一个语句--多表查询 把1的语句用()包起来放在&g
2021-03-11 11:44:34 418
转载 一、SQL学习之单表查询
1.SQL不区分大小写,认为规定以方便编程,以分号;结尾2.表命名规则: 英文(a-zA-Z)、数字(0-9)、下划线_ 必须英文开头,不能重复 一般使用小写SHOW DATABASES;CREATE DATABASE sqllearning;USE sqllearning;...
2021-03-10 16:55:28 293
转载 navicat导入CSV文件显示中文为问号
现象使用navicat for mysql 打开数据库时,使用Console插入和查询数据显示乱码处理过程1.查看数据库编码为" utf8 -- UTF-8 Unicode",也就是说数据库字符集没有问题,初步推测为客户端的问题2.在navicat里右击连接,选择连接属性,切换到高级选项,去掉"Use MySQL character Set"前的勾,在编码里选择" 20936 (Simplified Chinese GB2312)"字符集3.再次执行脚本,问题得到解决...
2021-03-09 15:43:02 1213
原创 机器学习数据集推荐
中文:白鲸社区:https://www.kesci.com/home/dataset英文:UCI Machine Learning Repository:https://archive.ics.uci.edu/ml/index.php
2021-03-09 11:08:52 126
转载 数据分析之业务真题该如何回答?
题目:各大平台相继推出和迭代付费会员策略,如优酷会员、京东PLUS会员、网易云音乐黑胶VIP等,通过提供丰富的权益吸引用户成为付费会员,提升用户粘性和忠诚度。请围绕付费会员回答以下问题:1.以网易云音乐黑胶VIP为例,运营同学希望推出活动吸引用户开卡。一种方式是年卡买一送一,即支付一年的年费享受两年的会员权益;另一种方式是年卡费用五书你认为哪种方式更好?请给出具体的理由。分析思路:提取信息,结构化思考分析,关键指标,分析相关关系,给出结论。分析步骤,思考模型太重要了,再结合金字塔的归纳,演..
2021-03-08 21:53:18 257
原创 特征选择
一、特征选择的用处减少特征数量,缩短建模时间,提高建模效率,大数据集 带来的关键信息只聚集在部分或少数特征上,因此需要: 从中选择出重要的特征使得后续的建模过程只在一部分的特征上构建,减少维数灾难出现的可能。 去除不相关的特征,留下关键因素,降低学习任务难度,更容易挖掘数据本身带有的规律;同时在特征选择的过程中,会对数据特征的理解更加充分。二、特征来源1.业务已经整理好各种特征数据,即业务指标,有时称为属性,我们需要去找出适合我们问题需要的特征。 该类特征通常是业务专家指...
2021-03-08 17:39:19 1480
原创 降维
维数灾难背景 p 现实应用中属性维度成千上万,在高维度情况下会带来很多麻烦,而且当维度大的时候, 数据样本一般分布的非常稀疏,这是所有学习算法要面对的问题,降维技术应运而生。 l 数据降维 p 降维是对事物的特征进行压缩和筛选,该项任务相对比较抽象。如果没有特定领域知识, 无法预先决定采用哪些数据,比如在人脸识别任务中,如果直接使用图像的原始像素信 息,数据的维度会非常高,通常会利用降维技术对图像进行处理,保留下最具有区分度 的像素组合。 一、常见降维方法SVD ..
2021-03-08 17:39:04 199
原创 matplotlib画图时标题啊title中文乱码
一、问题如下,设置titile时中文乱码二、解决方法1.导入包font_manager2.到自己的windows目录下找到Font文件夹,选一个简体字,然后右击‘属性’,将这个路径粘贴过来3.然后如下编写代码 (如果遇到OSError问题,解决方法见https://blog.csdn.net/zhao2chen3/article/details/114400840)...
2021-03-05 16:31:36 628
原创 读取文件时路径出错OSError: [Errno 22] Invalid argument:‘l\u202ad:y\Windows \ \Fonts \\msyh.ttc‘
一、读取文件时,路径报错如下二、解决方法:1、在C前面按'delete'键2、直接将此处的地址粘过去
2021-03-05 16:17:39 717
原创 数据规整之数据连接pd.merge/数据合并data.join/数据连接pd.concat/数据重塑stack
数据合并(pd.merge) 根据单个或多个键将不同DataFrame的行连接起来 类似数据库的连接操作 pd.merge:(left, right, how='inner',on=None,left_on=None, right_on=None ) left:合并时左边的DataFrame right:合并时右边的DataFrame how:合并的方式,默认'inner', 'outer', 'left', 'right' alll=pd.merge(lef
2021-03-04 15:54:35 360 1
原创 数据清洗总结
数据清洗可能遇到的问题及解决方法遇到的问题 解决的方法 部分缺失:nan 检测缺失数据isnull(),然后删除dropna()或者填充fillna() 数据存在重复值:111,111,111 #检测重复数据 data.duplicated().sum() #删除重复值 data.drop_duplicates(inplace=True) len(data) 部分数据存在异常 删除 数据类型不统一 数据类型转换.
2021-03-04 11:02:13 1263 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人