精华内容
下载资源
问答
  • 分类与传统意义上回归最大不同在于,分类算法输出是离散标签值,而回归输出是连续实数。    我们平常观察到样本特征往往是连续实数值,而我们输出目标是离散整数值,用线性回归很难有效达成...

    机器学习算法(一): 基于逻辑回归的分类预测

    机器学习训练营:https://tianchi.aliyun.com/s/20d6735792ef867814c90698221d1499

    1 逻辑回归的介绍

       Logistic回归属于监督学习,虽然带有“回归”,但它却是名副其实的“分类”算法。分类与传统意义上的回归最大的不同在于,分类算法输出的是离散的标签值,而回归输出的是连续的实数。

       我们平常观察到的样本特征往往是连续的实数值,而我们输出的目标是离散整数值,用线性回归很难有效达成“连续值——>离散值”的映射,也就是说用简单的线性回归模型难以实现数据和目标数据之间的拟合。
       如果直接拟合很难,那我们可以在输出值方面暂时先做一点点妥协,不再考虑“非黑即白”的二分类,而是考虑结果的概率。由于概率是一个连续值,这样一来,我们就重新回到了“连续值——>连续值”的映射上,这似乎保持了“回归”的特性。

    1.1 逻辑回归应用

       逻辑回归模型现在同样是很多分类算法的基础组件,比如 分类任务中基于GBDT算法+LR逻辑回归实现的信用卡交易反欺诈,CTR(点击通过率)预估等,其好处在于输出值自然地落在0到1之间,并且有概率意义。模型清晰,有对应的概率学理论基础。它拟合出来的参数就代表了每一个特征(feature)对结果的影响。也是一个理解数据的好工具。但同时由于其本质上是一个线性的分类器,所以不能应对较为复杂的数据情况。很多时候我们也会拿逻辑回归模型去做一些任务尝试的基线(基础水平)。

    逻辑回归模型的优劣势:

    • 优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
    • 缺点:容易欠拟合,分类精度可能不高

    1.2 逻辑回归公式

       假设数据集有n个独立的特征,x1到xn为样本的n个特征。常规的回归算法的目标是拟合出一个多项式函数,使得预测值与真实值的误差最小:

    在这里插入图片描述
       而我们希望这样的f(x)能够具有很好的逻辑判断性质,最好是能够直接表达具有特征x的样本被分到某类的概率。比如f(x)>0.5的时候能够表示x被分为正类,f(x)<0.5表示分为反类。而且我们希望f(x)总在[0, 1]之间。

       Logistic 函数(或称为 Sigmoid 函数),函数形式为:
    在这里插入图片描述

    在这里插入图片描述
    sigmoid函数具有我们需要的一切优美特性,其定义域在全体实数,值域在[0, 1]之间,并且在0点值为0.5

    令p(x)=1为具有特征x的样本被分到类别1的概率,则p(x)/[1-p(x)]被定义为让步比(odds ratio)。
    引入对数:
    在这里插入图片描述
    上式很容易就能把p(x)解出来得到下式:
    在这里插入图片描述
    现在,我们得到了需要的sigmoid函数。接下来只需要和往常的线性回归一样,拟合出该式中n个参数c即可。

    2 逻辑回归代码

    ##  基础函数库
    import numpy as np 
    
    ## 导入画图库
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    ## 导入逻辑回归模型函数
    from sklearn.linear_model import LogisticRegression
    
    ##Demo演示LogisticRegression分类
    
    ## 构造数据集
    x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
    y_label = np.array([0, 0, 0, 1, 1, 1])
    
    ## 调用逻辑回归模型
    lr_clf = LogisticRegression()
    
    ## 用逻辑回归模型拟合构造的数据集
    lr_clf = lr_clf.fit(x_fearures, y_label) #其拟合方程为 y=w0+w1*x1+w2*x2
    
    ## 查看其对应模型的w
    print('the weight of Logistic Regression:',lr_clf.coef_)
    
    ## 查看其对应模型的w0
    print('the intercept(w0) of Logistic Regression:',lr_clf.intercept_)
    
    # 可视化决策边界
    plt.figure()
    plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
    plt.title('Dataset')
    
    nx, ny = 200, 100
    x_min, x_max = plt.xlim()
    y_min, y_max = plt.ylim()
    x_grid, y_grid = np.meshgrid(np.linspace(x_min, x_max, nx),np.linspace(y_min, y_max, ny))
    
    z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()])
    z_proba = z_proba[:, 1].reshape(x_grid.shape)
    plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue')
    
    plt.show()
    
    ### 可视化预测新样本
    
    plt.figure()
    ## new point 1
    x_fearures_new1 = np.array([[0, -1]])
    plt.scatter(x_fearures_new1[:,0],x_fearures_new1[:,1], s=50, cmap='viridis')
    plt.annotate(s='New point 1',xy=(0,-1),xytext=(-2,0),color='blue',arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'))
    
    ## new point 2
    x_fearures_new2 = np.array([[1, 2]])
    plt.scatter(x_fearures_new2[:,0],x_fearures_new2[:,1], s=50, cmap='viridis')
    plt.annotate(s='New point 2',xy=(1,2),xytext=(-1.5,2.5),color='red',arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'))
    
    ## 训练样本
    plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
    plt.title('Dataset')
    
    # 可视化决策边界
    plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue')
    
    plt.show()
    
    ## 在训练集和测试集上分布利用训练好的模型进行预测
    y_label_new1_predict = lr_clf.predict(x_fearures_new1)
    y_label_new2_predict = lr_clf.predict(x_fearures_new2)
    
    print('The New point 1 predict class:\n',y_label_new1_predict)
    print('The New point 2 predict class:\n',y_label_new2_predict)
    
    ## 由于逻辑回归模型是概率预测模型(前文介绍的 p = p(y=1|x,\theta)),所有我们可以利用 predict_proba 函数预测其概率
    y_label_new1_predict_proba = lr_clf.predict_proba(x_fearures_new1)
    y_label_new2_predict_proba = lr_clf.predict_proba(x_fearures_new2)
    
    print('The New point 1 predict Probability of each class:\n',y_label_new1_predict_proba)
    print('The New point 2 predict Probability of each class:\n',y_label_new2_predict_proba)
    

    查找参考资料:
    https://blog.csdn.net/weixin_41988628/article/details/80393362
    https://www.92python.com/view/255.html

    展开全文
  • 7.分类与预测

    2019-05-18 12:19:00
    1.分类与预测的概述 分类与预测是机器学习中有监督学习任务的代表。一般认为:广义的预 测任务中,要求估计连续型预测值时,是“回归”任务;要求判断因变 量属于哪个类别时,是“分类”任务。 2.打趴下 回归分析...

    1.分类与预测的概述

           分类与预测是机器学习中有监督学习任务的代表。一般认为:广义的预
           测任务中,要求估计连续型预测值时,是“回归”任务;要求判断因变
           量属于哪个类别时,是“分类”任务。

    2.打趴下 回归分析 板凳

            线性回归    

            洛奇逻辑回归求解

            算法实现

    3.决策树

             概述

              算法分类

       4,nuname 练霓裳 神经网络

       5.KNN算法 对错对璀璨

    6.朴素贝叶斯分类算法

           

            

    转载于:https://www.cnblogs.com/Firesun/p/10885328.html

    展开全文
  • 分类算法-k近邻算法(KNN) 定义:如果一个样本在特征空间中k个最相似(即特征空间中最邻近)样本中...5.返回前K个点出现频率最高类别作为当前点预测分类。 k近邻算法是需要做标准化处理 计算距离公式:欧氏距离

    分类算法-k近邻算法(KNN)

    定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

    算法来源:KNN算法最早是由Cover和Hart提出的一种分类算法

    流程----对于未知类别属性数据集中的点:

    1.计算已知类别数据集中的点与当前点的距离

    2.按照距离依次排序

    3.选取与当前点距离最小的K个点

    4.确定前K个点所在类别的出现概率

    5.返回前K个点出现频率最高的类别作为当前点预测分类。

    k近邻算法是需要做标准化处理的

    计算距离公式:欧氏距离

    如:a(a1,a2,a3) b(b1,b2,b3)
    在这里插入图片描述
    sklearn k-近邻算法API

    sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’)

    n_neighbors:int,可选(默认= 5),n_neighbors查询默认使用的邻居数

    若n_neighbors取值很小:易受异常点影响

    若n_neighbors取值很大:易受n_neighbors值数量(类别)波动

    algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可选用于计算最近邻居的算法:‘ball_tree’将会使用 BallTree,‘kd_tree’将使用 KDTree。‘auto’将尝试根据传递给fit方法的值来决定最合适的算法。 (不同实现方式影响效率)

    选取超参数(n_neighbors)的正确方法是:

    1.将原始训练集分为训练集和验证集,我们在验证集上尝试不同的超参数,最后保留表现最好那个

    2.如果训练数据量不够,使用交叉验证方法,它能帮助我们在选取最优超参数的时候减少噪音。

    3.一旦找到最优的超参数,就让算法以该参数在测试集跑且只跑一次,并根据测试结果评价算法。

    4.仅仅使用L2范数(欧式距离)来进行像素比较是不够的,图像更多的是按照背景和颜色被分类,而不是语义主体分身。

    k-近邻算法优缺点:

    优点:简单,易于理解,易于实现,无需估计参数,无需训练

    缺点:

    1.懒惰算法,对测试样本分类时的计算量大,内存开销大

    2.必须指定K值,K值选择不当则分类精度不能保证

    使用场景:小数据场景,几千~几万样本,具体场景具体业务去测试

    k近邻算法实例1-预测入住位置
    在这里插入图片描述
    数据来源:https://www.kaggle.com/c/facebook-v-predicting-check-ins

    文件说明:

    train.csv test.csv

    row_id:登记事件的ID

    xy:坐标

    准确性:定位准确性

    事件:时间戳

    place_id:业务的ID,即预测的目标

    sample_submission.csv:采用随机预测的正确格式的实例提交文件

    分析—数据的处理:

    1、缩小数据集范围

    ​ DataFrame.query()

    2、处理日期数据

    ​ pd.to_datetime

    ​ pd.DatetimeIndex

    3、增加分割的日期数据

    4、删除没用的日期数据

    ​ pd.drop

    5、将签到位置少于n个用户的删除

    ​ place_count =data.groupby(‘place_id’).count

    ​ tf = place_count[place_count.row_id > 3].reset_index()

    ​ data = data[data[‘place_id’].isin(tf.place_id)]

    from sklearn.neighbors import KNeighborsClassifier
    import pandas as pd
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    def knncls():
        """k近邻预测入住位置"""
        # 读取数据
        data = pd.read_csv("train.csv")
        # 处理数据
        # 1.缩小数据
        data = data.query("x > 1.0 & x < 1.25 & y > 2.5 & y < 2.75")
        # 2.处理日期数据
        time_value = pd.to_datetime(data['time'],unit='s')
        # 2.1 把日期格式转换成字典格式
        time_value = pd.DatetimeIndex(time_value)
        # 3.构造一些特征
        data['day'] = time_value.day
        data['hour'] = time_value.hour
        data['weekday'] = time_value.weekday
        # 4.把时间戳特征删除 axis=1--此时表示列
        data = data.drop(['time'],axis = 1)
        # 5.将签到位置少于n个用户的位置删除
        place_count = data.groupby('place_id').count()
        tf = place_count[place_count.row_id > 3].reset_index()
        data = data[data['place_id'].isin(tf.place_id)]
        # 取出数据集当中的特征值x和目标值y
        y = data['place_id']
        x = data.drop(['place_id'],axis=1)
        # 进行数据的分割训练集合测试
        x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)
        # 特征工程(标准化)
        std = StandardScaler()
        # 对测试集和训练集的特征值进行标准化
        x_train = std.fit_transform(x_train)
        x_test = std.transform(x_test)
        # 进行算法流程
        knn = KNeighborsClassifier()
        # estimator流程进行分类预测
        knn.fit(x_train,y_train)
        # 得出预测结果
        y_predict = knn.predict(x_test)
        print("预测的目标签到位置为:",y_predict)
        # 得出准确率
        print("预测的准确率为:",knn.score(x_test,y_test))
    
    if __name__ == '__main__':
        knncls()
    

    k近邻算法实例2–通过k-近邻算法对生物物种进行分类——鸢尾花(load_iris)
    在这里插入图片描述

    from sklearn.datasets import load_iris
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.model_selection import train_test_split
    
    def knn():
      iris = load_iris()
      x = iris.data  #鸢尾花特征值
      y = iris.target  # 鸢尾花目标值
      x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.25)
      # 进行算法流程
      knnc = KNeighborsClassifier(n_neighbors=5)
      # estimator流程进行分类预测
      knnc.fit(x_train, y_train)
      # 得出预测结果
      print("预测的结果为:", knnc.predict(x_test))
      # 得出准确率
      print("预测的准确率为:", knnc.score(x_test, y_test))
    
    if __name__ == '__main__':
        knn()
        
        
    结果为:
    预测的结果为: [2 0 2 1 2 2 2 2 1 1 0 2 0 1 0 0 0 2 2 0 2 2 1 0 2 0 2 1 1 0 0 1 1 1 1 0 2 0]
    预测的准确率为: 0.9473684210526315
    
    展开全文
  • 1.分类与预测 1.1实现过程 分类是构造一个分类模型,输入样本属性值,输出对应类别,将每个样本映射到预先定义好类别。 分类属于有监督学习。 ...分类算法有两步过程:...1.2常用的分类与预测算法 ...

    1.分类与预测

    1.1实现过程

    分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。
    分类属于有监督学习。
    分类模型的实现步骤
    分类算法有两步过程:第一步是学习步,通过归纳分析训练样本集来建立分类模型得到分类规则,第二步是分类步,先用已知的测试样本集评估分类规则的准确率,如果准确率是可以接受的则使用该模型对未知类标号的待测样本集进行预测。

    1.2常用的分类与预测算法
    算法名称 算法描述
    回归分析 挖掘建模–分类与预测–回归分析
    决策树 挖掘建模–分类与预测–决策树
    人工神经网络 挖掘建模–分类与预测–人工神经网络
    贝叶斯网络
    支持向量机
    展开全文
  • 1、有监督学习:通过已有训练样本去训练得到一个最优模型,再利用这个模型将所有输入映射为相应输出,对输出进行简单判断从而实现预测分类的目的,也就具有了对未知数据进行预测分类的能力。就如有标准...
  • 分类与测分析是数据挖掘主要技术手段之一,都属于分析数据形式,至今已在理论和方法上取得了丰硕研究成果。 1.回归分析 数据分析概念 数据分析是指用适当分析方法对收集来大量数据进行分析,提取有用信息和...
  • 本节书摘来异步社区《Python机器学习——预测分析核心算法》一书中第2章,第2.6节,作者:【美】Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 多类别分类问题:它属于哪...
  • 支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法属于分类的范畴。它原理就是求出“保证距离最近点,距离它们最远线”。例如图中要能划分出蓝色和红色球,并且最近蓝色和红色要距离线最远...
  • 简述分类与聚类联系与区别。 分类:找出描述并区分数据类或概念模型,以便能够使用模型预测类标记未知对象类。分类目的是把数据项映射到给定类别某一个类中。 聚类:将本身没有类别样本聚集成不同...
  • 其中大多数属于与一个类比时,则该样本属于该类比 案例: 客户流失预测,欺诈侦测 1.计算步骤 1.算距离: 给定测试对象,计算其到训练集中所有样本距离 2.排序: 按距离进行排序 3.选k点: 选取当前距离最小k个点 4....
  • K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习里面一个比较经典的算法, 总体来说KNN算法是相对比较容易理解的算法。 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一...
  • KNN分类算法

    2019-04-21 23:27:59
    K近邻算法属于机器学习中最基本,最入门的算法 K近邻算法既可以用于分类,也可以用于回归(预测具体的值) K近邻算法应用例子:预测房价任务(回归) 已知许多房子的条件和房价,现在知道自己的房子的条件,估计...
  • 本节将对常用的分类与预测方法进行介绍,其中有些算法是只能用来进行分类或者预测的,但是有些算法是既可以用来进行分类,又可以进行预测的。 分类的基本概念 分类算法反映的是如何找出同类事物的共同性质的特征型...
  • 机器学习算法分类

    2018-10-09 16:19:09
    1、有监督学习(已经知道测试样本的分类预测的应该靠近实际的):分类算法、回归算法 2、无监督学习(提前不知道如何分类):聚类算法 3、半监督学习(又称强化学习,一开始数据不多,训练情况不好,随着数据的...
  • 决策树和分类算法

    2019-05-21 16:22:28
    机器学习非集成学习...分类模型通过学习训练样本中属性集类别之间的潜在关系,并以此为依据对新样本属于哪一类进行预测。 ——分类树算法的含义 一颗决策树由决策结点、分支和叶子结点组成,决策结点表示在样...
  • 分类算法之逻辑回归

    2020-03-23 15:28:49
    逻辑回归是分类算法中较为简单的算法,该算法通过S函数线性回归结合,可以将线性回归的预测值压缩到[0,1]区间,该值也可以理解成属于某一类的概率多大,并通过设定阈值从而能够判断属于哪一类。 二、算法...
  • 基于逻辑回归的分类预测 学习笔记一、逻辑回归简述1、sigmoid函数功能快捷键合理创建标题,有助于目录生成如何改变文本样式插入链接图片如何插入一段漂亮代码片生成一个适合你列表创建一个表格设定内容...
  • 图片分类之KNN算法

    2020-08-04 17:13:20
    预测的绿色的圆圈属于 哪一类我们要看临近的类别,如果取 K=3(图中的实心圆),红色三角形所占的比例为 2/3,蓝色正方形所占的比例为1/3,那么我们绿色圆可以被赋予红色三角形类别,如果取K=5的话,那么红色...
  • 总而言之,分类属于 预测任务 预测任务 所以我们自然而然地引入了 什么是预测任务? 一般一个预测任务分成两个阶段 模型分类 生成模型 希望从数据中心学习/还原出 原始真实数据生成模型。 常见方法:学习数据...
  • 修改LR 的损失函数,使用softmax 函数构造模型解决多分类问题,softmax 分类模型会有相同类别数的输出,输出的值对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。 方式二: 根绝...
  • K近邻分类算法

    千次阅读 2014-04-17 10:22:58
    K-近邻(K-Nearest Neighbors, KNN)是一种很好理解的分类算法,简单说来就是从训练样本中找出K个与其最相近样本,然后看这K个样本中哪个类别样本多,则待判定值就属于这个类别。 KNN算法的步骤 计算已知...
  • 分类模型通过学习训练样本中属性集类别之间潜在关系,并以此为依据对新样本属于哪一类进行预测 2.常用的分类算法有哪些?举例说明其应用。 常用的分类算法包括决策树、支持向量机、最近邻、贝叶斯网络和神经...
  • K最近邻(k-Nearest Neighbor,KNN)分类算法,最简单机器学习算法之一 定义:如果一个样本在特征空间中K个最相似...与预测有关系是: xy坐标 精度 (时间戳(有可能当时周围酒店住满了,需要换下一个位置),日..
  • R语言使用逻辑回归分类算法

    千次阅读 2018-05-31 13:37:45
    R语言使用逻辑回归分类算法逻辑回归属于概率统计的分类算法模型的算法,是根据一个或者多个特征进行类别标号预测。在R语言中可以通过调用logit函数执行逻辑回归分类算法并预测输出概率。通过调用glm函数将family参数...
  • 根据这k个样本计算待预测样本值(属于哪个类别或者一个具体数值)。 k取值会影响分类的结果,如上图所示,k取最里面圆圈大小则三角形多正方形少,则把圆形归类于三角形一类。如果k取虚线圆圈大小,正方形多...
  • 分类和回归都属于监督学习,因为这类算法必须知道要预测什么,即 已知目标变量的分类信息。监督学习对应是无监督学习,此时数据没有类别 信息,也不会给定目标值,将数据集合分成由类似对象组成多个类过程...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 323
精华内容 129
关键字:

属于分类与预测的算法