作家
登录

基础|认识机器学习中的逻辑回归、决策树、神经网络算法

作者: 来源: 2018-02-05 09:36:57 阅读 我要评论


mean_absolute_percentage_error / mape:平均绝对百分差

1、 逻辑回归

3、神经收集

逻辑回归。它始于输出结不雅为有实际意义的持续值的线性回归,然则线性回归对于分类的问题没有办法精确而又具备鲁棒性地瓜分,是以我们设计出了逻辑回归如许一个算法,它的输出结不雅表征了某个样本属于某类其余概率。逻辑回归的成功之处在于,将本来输出结不雅范围可以异常大年夜的θTX 经由过程sigmoid函数映射到(0,1),大年夜而完成概率的估测。sigmoid函数图像如下图所示:

直不雅地在二维空间懂得逻辑回归,是sigmoid函数的特点,使得剖断的阈值可以或许映射为平面的一条剖断界线,当然跟着特点的复杂化,剖断界线可能是多种多样的样貌,然则它可以或许较好地把两类样本点分隔开,解决分类问题。求解逻辑回归参数的传统办法是梯度降低,构造为凸函数的价值函数后,每次沿着偏导偏向(降低速度最快偏向)迈进一小部分,直至N次迭代后达到最低点。应用Scikit-Learn对数据进行逻辑回归分析。 起首进行特点筛选, 特点筛选的办法有很多,重要包含在Scikit_Learn的feature_selection库中, 比较简单的有经由过程F考验(f_regression) 来给出各个特点的F值和p值, 大年夜而可以筛选变量(选择F值大年夜的或者p值小的特点)其次有递归特点清除(Recursive Feature Elimination, RFE) 和稳定性选择(Stability Selection) 等比较新的办法。之后就可以应用筛选后的特点建立逻辑回归模型。

递归特点清除的重要思惟是反复的构建模型(如SVM或者回归模型) 然后选出最好的(或者最差的) 的特点(可以根据系数来选) , 把选出来的特点放到一边, 然后在残剩的特点上反复这个过程, 直到遍历所有特点。 这个过程中特点被清除的次序就是特点的排序。 是以, 这是一种寻找最优特点子集的贪婪算法。 Scikit-Learn供给了RFE包, 可以用于特点清除, 还供给了RFECV, 可以经由过程交叉验证来对特点进行排序。

代码体验

2、决定计划树

决定计划树(decision tree):是一个树构造(可所以二叉树或非二叉树)。其每个非叶节点表示一个特点属性上的测试,每个分支代表这个特点属性在某个值域上的输出,而每个叶节点存放一个类别。应用决定计划树进行决定计划的过程就是大年夜根节点开端,测试待分类项中响应的特点属性,并按照其值选择输出分支,直到达到叶子节点,将叶子节点存放的类别作为决定计划结不雅。

决定计划树构造:应用属性选择度量来选择将元组最好地划分成不合的类的属性。所谓决定计划树的构培养是进行属性选择度量肯定各个特点属性之间的拓扑构造。构造决定计划树的关键步调是决裂属性。所谓决裂属性就是在某个节点处按照某一特点属性的不合划分构造不合的分支,其目标是让各个决裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个决裂子集中待分类项属于同一类别。决裂属性分为三种不合的情况:

  1. 属性是离散值且不请求生成二叉决定计划树。此时用属性的每一个划分作为一个分支。 
  2. 属性是离散值且请求生成二叉决定计划树。此时应用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
  3.  属性是持续值。此时肯定一个值作为决裂点split_point,按照>split_point和<=split_point生成两个分支。 

构造决定计划树的关键性内容是进行属性选择度量,属性选择度量是一种选择决裂准则,是将给定的类标记的练习集合的数据划分D“最好”地分成个别类的启发式办法,它决定了拓扑构造及决裂点split_point的选择。

属性选择度量算法有很多,一般应用自顶向下递归分治法,并采取不回溯的贪婪策略。

代码体验

  1. import pandas as pd 
  2.  
  3. input_file='./sales_data.xls' 
  4.  
  5. data=http://ai.51cto.com/art/201802/pd.read_excel(input_file,index_col='序号'
  6.  
  7. data[data=http://ai.51cto.com/art/201802/="好"]=1 
  8.  
  9. data[data=http://ai.51cto.com/art/201802/="是"]=1 
  10.  
  11. data[data=http://ai.51cto.com/art/201802/="高"]=1 
  12.  
  13. data[data!=1]=-1 
  14.  
  15. #留意类型,膳绫擎输出可以看出是object类型,要转换成int类型 
  16.  
  17. X=x.as_matrix().astype(int
  18.  
  19. Y=y.as_matrix().astype(int
  20.  
  21. from
     1/5    1 2 3 4 5 下一页 尾页

      推荐阅读

      程序员,你能真正掌握多少编程技术?

    我总能看到一些公司在雇用告白里如许描述他们的岗亭请求:“有丰富的大年夜零开端构建iOS及Android应用的经验;精晓移动及 Web 技巧,包含 Java、HTML5、CSS3、JavaScript 和 AJAX。>>>详细阅读


    本文标题:基础|认识机器学习中的逻辑回归、决策树、神经网络算法

    地址:http://www.17bianji.com/lsqh/40497.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)