
机器学习
番茄要去皮
业精于勤,荒于嬉;行成于思,毁于随。
认真学习,努力工作,快乐生活。
学习笔记。
展开
-
上采样+下采样+分层抽样
数据生成import pandas as pdimport numpy as npdata = pd.DataFrame(np.random.random((50, 3)), columns=['a', 'b', 'c'])data['y'] = np.vstack((np.zeros((6, 1)), np.ones((44, 1))))过采样/上采样# 朴素随机过采样 过采样后样本类别的比列为1:1from imblearn.over_sampling import RandomOve原创 2020-08-21 20:01:29 · 1081 阅读 · 0 评论 -
特征选择
过滤法单变量特征选择通过单变量统计检验选择特征SelectKBest只保留K个最高分的特征SelectPercentile只保留用户指定的百分比的最高得分的特征使用常见的单变量统计检验分类:使用chi2卡方f_classif方差分析mutual_info_classif互信息回归:使用f_regression相关系数mutual_info_regression互信息# 方差过滤from sklearn.feature_selection import VarianceThresh原创 2020-05-30 12:45:38 · 1477 阅读 · 0 评论 -
交叉验证
交叉验证就是重复的利用数据集,把样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。常见的交叉验证方式有以下三种:第一种是简单交叉验证。首先,随机的将样本数据分为两部分(比如: 80%的样本作为训练集,20%的样本作为测试集),然后用训练集来训练模型,在测试集上验证模型及参数。然后,再把样本进行随机排序后,重新选择训练集(80%)和测试集(20%),...原创 2019-04-26 20:37:57 · 5157 阅读 · 0 评论 -
XGBoost、LightGBM和CatBoost
1、XGBoostXGBoost算法的思想:不断添加树,不断进行特征分裂来生成一棵树,每添加一棵树就是学习一个新的函数来拟合上次的残差,当训练完成后得到K棵树,要预测一个样本的分数,其实就是根据样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点对应一个分数,最后需要将每棵树对应的分数加起来就是该样本的预测值;XGBoost能自动利用cpu的多线程,而且适当改进了gradient bo...原创 2019-04-18 15:05:41 · 4545 阅读 · 0 评论 -
PCA和LDA的异同点
相同点:两者都可对数据完成降维操作两者在降维时都使用了矩阵分解的思想两者都假设数据服从高斯分布不同点:LDA是监督学习;PCA是无监督学习LDA降维最多降到类别数目k-1的维度;PCA没有限制LDA除了降维外,还可以用于分类LDA使得类内距离小,类间距离大;PCA去除原始数据中冗余的特征,使得投影在各个维度的方差尽可能大LDA关注分类能力,不保证投影到的坐标系是正交的;PCA投影...原创 2019-04-13 11:33:34 · 6539 阅读 · 1 评论 -
数据不平衡的处理方法
数据不平衡经常出现在分类问题上,数据不平衡指的是在数据集中不同类别的样本数量差距很大,比如,在病人是否得癌症的数据集上,可能绝大部分的样本类别都是健康的,只有极少部分样本类别是患病的。下面介绍几个常用的处理数据不平衡的方法:1、上采样SMOTE算法是一种简单有效的上采样方法,该方法类似KNN算法,首先给类别数量少的样本随机选择出几个近邻样本,并且在该样本与这些近邻样本的连线上随机采样,生成无重...原创 2019-04-05 22:20:30 · 13318 阅读 · 0 评论 -
bagging与boosting的区别
bagging与boosting的区别bagging采用自主采样方法。给定m个样本的数据集,先随机取出一个样本(每个样本的权值相等,也就是说每个样本被取出的概率相等)放入采样集中,在把该样本放回到初始数据集中,使得下次采样时该样本任有可能被选中,这样,经过多次随机采样操作,得到多个样本的采样集,初始训练集中有的样本在采样集中多次出现,有的则从未出现过。在每个采样集中训练出一个基学习器,再将这些基...原创 2019-04-05 09:07:16 · 4298 阅读 · 0 评论 -
SVM与LR(逻辑回归)的区别和联系
SVM与LR(逻辑回归)的区别和联系区别:1、SVM是非参数估计,本质上是解决二次规划问题;LR是参数估计,本质上是一个极大似然估计问题。2、SVM被称为结构风险最小化,也就是让模型的泛化能力尽可能好;LR被称为经验风险最小化,也就是最小化分类误差。3、SVM中使用的分类损失函数是合页损失函数;LR中使用的分类损失函数是交叉熵函数。4、SVM中只使用支持向量来决定决策边界;LR使用所有的...原创 2019-04-05 09:03:28 · 5054 阅读 · 0 评论 -
LightGBM的原生接口和lightgbm库接口对比
LightGBM原生接口----分类模型import lightgbm as lgbfrom sklearn.metrics import accuracy_scorefrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitimport numpy as npi...原创 2019-08-26 11:10:29 · 4795 阅读 · 0 评论 -
XGBoost的原生接口和xgboost库接口对比
1、XGBoost原生接口----分类import numpy as npfrom sklearn.datasets import load_irisfrom sklearn.metrics import accuracy_scorefrom sklearn.model_selection import train_test_splitimport xgboost as xgbdat...原创 2019-08-26 11:33:29 · 3206 阅读 · 1 评论 -
特征选择
1、去掉方差较小的特征删除方差不满足某个阈值的所有特征,默认情况下,它删除所有0方差特征,即在所有样本中具有相同值的特征。from sklearn.datasets import load_bostonfrom sklearn.feature_selection import VarianceThresholdboston = load_boston()x = boston.data...原创 2019-08-17 21:07:53 · 3610 阅读 · 0 评论 -
One Hot Encoding
One Hot EncodingOne Hot Encoding是N位状态寄存器为N个状态进行编码的方式(1)One Hot Encoding的优缺点:优点:1、解决了分类器不好处理属性数据的问题2、在一定程度上增加了特征的维度缺点:1、产生大量冗余的稀疏矩阵2、维度(单词)间的关系没有得到体现,每个单词都是一个维度,彼此相互独立,然而每个单词彼此无关这个特点明显不符合现实情况。大...原创 2019-04-07 14:57:04 · 2170 阅读 · 0 评论 -
多分类
from sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegressionfrom sklearn.multiclass import OneVsRestClassifierfrom sklearn.metrics import roc_auc_score, roc_curve, f1_s...原创 2019-06-26 16:49:33 · 7365 阅读 · 0 评论 -
机器学习:线性回归
线性回归线性回归,简单地讲就是要找到一条直线或者平面,在最大程度上去拟合样本数据点。梯度下降(1)梯度下降算法的直观理解:比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下...原创 2019-04-10 10:47:43 · 3714 阅读 · 0 评论 -
机器学习:逻辑回归(1)
逻辑回归逻辑回归的思想:根据现有数据对分类边界线建立回归公式,以此进行分类(主要用于解决二分类问题)sigmoid函数其函数图像为逻辑回归模型函数通过sigmoid函数,构造逻辑回归模型函数:使用 sigmoid 函数求解出来的值为类1的后验估计 p(y=1|x,θ) ,可以得到:使用 sigmoid 函数求解出来的值为类0的后验估计 p(y=0|x,θ) ,可以得到:...原创 2019-04-10 11:24:00 · 6652 阅读 · 1 评论 -
机器学习:决策树ID3、C4.5和CART
决策树又称为判定树,是运用于分类的一种树结构,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶节点代表某个类或类的分布。决策树的决策过程需要从决策树的根节点开始,待测数据与决策树中的特征节点进行比较,并按照比较结果选择选择下一比较分支,直到叶子节点作为最终的决策结果。常见的决策树有ID3、C4.5和CARTID3以信息增益度量属性选择(选择信息增益最大的属性作为分裂属性)...原创 2019-04-16 22:03:46 · 3403 阅读 · 0 评论 -
机器学习:K近邻(KNN)
KNN是一种基本的机器学习算法。KNN既可以用作分类,也可以用作回归。KNN做分类预测时,一般是选择多数表决法,即训练集里和预测的样本特征最近的K个样本,预测为里面有最多类别数的类别。而KNN做回归时,一般是选择平均法,即最近的K个样本的样本输出的平均值作为回归预测值。一般通过交叉验证选择最优的K值。对于距离的度量方式,最常见的是欧氏距离:KNN的主要优点有:1) 理论成熟,思想简单,既可...原创 2019-04-27 11:29:56 · 3943 阅读 · 0 评论 -
机器学习:K-Means聚类、DBSCAN聚类
# KMeansfrom sklearn.datasets import make_blobsfrom sklearn.cluster import KMeansimport matplotlib.pyplot as pltimport numpy as np# 生成数据x, y = make_blobs(n_samples=100, random_state=42)# kmea...原创 2019-04-27 16:54:27 · 2029 阅读 · 0 评论 -
机器学习:感知机
# 多层感知机from sklearn.datasets import make_moonsfrom sklearn.neural_network import MLPClassifierimport numpy as npimport matplotlib.pyplot as plt# 生成数据x, y = make_moons(n_samples=800, noise=0.15,...原创 2019-04-27 16:56:08 · 1790 阅读 · 0 评论 -
机器学习:BIRCH聚类、谱聚类
1、BIRCH聚类# BIRCH聚类,使用默认参数from sklearn.datasets.samples_generator import make_blobsfrom sklearn.cluster import Birchfrom sklearn.metrics import calinski_harabaz_scoreimport matplotlib.pyplot as pl...原创 2019-04-28 14:23:15 · 1992 阅读 · 0 评论 -
机器学习:逻辑回归(2)
逻辑回归一句话概括:逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的,是一种常见的分类算法。1、逻辑回归的基本假设任何模型都是有自己的假设,在这个假设下模型才适用。逻辑回归的基本假设是数据服从伯努利分布。2、逻辑回归的损失函数逻辑回归的损失函数是它的极大似然函数(交叉熵,等同于对数损失)3、逻辑回归的求解方法由于该极大似然函数...原创 2019-04-05 09:09:50 · 2876 阅读 · 0 评论 -
机器学习:朴素贝叶斯算法
正向概率:假设袋子里面有N个红球,M个黑球,取出一个球,此时摸出黑球的概率是多少。逆向概率:事先不知道袋子里面红球和黑球数量的比例,取出一个球或者多个球,观察这些取出的球的颜色,可以对袋子中红球和黑球的比例做出推断。朴素贝叶斯是为了解决逆向概率问题。...原创 2019-06-02 11:12:03 · 4222 阅读 · 0 评论 -
机器学习:支持向量机(SVM)
# svm、线性核函数from sklearn.datasets import make_moonsfrom sklearn.svm import SVCfrom sklearn.metrics import accuracy_scorefrom sklearn.model_selection import train_test_splitimport numpy as npimpor...原创 2019-04-27 16:36:24 · 4697 阅读 · 0 评论