机器学习
文章平均质量分 83
记录我的机器学习的过程的点积
小胡同1991
一个正在搬砖的研究生
展开
-
【机器学习】数据预处理中常见的独热编码(One-hot Encoding)与哑编码(Dummy Encoding)区别
参考博客:离散型特征编码方式:one-hot与哑变量*一、导语 在机器学习问题中,我们通过训练数据集学习得到的其实就是一组模型的参数,然后通过学习得到的参数确定模型的表示,最后用这个模型再去进行我们后续的预测分类等工作。在模型训练过程中,我们会对训练数据集进行抽象、抽取大量特征,这些特征中有离散型特征也有连续型特征。若此时你使用的模型是简单模型(如LR),那么通常我们会对连续型特征进行离散化操作,然后再对离散的特征,进行one-hot编码或哑变量编码。这样的操作通常会使得我们模型具有较强...原创 2021-05-21 13:01:06 · 2666 阅读 · 0 评论 -
【Spark】NativeCodeLoader:62Unable to load native-hadoop library for your platform... using builtin-ja
一、错误重现[root@hadoop102 sparkProject]# python RFModelTrain_new.py 2020-09-11 12:56:01 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicableSetting default log level to "WARN".T原创 2020-09-11 13:12:34 · 2605 阅读 · 2 评论 -
【Joblib】DeprecationWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.
一、错误在跑spark的时候,出现了一个警告,虽然没啥事,可是老是出现,也觉得挺烦的,所以就百度了下怎么解决。警告信息/root/anaconda3/lib/python3.7/site-packages/sklearn/externals/joblib/__init__.py:15: DeprecationWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please原创 2020-09-11 12:18:23 · 1333 阅读 · 0 评论 -
【Python】py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled
一、背景在Linux下使用pyspark的时候会不定时的出现一个错误,就是“py4j.protocol.Py4JError:org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM”,这个错误之前也是遇到过的,并且会不定时的出现,刚开始没怎么在意,但是后来在写新的程序的时候,就会出现,所以把这个错误记录下来,给后来人和自己翻看。二、具体解决方法在从pyspark导入Sp原创 2020-09-08 16:16:03 · 2896 阅读 · 0 评论 -
【机器学习】训练好的模型的保存与恢复----joblib模块
在做模型训练的时候,尤其是在训练集上做交叉验证,因为交叉验证的模型训练通常要耗费很长时间,如果再结合大数据,那么这个时间的耗费通常可以用天来计算,那么,现在就通常想要将模型保存下来,然后放到独立的测试集上测试。下面介绍的是Python中训练模型的保存和再使用。一、训练模型,显示常用的模型属性此数据为随机的自己瞎编的数据,只做演示用,各位可以通过自己的具体业务自己更改代码,此代码仅限演示用,可以当做一个test来学习。import numpy as npfrom sklearn.lin原创 2020-09-08 15:43:20 · 849 阅读 · 0 评论 -
【Linux】RuntimeWarning: Glyph 27979 missing from current font. font.set_text(s, 0, flags=flags)
一、错误背景在弄硕士论文的时候,用的是Linux系统,跑的是python的代码,需要用到matplotlib来画图,图中有中文,但是显示框框,不能显示中文,所以就花了很长时间百度,用了很多方法,都不行。在win下,常规的方法可以,但是在Linux下,这个方法却不行# 此方法在win下测试没问题,但是在Linux下却不行import matplotlib as pltplt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签plt.rcParams[原创 2020-09-08 13:24:38 · 2249 阅读 · 0 评论 -
【机器学习小论文】xgboost模型及其集成调优
一、前言之前的模型,线性模型,随机森林模型的预测房价,准确率一般,没有达到预期效果,感觉还可以提升,所以就用xgboost模型来提升准确率,感觉效果不错,毕竟是经过优化的,能够很大程度的提升准确率。二、算法简介2.1 算法思想XGBoost的集成表示是什么?怎么预测?求最优解的目标是什么?看下图的说明你就能一目了然。在XGBoost里,每棵树是一个一个往里面加的,每加一个都是希望效果能够提升,下图就是XGBoost这个集成的表示(核心)。一开始树是0,然后往里面加树,相当于多原创 2020-08-23 23:31:50 · 1285 阅读 · 0 评论 -
【机器学习小论文】sklearn随机森林RandomForestRegressor代码及调参
一、前言前一篇是写的线性回归模型,这一篇为随机森林,下一篇为xgboost。二、算法简介2.1 随机森林概述随机森林是集成学习方法bagging类中的翘楚。与集成学习boosting类的GBDT分庭抗礼。bagging类集成学习采用的方法是:用部分数据 or 部分特征 or 多个算法 训练一些模型;然后再组合这些模型,对于分类问题采用投票多数表决,回归问题采用求平均。各个模型训练之间互不影响,天生就适合并行化处理。在如今大数据时代背景下很有诱惑力。主要效果:重点关注降低方差,防止过原创 2020-08-23 01:28:50 · 16335 阅读 · 7 评论 -
【机器学习小论文】sklearn线性回归LinearRegression代码及调参
一、前言最近在写小论文,就是硕士毕业论文的部分成果,需要用到线性回归,所以就把相关代码贴上,便于日后写论文时总结,也顺便给后来者提供思路。小论文的思路主要是,先用线性回归,再用随机森林,最后再用xgboost,来预测房价,最后得出结论。所以,这个会陆续的贴出相关代码。至于数据清洗那一块,暂时不贴上了,主要原因就是数据清洗不容易,并且每个人的清洗方法也不一样,所以主要还是看思路。二、算法简介2.1 什么是回归分析回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关原创 2020-08-23 00:00:18 · 6378 阅读 · 0 评论 -
【机器学习】sklearn中的回归问题性能评估方法----------图像计算常用的指标
一、前言回归问题解决的是对具体数值的预测,比如房价预测、销量预测等等,解决回归问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。回归模型是机器学习中很重要的一类模型,不同于常见的分类模型,回归模型的性能评价指标跟分类模型也相差很大,这里记录一下基于sklearn库计算回归模型中常用的四大评价指标主要包括:explained_variance_score、mean_absolute_error、mean_squared_error、r2_score二、性能评估方法概述2.1SSE(.原创 2020-08-19 21:16:06 · 4302 阅读 · 1 评论 -
【模型融合】Bagging,Boosting,Stacking
一、引言我理解的Kaggle比赛中提高成绩主要有3个地方特征工程 调参 模型融合在机器学习训练完模型之后我们要考虑模型的效率问题,常用的模型效率分析手段有:研究模型学习曲线,判断模型是否过拟合或者欠拟合,并做出相应的调整; 对于模型权重参数进行分析,对于权重绝对值高/低的特征,可以对特征进行更细化的工作,也可以进行特征组合; 进行bad-case分析,对错误的例子分析是否还有什么可以修改挖掘 模型融合:模型融合就是训练多个模型,然后按照一定的方法集成过个模型,应为它容易理解、原创 2020-08-13 17:35:25 · 6809 阅读 · 0 评论 -
【机器学习】Lasso模型
大V原创 2020-08-13 01:03:43 · 24638 阅读 · 3 评论 -
Grid SearchCV(网格搜索)与RandomizedSearchCV (随机搜索)
一、引言在机器学习模型中,需要人工选择的参数称为超参数。比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定。超参数选择不恰当,就会出现欠拟合或者过拟合的问题。而在选择超参数的时候,有两个途径,一个是凭经验微调,另一个就是选择不同大小的参数,带入模型中,挑选表现最好的参数。微调的一种方法是手工调制超参数,直到找到一个好的超参数组合,这么做的话会非常冗长,你也可能没有时间探索多种组合,所以可以使用Scikit-Learn的GridSearc原创 2020-08-12 01:35:53 · 6919 阅读 · 1 评论 -
【特征工程】多项式特征PolynomialFeatures(将数据变化为多项式特征)
使用sklearn.preprocessing.PolynomialFeatures来进行特征的构造。它是使用多项式的方法来进行的,如果有a,b两个特征,那么它的2次多项式为(1,a,b,a^2,ab, b^2)。PolynomialFeatures有三个参数degree:控制多项式的度interaction_only: 默认为False,如果指定为True,那么就不会有特征自己和自己结合的项,上面的二次项中没有a^2和b^2。include_bias:默认为True。如果为True的原创 2020-08-11 22:29:17 · 3312 阅读 · 1 评论 -
sklearn.pipeline.Pipeline()
方法原创 2020-08-11 20:31:11 · 2219 阅读 · 0 评论 -
KFold----交叉验证
一、前言在机器学习建模过程中,通行的做法是将数据分为训练集和测试集。测试集是与训练独立的数据,完全不参与训练,用于最终模型的评估。在训练过程中,经常会出现过拟合的问题,就是模型可以很好的匹配训练数据,却不能很好在预测训练集外的数据。如果此时就使用测试数据来调整模型参数,就相当于在训练时已知部分测试数据的信息,会影响最终评估结果的准确性。通常的做法是在训练数据再中分出一部分做为验证(Validation)数据,用来评估模型的训练效果。验证数据取自训练数据,但不参与训练,这样可以相对客观的评估模型对于训原创 2020-08-11 00:35:31 · 26155 阅读 · 7 评论 -
【总结】python sklearn模型中random_state参数的意义
一、前言在学习机器学习的过程中,常常遇到random_state这个参数,并且好多时候都是 random_state=42,感觉挺有意思的,于是,百度一下,然后做一个总结。作用:控制随机状态。问题:为什么需要用到这样一个参数random_state(随机状态)?看完文章你就会知道了。一句话概括:random_state是一个随机种子,是在任意带有随机性的类或函数里作为参数来控制随机模式。当random_state取某一个值时,也就确定了一种规则。random_state可以用于很多函数,原创 2020-08-10 22:58:05 · 79507 阅读 · 9 评论 -
回归模型中的离散型特征编码方式-----Dummy Coding对比One-hot encoding
一、哑变量定义哑变量(DummyVariable),也叫虚拟变量,引入哑变量的目的是,将不能够定量处理的变量量化,在线性回归分析中引入哑变量的目的是,可以考察定性因素对因变量的影响,它是人为虚设的变量,通常取值为0或1,来反映某个变量的不同属性。对于有n个分类属性的自变量,通常需要选取1个分类作为参照,因此可以产生n-1个哑变量。如职业、性别对收入的影响,战争、自然灾害对GDP的影响,季节对某些产品(如冷饮)销售的影响等等。这种“量化”通常是通过引入“哑变量”来完成的。根据这些因素的属性类型,构造只取“原创 2020-08-10 00:26:54 · 5074 阅读 · 0 评论 -
用poi获取来增加数据维度——基于百度地图开放平台api
背景最近在整理毕业设计,由于原来的数据只有经纬度,但是可以利用的信息比较少。由于是预测房价的,那么就可以根据经纬度来找到周围的医院、学校、公交站点等,看是不是这些元素是不是跟房价有很大的关系。所以,就可以利用百度地图提供的API来增加维度,使数据更加丰满。一、什么是POIPOI是“PointofInterest”的缩写,可以翻译成“兴趣点”,每个POI包含四方面信息,名称、类别、经度、纬度。可以理解为:对于地图产品而言,某个地理位置周边的信息,称为POI。根据POI的关键字,我们..原创 2020-08-09 01:02:38 · 1257 阅读 · 3 评论 -
Data with input dtype int64, float64 were all converted to float64 by StandardScaler
最近的程序每次运行都会报出这样的提醒,很是烦恼,就想去解决。意思是说:输入数据类型为int64、float64的数据都被StandardScaler转换为float64。解决办法 :需要指定数据类型X_train = X_train.astype(np.float64)X_test = X_test.astype(np.float64)X = df_merge.drop(['成交价'],axis=1)y = df_merge['成交价']xtrain,xtest,ytrai原创 2020-08-06 22:34:10 · 1304 阅读 · 0 评论 -
sklearn.externals.joblib.externals.loky.process_executor.BrokenProcessPool: A task has 未能取消序列化
背景在做硕士毕业设计的时候,用到随机森林这个模型,在写完代码的时候,跑的时候,老是出现sklearn.externals.joblib.externals.loky.process_executor.BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable.翻译为中文是说:如果一个任务未能取消序列化,请确保函数的参数都是可原创 2020-08-06 01:18:24 · 9534 阅读 · 1 评论 -
Input contains NaN, infinity or a value too large for dtype(‘float64‘).读取的文件中含有大量的空值
一、出错提示ValueError: Input contains NaN, infinity or a value too large for dtype('float64').意思是:读取的文件中含有大量的空值整个错误提示,一大堆,重点是最后一句!!!Traceback (most recent call last): File "<input>", line 1, in <module> File "C:\Program Files (x86)\my..原创 2020-08-05 13:14:15 · 30776 阅读 · 2 评论 -
from sklearn.proprecessing import Imputer:sklearn库中找不到Imputer包问题-------SimpleImputer
一、背景在解决ValueError: Input contains NaN, infinity or a value too large for dtype('float64').的问题时,也就是解决缺失值的时候,需要导入from sklearn.proprecessing import Imputer,也就是Imputer这个模块,但是运行时却又出来‘ModuleNotFoundError: No module named 'sklearn.proprecessing',后来通过百度,才知道原来0.原创 2020-08-05 12:37:33 · 3427 阅读 · 0 评论 -
python可视化——热力图heatmap seaborn库
核密度估计(kernel density estimation)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一。通过核密度估计图可以比较直观的看出数据样本本身的分布特征。原创 2020-08-03 21:30:37 · 15684 阅读 · 2 评论 -
The rowNum attribute was deprecated in Matplotlib 3.2 and will be removed twominorreleaseslater降低版本
上述错误的意思是:Rownum 属性在 matplotlib 3.2中已被弃用,将在两个较小的版本之后删除。我的环境安装的matplotlib 3.2.1版本,如果还想用rownum那么就需要降低版本号,那么怎么操作呢。我改了镜像,所以安装比较快,不改也可以,就是比较慢,第零步是搜索matplotlib,然后点击右边的specify version,再下拉链那选择指定版本,然后再点击install package就可以了。当然,可以在操作台那直接输入pip install matplo...原创 2020-07-31 16:00:16 · 4397 阅读 · 2 评论 -
【可视化】箱型图(箱线图)介绍和使用
一、什么是箱型图箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法,它也可以粗略地看出数据是否具有有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较。箱形图最大的优点就是不受异常值的影响,能够准确稳定地描绘出数据的离散分布情况,同时也利于数据的清洗。...原创 2020-07-31 14:51:41 · 16753 阅读 · 3 评论 -
【可视化】Power Map实现大数据可视化操作
前言最近在忙硕士的毕业论文,由于论文中涉及到可视化的问题,所以就在CSDN中搜索了相关可视化的东西,最初接触可视化,是从Excel中有自动生成的图标,后来接触过阿里的DataV,阿里的可视化套件真的很好用,几乎不用写代码就可以做出很好看的图表和一些炫酷的效果。今天的主角竟然是Excel中也有高大上的可视化套件,为什么要用竟然这次词呢,因为我以前真的不知道,用Excel也可以做出来很炫酷的图表,还能生成视频,真的是知识上的贫穷限制了我的想象。一、简介Power Map (地图增强版)是Power原创 2020-07-30 00:35:42 · 1474 阅读 · 4 评论 -
pandas读取CSV文件时出现警告:Columns (2,3) have mixed types. Specify dtype option on import or set low_memory
一、问题用pandas读csv时,通过某些条件进行清洗数据,但是总感觉清洗出来的数据不对,就又用Python自带的csv模块进行了一次清洗,结果发现两种方式清洗出来的数据结果不一致,并且在pandas读入数据时,出现如下数据类型warningD:\myCode\PythonTest\MachineLearning\venv\Scripts\python.exe D:/myCode/spark/spark_ML/data2New.pysys:1: DtypeWarning: Columns (2,原创 2020-07-29 21:52:30 · 19117 阅读 · 7 评论 -
【Python】pandas的数据输出显示设置
pandas数据分析时经常需要打印输出数据,当数据量大时,有时候默认的时候中间的部分数据会用·····省略表示,但是我们有时候需要完整的输出,所以,输出的展示设置非常重要,好的展示可以帮助更好地理解数据!pandas相关的显示设置函数主要有以下三个:import pandas as pd(1)pd.pandas.set_option('参数名', 参数值) :设置相关显示选项(2)pd.pandas.get_option('参数名', 参数值) :获取相关显示选项(3)pd.pandas.r原创 2020-07-28 23:45:13 · 4681 阅读 · 0 评论 -
【Python】pandas的describe()参数
Pandas提供describe方法,可以查看各列的计数、均值、最大最小值等,功能强大。下面介绍一种可根据自身要求,添加各个特征的其他描述的方法。统计值变量说明: count:数量统计,此列共有多少有效值 mean:均值 ...原创 2020-07-28 23:03:09 · 2077 阅读 · 0 评论 -
【转载】机器学习入门好文
本篇文章转载于博客园的博主:计算机的潜意识在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一:转载 2020-07-11 19:00:47 · 584 阅读 · 0 评论