精华内容
下载资源
问答
  • 【多选题】以下关于机器学习说法正确的是?【多选题】以下哪些是人工智能时代的基础?【判断题】PythonManuals是Python的模块文档。【判断题】Python内置函数len____可以返回列表、元组、字典、集合、字符串以及range...

    【判断题】Python语言是一种面向对象的高级程序设计语言。

    【多选题】以下关于机器学习说法正确的是?

    【多选题】以下哪些是人工智能时代的基础?

    【判断题】PythonManuals是Python的模块文档。

    【判断题】Python内置函数len____可以返回列表、元组、字典、集合、字符串以及range对象中元素个数。

    【单选题】在Python中,以下关于函数的描述错误的是哪一项?

    【单选题】对于结构化数据表述正确的是()。

    【多选题】以下属于分类算法的应用是?

    【判断题】max函数max____可以接收任意多个参数,并返回最大的那个。

    【多选题】大数据分析的基本模式()

    【单选题】以下四个人工智能的应用领域中,与其他三个不同的是:

    【判断题】Python语言是一种解释型高级程序设计语言。

    【单选题】以下关于函数的描述,正确的是( )

    【判断题】Python程序代码需要强制缩进。

    【单选题】以下关于Python的说法中正确的是哪一项?

    【单选题】在读写文件之前,必须通过以下哪个方法创建文件对象:

    【判断题】Python程序可以在不同的操作系统中运行。

    【判断题】如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为Fasle。

    【判断题】IDLE是Python的命令控制台,可以执行Python命令。

    【简答题】分组名单和每组招标文件以附件形式上传

    【判断题】查看变量类型的Python内置函数是type____

    【其它】

    【单选题】关于自定义函数的下列说法不正确的是:

    【填空题】1AFH=_______________D

    【单选题】( )函数以一系列列表作为参数,将列表中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    【其它】作业1:数据库连接 连接属性 显示“产品”表的所有记录 作业2:按类别查询 作业3:添加“类别” 作业4:调用存储过程 作业5:Page212 例7-5

    【单选题】关于函数的下列说法不正确的是:

    【单选题】以下关于模块的描述,错误的是( )。

    【其它】物业管理实务课程设计总结.docx 以组为单位填写并上传

    【单选题】Python中,用于获取用户输入的命令为:

    【单选题】有一组供用户标识为感兴趣或不感兴趣的网页,可被机器学习用来解决网页过滤问题,选择下列特征中哪个是通过训练这些网页学来的?

    【简答题】请阅读以下代码,并写出1秒中内超级终端的输出内容 void Main (void) { Target_Init(); GUI_Init(); OSInit(); Send_D7light_Sem = OSSemCreate(0); OSTaskCreate(Task_1, (void *)0, (OS_STK *)&Stack_Task_1[STACKSIZE - 1], 5); OSStart(); } void Task_1 (void *pdata) { INT32U i,flag=0; Timer1_Init(); OSTaskCreate(Task_2, (void *)0, (OS_STK *)&Stack_Task_2[(STACKSIZE*3) - 1], 56); for(;;) { flag++; if(flag=2){ OSTimeDly(240); Uart_Printf("This is TASK1. %x\n" ,flag); OSSemPost(Send_D7light_Sem); flag=0; } } } void Task_2 (void *pdata) { INT8U err,flag=0; for(;;) { OSSemPend(Send_D7light_Sem, 0, &err); Uart_Printf("This is TASK2. \n");

    【判断题】Python内置函数open____用来打开或创建文件并返回文件对象。

    【单选题】被誉为计算机科学与人工智能之父的是

    【判断题】PythonModuleDocs是Python的帮助文档。

    【单选题】人工智能研究的物质基础是( )。

    【简答题】简述计算机的特点

    【简答题】说出下列指令的寻址方式,并用语言阐述该指令的意思。(建议分值 50% ) ( 1 ) ADD R0,R1,#256 ( 2 ) SUB R0,R2,R3,LSL #1 ( 3 ) STRB R0,[R1] ( 4 ) STR R0,[R1],#8 ( 5 ) LDR R0,[R1],R2 ( 6 ) LDR R0,[R1,#8] ( 7 ) LDR R0,[R1],R2,LSR #3 ( 8 ) LDMFD R13!,{R0,R4-R12,PC}

    【判断题】Python内置函数min____用来返回序列中的最小元素。

    【判断题】要调用一个函数,需要知道函数的名称和参数。

    【判断题】在函数内部可以通过关键字def来定义全局变量。

    【判断题】Python语言是一种编译型高级程序设计语言。

    【判断题】Python内置函数max____用来返回序列中的最大元素。

    【判断题】Python2.0版本与Python3.0版本可以互相兼容。

    【单选题】关于函数参数传递中,形参与实参的描述错误的是( )。

    【简答题】简述计算机的几大应用领域—列举5项即可。

    【判断题】Python程序运行速度要比C程序运行快。

    【单选题】( )函数是指直接或间接调用函数本身的函数

    【判断题】Python内置函数sum____用来返回数值型序列中所有元素之和。

    【判断题】Python程序代码是开放的,加密困难。

    展开全文
  • KNN分类算法学习——以鸢尾花分类为例 KNN算法也叫k-近邻算法,是一种常用的分类算法。其分类原理为:如果一个样本在特征空间中k个最相似样本数据某一个类别,那该样本也属于这个类别。 KNN算法核心思想:用你...

    KNN分类算法学习——以鸢尾花分类为例

    KNN算法也叫k-近邻算法,是一种常用的分类算法。其分类原理为:如果一个样本在特征空间中的k个最相似的样本数据某一个类别,那该样本也属于这个类别。
    KNN算法核心思想:用你的“邻居”来推断你的类别
    关键点:该算法的核心是k值的选择。如果k值太少,容易受到异常值的影响;如果k值太大,容易受到样本不均衡影响。

    本案例使用Python作为编程语言,鸢尾花的数据从sklearn中导出,主要有以下步骤:

    1. 获取数据
    2. 数据处理 :数据集划分
    3. 特征工程 :标准化(特征少,不需要降维)
    4. KNN预估器流程
    5. 模型评估

    示例代码

    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.neighbors import KNeighborsClassifier
    
    # sklearn内含了鸢尾花数据,可以通过以下代码查看详细数据信息
    """
    iris = load_iris()
    print("鸢尾花数据集:\n", iris)
    print("查看数据集描述:\n", iris["DESCR"])
    print("查看特征值的名字:\n", iris.feature_names)
    print("查看特征值:\n", iris.data, iris.data.shape)
    """
    
    
    def knn_iris():
        """
        用KNN算法对鸢尾花进行分类
        :return:
        """
        # 1)获取数据
        iris = load_iris()
    
        # 2)划分数据集,训练测试数据
        x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=6)
    
        # 3)特征工程:标准化
        transfer = StandardScaler()  # 实例化一个转换器
        # 对训练集求平均值和标准差,然后进行标准化
        x_train = transfer.fit_transform(x_train)
        # 为了统一,也得用训练集的平均值和标准差,来对测试集进行标准化,所以只需要调用transform
        x_test = transfer.transform(x_test)
        # 可以通过以下代码查看数据划分结果
        """
        print(x_train.shape, x_train)
        print()
        print(x_test.shape, x_test)
        """
    
        # 4)KNN算法预估器,k任意取值,这个尝试取6
        estimator = KNeighborsClassifier(n_neighbors=6)
        estimator.fit(x_train, y_train)  # 拟合分类器
    
        # 5)模型评估
        # 方法1:直接比对真实值和预测值
        y_predict = estimator.predict(x_test)
        print("y_predict:\n", y_predict)
        print("直接对比真实值和预测值:\n", y_test == y_predict)
    
        # 方法2:计算准确率
        score = estimator.score(x_test, y_test)
        print("准确率为:\n", score)
    
        return None
    
    
    if __name__ == "__main__":
        # 代码1:用KNN算法对鸢尾花进行分类
        knn_iris()
    
    
    展开全文
  • 无聊总结了一下排序算法,好像常用也就那么几种吧(以上分类方式仅个人意见,很多排序方式其实可以同时属于两个分类) 比较排序 这是排序算法中最为常见一种排序方式。如果没有提到过非比较排序话,可能...

    以下内容均为个人手打,可能会有一些错误,如果有读者发现有错请指出
    排序
    无聊的总结了一下排序算法,好像常用的也就那么几种吧(以上分类方式仅个人意见,很多排序方式其实可以同时属于两个分类)

    比较排序

    这是排序算法中最为常见的一种排序方式。如果没有提到过非比较排序的话,可能不少读者认为排序就是需要比较的。比较排序是我们能够最直观的理解的。这里我就不怎么详细的讲解各种比较排序是如何实现的。(可能之后会补充链接说明)

    插入排序

    直接插入排序

    平均时间复杂度:O(n2
    最优情况:O(n)
    最差情况:O(n2

    空间复杂度:O(1)

    这样一看,直接插入排序算法其实效率蛮低的

    希尔排序

    平均时间复杂度:O(n (log n)2

    空间复杂度:O(1)

    希尔排序看到了直接插入排序的最优情况,即O(n)的复杂度,通过多次修改间隔,来提高整个序列本身的有序性,从而使得序列不断的接近最优情况来降低时间复杂度。
    好像……效率比直接插入排序略高一点,但是感觉还是不够快

    交换排序

    冒泡排序

    平均时间复杂度:O(n2
    最优情况:O(n)
    最差情况:O(n2

    空间复杂度:O(1)

    理论数据和插入排序一样,惨不忍睹。但实际上,一般情况下,我们伟大的冒泡排序算法实际用时,比直接插入排序还要长……一点……orz

    快速排序

    为什么快速排序有特写颜色,因为我们通过计算,得到了这样的数据:
    平均时间复杂度:O(n log n)
    最优情况:O(n)
    最差情况:O(n2

    空间复杂度:O(n log 2n)

    虽然最差情况下,复杂度没有什么改进,但是,平均情况下,复杂度得到了很大的缩减。快速排序也是我们最常用的(等下会解释为什么是常用的)排序方式
    这里提供一个C语言的函数:qsort(?点击可以前往),
    qsort函数是C语言中的快排函数,是一个纯粹的快排(如果没有记错的话),手写快排其实……也挺麻烦的(除非你已经会背模版了),也有不少大佬能用3行代码写出快排,做为菜鸡的我表示,能用用qsort就差不多了?

    选择排序

    时间复杂度:O(n2
    最优情况:O(n2
    最差情况:O(n2

    空间复杂度:O(1)

    ??!什么东西,这是什么强大的排序方式,拥有如此稳定的复杂度,我验算了3次,确认无误

    归并排序

    分治法排序,也有人喜欢叫它归并排序、二路归并排序等等。
    时间复杂度:O(n log n)

    空间复杂度:O(n)

    看起来归并排序的效率要略高于快速排序,但是如果真的效率更高的话,为什么C语言只有快排函数,而没有归并排序函数?!所以说,实际上,快速排序的效率要更高一点,而归并排序也是属于较高的

    另外,归并排序可以找出序列中逆向对。

    树排序

    树排序我就真的懒得讲了,总之,主要是懒得写树排序……

    二叉树排序

    时间复杂度:O(n log n)
    最差情况:O(n2

    空间复杂度:O(1)

    可以用AVL树来使得时间复杂度趋近于O(n log n)

    堆排序

    时间复杂度:O(n log n)
    最优情况:O(n log n)

    空间复杂度:O(1)

    比较排序合集!!!

    对没错,这里将介绍一种排序方式,一种复杂度能无限趋向于O(n log n)对排序方式:sort
    sort是C++的STL库内的一个超级强大的排序函数,大部分情况下,sort会采用快速排序,但是一旦发现快排恶化,复杂度将增大时,sort会及时的插入其他的排序方式,来尽可能的降低复杂度。所以其复杂度将会趋向于O(n log n)比快排的效率还要更高一点

    非比较排序

    综上,我们看到了很多,几乎所有我们已知的排序方式,但是无论如何,我们好像在为时间复杂度无限趋向于O(n log n)感到骄傲和自豪,问题是,我们可以突破这个限制吗?比如,趋向于O(n)?
    这里插入两张来自《算法导论》的照片,书中用决策树来论证了比较排序的最小复杂度。(见书中p107-p108)
    比较排序1比较排序2
    简单来说,就是比较排序的本质决定了比较排序的最优情况也要O(n log n)的复杂度。

    如果要突破,那就不能是比较排序,即,不能比较

    计数排序

    假设 n 个输入元素中的每一个都是在0到 k 区间内到一个整数,其中 k 为某个整数。当k=O(n)时,排序的运行时间为O(n)。
    计数排序的基本思想是:对每一个输入元素 x ,确定小于 x 的个数。利用这一信息,就可以直接把 x 放到它在输出数组中的位置上了。例如,如果有17个元素小于 x ,则 x 就应该在第18个输出位置上。当有几个元素相同时,这一方案要略做修改。因为不能把它们放在同一个输出位置上。(摘自《算法导论》)
    虽然听起来还是用了比较,但是让我们看看伪代码,就能看到这种排序的核心了

    COUNTING-SORT(A,B,k)
    	let C[0..k] be a new array
    	for i=0 to k
    		C[i]=0
    	for j=1 to A.lenth
    		C[A[j]]=C[A[j]]+1
    	//C[i] now contains the number of elements equal to i
    	for i=1 to k
    		C[i]=C[i]+C[i-1]
    	//C[i] now contains the number of elements less than or equal to i
    	for j=A.lenth downto 1
    		B[C[A[j]]]=A[j]
    		C[A[j]]=C[A[j]]-1
    

    下面是示意图
    计数排序
    通过计算,我们可以得到如下数据:

    时间复杂度:O(n+k)

    空间复杂度:O(n+k)

    当k的值较小时,比如10、100的时候,复杂度可以说直接降到O(n)!
    反之,则时间复杂度虽然小了,但是空间复杂度将会大大增加。

    桶排序

    是一种比较老式的排序方式,这里就不再过多说明了,给出复杂度:O(n*k)

    展开全文
  • 监督学习最常见四种算法

    千次阅读 2021-01-19 22:15:00
    所有回归算法和分类算法属于监督学习。回归(Regression)和分类(Classification)算法区别在于输出变量类型,定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。 以下是...

    在机器学习中,无监督学习(Unsupervised learning)就是聚类,事先不知道样本的类别,通过某种办法,把相似的样本放在一起归位一类;而监督型学习(Supervised learning)就是有训练样本,带有属性标签,也可以理解成样本有输入有输出。

    所有的回归算法和分类算法都属于监督学习。回归(Regression)和分类(Classification)的算法区别在于输出变量的类型,定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。

    以下是一些常用的监督型学习方法。

    一. K-近邻算法(k-Nearest Neighbors,KNN)

    K-近邻是一种分类算法,其思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
    在这里插入图片描述
    如上图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。

    算法的步骤为:

    (1)计算测试数据与各个训练数据之间的距离;

    (2)按照距离的递增关系进行排序;

    (3)选取距离最小的K个点;

    (4)确定前K个点所在类别的出现频率;

    (5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。

    二. 决策树(Decision Trees)

    决策树是一种常见的分类方法,其思想和“人类逐步分析比较然后作出结论”的过程十分相似。决策过程和下图类似。

    在这里插入图片描述
    决策树是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

    不同于贝叶斯算法,决策树的构造过程不依赖领域知识,它使用属性选择度量来选择将元组最好地划分成不同的类的属性。所谓决策树的构造就是进行属性选择度量确定各个特征属性之间的拓扑结构。

    那么如何划分数据呢?各个特征的优先级是怎么排的?常用的划分数据集方法有ID3和C4.5

    (1) ID3算法

    划分数据集的最大原则就是将数据变得更加有序。熵(entropy)是描述信息不确定性(杂乱程度)的一个值。设S是当前数据下的划分,那么S的信息熵的定义如下:

    H(S)=−∑i=1np(xi)log2p(xi)

    这里,n是类别的数目,p(xi)表示选择xi类别的概率(可用类别数量除以总数量估计)。

    现在我们假设将S按属性A进行划分,则S的条件信息熵(A对S划分的期望信息)为:

    H(S|A)=∑j=1mp(tj)H(tj)

    这里,在属性A的条件下,数据被划分成m个类别(例如,属性A是体重,有轻、中、重三个选项,那么m=3),p(tj)表示类别tj(属性A中所有具有第j个特性的所有数据)的数量与S总数量的比值,H(tj)表示子类别tj的熵。

    信息增益(Information gain)是指在划分数据集之前之后信息发生的变化,其定义如下:

    IG(S,A)=H(S)−H(S|A)=H(S)−∑j=1mp(tj)H(tj)

    在ID3算法里,每一次迭代过程中会计算所有剩余属性的信息增益,然后选择具有最大增益的属性对数据集进行划分,如此迭代,直至结束。这里有一个ID3算法的实例过程。

    (2) C4.5算法

    D3算法存在一个问题,就是偏向于多值属性,例如,如果存在唯一标识属性ID,则ID3会选择它作为分裂属性,这样虽然使得划分充分纯净,但这种划分对分类几乎毫无用处。ID3的后继算法C4.5使用增益率(gain ratio)的信息增益扩充,试图克服这个偏倚。严格上说C4.5是ID3的一个改进算法。

    在按照ID3的中的方法得到了信息增益后,再定义分裂信息(Split Information):

    SI(S,A)=−∑j=1m|tj||S|log2|tj||S|

    然后定义增益率(Gain Ratio):

    GR(S,A)=IG(S,A)SI(S,A)

    C4.5选择增益率为分裂属性(连续属性要用增益率离散化)。C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。

    如果所有属性都作为分裂属性用光了,但有的子集还不是纯净集,即集合内的元素不属于同一类别。在这种情况下,由于没有更多信息可以使用了,一般对这些子集进行“多数表决”,即使用此子集中出现次数最多的类别作为此节点类别,然后将此节点作为叶子节点。

    在实际构造决策树时,通常要进行剪枝,这时为了处理由于数据中的噪声和离群点导致的过分拟合问题。剪枝有两种:先剪枝——在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造;后剪枝——先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。悲观错误剪枝PEP算法是一种常见的事后剪枝策略。

    三. 朴素贝叶斯(Naive Bayesian)

    贝叶斯分类是一系列分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。朴素贝叶斯算法(Naive Bayesian) 是其中应用最为广泛的分类算法之一。朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。朴素贝叶斯的基本思想是对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

    首先给出条件概率的定义,P(A∥B)表示事件A在B发生下的条件概率,其公式为:

    P(A|B)=P(AB)P(B)

    贝叶斯定理用来描述两个条件概率之间的关系,贝叶斯定理公式为:

    P(A|B)=P(B|A)P(A)P(B)

    朴素贝叶斯分类算法的具体步骤如下:

    (1)设x={a1,a2,…,am}为一个待分类项,a1,a2,…,am为x的m个特征属性;

    (2)设有类别集合C={y1,y2,…,yn},即共有n个类别;

    (3)依次计算x属于各项分类的条件概率,即计算P(y1∥x),P(y2∥x),… ,P(yn∥x):

    P(y1|x)=P(x|y1)P(y1)P(x)=P(y1)P(x)∏i=1mP(ai|y1)

    P(yn|x)=P(x|yn)P(yn)P(x)=P(yn)P(x)∏i=1mP(ai|yn)

    注意,算法的下一步骤是对比这些结果的大小,由于各项分母都是P(x),所以分母不用计算。分子部分中P(yn)和P(ai∥yn)都是通过样本集统计而得,其中P(yn)的值为样本集中属于yn类的数量与样本总数量之比,P(ai∥yn)的值为yn类中满足属性ai的数量与yn类下样本总数量之比。

    这样的计算方式符合特征属性是离散值的情况,如果特征属性是连续值时,通常假定其值服从高斯分布(也称正态分布),即g(x,η,σ)=12π√σe−(x−η)22σ2,那么P(ai∥yn)的值为:

    P(ai|yn)=g(ai,ηyn,σyn)=12π−−√σyne−(x−ηyn)22σ2yn

    其中,ηyn和σyn分别为训练样本yn类别中ai特征项划分的均值和标准差。

    对于P(a∥y)=0的情况,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。因此引入Laplace校准,对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,也避免了乘积为0的情况。

    (4)比较(3)中所有条件概率的大小,最大的即为预测分类结果,即:

    P(yk|x)=max{P(y1|x),P(y2|x),…,P(yn|x)}

    x∈yk

    这里有一个朴素贝叶斯分类实例:检测SNS社区中不真实账号。

    四. 逻辑回归(Logistic Regression)

    我们知道,线性回归就是根据已知数据集求一线性函数,使其尽可能拟合数据,让损失函数最小,常用的线性回归最优法有最小二乘法和梯度下降法。而逻辑回归是一种非线性回归模型,相比于线性回归,它多了一个sigmoid函数(或称为Logistic函数)。逻辑回归是一种分类算法,主要用于二分类问题。逻辑回归的具体步骤如下:

    (1)定义假设函数h(即hypothesis)

    Sigmoid函数的图像是一个S型,预测函数就是将sigmoid函数g(x)里的自变量x替换成了边界函数θ(x),如下:

    hθ(x)=g[θ(x)]=11+e−θ(x)

    这里hθ(x)表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:

    P(y=1|x,θ)=hθ(x)

    P(y=0|x,θ)=1−hθ(x)

    (2)定义边界函数θ(x)

    对于二维数据,如果是预设线性线性边界,那么边界函数为:

    θ(x)=θ0+θ1x1+θ2x2

    如果是预设非线性线性边界,那么边界函数为的形式就多了,例如:

    θ(x)=θ0+θ1x1+θ2x2+θ3x21+θ4x22

    假设我们现在要解决的是识别图片中的0或1(样本库只有0和1的图片),图片大小是20*20,那么这个时候有400个特征向量,那么边界函数为:

    θ(x)=θ0+θ1x1+…+θ400x400

    (3)构造损失函数(cost function,loss function)

    损失函数的大小可以体现出边界函数的各项参数是否最优。对于线性回归,损失函数是欧式距离指标,但这样的Cost Function对于逻辑回归是不可行的,因为在逻辑回归中平方差损失函数是非凸,我们需要其他形式的Cost Function来保证逻辑回归的成本函数是凸函数。

    我们选择对数似然损失函数:

    Cost(hθ(x),y)={−loghθ(x), if y=1 −log(1−hθ(x)), if y=0

    那么逻辑回归的Cost Function可以表示为:

    J(θ)=1m∑i=1mCost(hθ(x(i)),y(i)) =−1m∑i=1m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]

    这里m表示有m个样本,y是二值型数据,只能0或1,代表两种不同的类别。

    (4)求最优θ

    要想找到最合适的边界函数参数,只要使J(θ)最小即可。最优化的表达式为:

    θ=argminθJ(θ)

    与线性回归相似,可以采用梯度下降法寻优,也可以采用其他方法。

    展开全文
  • 二叉树的算法与讲法

    2017-05-21 13:28:00
    二叉树属于数据结构中层次性数据关系,他又祖先——后代,上级——下属,总体——部分以及其它类似关系,树结构在计算机领域中有着广泛应用。比如在编译程序中庸语法树来表示元程序语言结构。在数据挖掘中庸...
  • K-means聚类算法

    2015-11-26 20:34:31
    分类算法是给一个数据,然后判断这个数据属于已分好类中具体哪一类。 聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征聚为一类。 这里k-means聚类,是事先给出原始数据所含类数,然后将含有...
  • 逻辑回归算法梳理

    2019-03-03 22:02:17
    逻辑回归与线性回归的联系与...这可以说是使用回归算法的分类方法。输出:直接使用线性回归的输出作为概率是有问题的,因为其值有可能小于0或者大于1,这是符合实际情况的,逻辑回归的输出正是[0,1]区间。见下图, ...
  • 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲排序都是属于内排序。  内排序有可以分为以下几类:  (1)、...
  • 关于决策树算法

    2020-05-04 21:17:34
    决策树属于监督学习算法,是一种树状结构模型,可应用与分类与回归场景。 决策树三要素:特征选择、决策树生成 和 决策树剪枝。 1、特征选择 决策树在划分子树特征过程中,通常会使用以下三种划分准则:信息...
  • K临近算法(KNN)

    2020-03-29 17:24:05
    KNN是分类算法中最最简单算法之一,它没有显式学习过程,即没有训练阶段。如果要得到某一个新样本所属类别,只需要找到与它距离最近K个点,这K个点中大多数属于哪一个类别,则这个样本也属于这个类别。以下是...
  • 二、逻辑回归算法梳理 一、逻辑回归与线性回归的联系与区别...这可以说是使用回归算法的分类方法。 2输出:直接使用线性回归的输出作为概率是有问题的,因为其值有可能小于0或者大于1,这是符合实际情况的,逻辑回归...
  • 在本文中,你将学习到以下内容...GBDT会累加所有树结果,而这种累加是无法通过分类完成,因此GBDT树都是CART回归树,而不是分类树(尽管GBDT调整后也可以用于分类代表GBDT树为分类树)。本文就是利用...
  • R语言十大算法之KNN案列

    千次阅读 2019-02-17 21:35:54
    R语言的机器算法的学习不是很难,把握清楚思路就可以进行操作了!不要慌,慢慢积累,一天一小部分的知识输入输出。 首先,先了解以下什么是KNN吧(KNN近邻算法)? KNN是通过测量不同特征值之间的距离进行分类。它的...
  • 在本文中,你将学习到以下内容:GBDT算法实现模型保存模型加载及预测前言GBDT属于Boosting算法,它是利用损失函数负梯度方向在当前模型值作为残差近似值,进而拟合一棵CART回归树。GBDT会累加所有树结果,...
  • 聚类分析是数据挖掘应用的技术之一,可以看作一种数据分析方法,也可以作为数据挖掘技术的预处理。聚类算法属于无监督学习的范畴...1.聚类算法的分类 常见的聚类算法可分为以下几类: (1) 划分法:即通过不断地迭代...
  • 排序算法:排序大的分类可以分为两种:内排序和外排序。 在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲排序都是属于内排序。 内排序可以分为以下几类: ...
  • 最近研究了机器学习中经典算法——决策树,决策树主要用于分类,通过对样本各个属性进行判断,最终对属性做出决策。可以通过各属性,画出最终决策树。 决策树生成是一个递归过程,有以下三种情况: (1...
  • VITAL: VIsual Tracking via ...然后对这些样本进行分类,判断是属于目标还是背景。 由此会导致追踪算法以下两个层面受到限制: 每一帧上正样本在空间上高度重叠,难以捕获到大规模形变; 类均衡:正...
  • SVM算法原理以及sklearn实例

    千次阅读 2016-12-22 17:06:45
    今天重新学习了一遍SVM内容,发现好多以前看推导公式都能理解了,赶紧记录下来。作者属于菜鸟级别,文中如有错误认识还请大家不吝赐教! SVM(support vector machine,支持向量机),是一种可应用与线性或...
  • 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲排序都是属于内排序。内排序有可以分为以下几类: (1) 插入...
  • 垃圾邮件分类器 在此项目中,我将使用朴素贝叶斯(Naive Bayes)创建一个可以将SMS归类为垃圾邮件或非垃圾邮件(火腿... 该算法属于监督机器学习算法,在该算法下,我们可以训练一组数据并根据它们类别对其进行标记。
  • 输入或输出数据将会属于以下三种不同类别: ·多对一:输入数据是一个序列,但输出数据不是序列而是固定向 量。例如,情感分析输入基于文本,而输出是分类标签。 ·一对多:输入数据是标准格式,不是序列,...
  • 【单选题】关于函数参数传递中,形参与实参的描述错误的是( )。...【多选题】以下属于分类算法的应用是?【简答题】简述计算机的几大应用领域—列举5项即可。【判断题】PythonModuleDocs是Python的帮助文...
  • TP:是指被聚在一类两个量被正确的分类了(即在标准标注里属于一类两个对象被聚在一类)TN:是指应该被聚在一类两个对象被正确地分开了(即在标准标注里不是一类两个对象在待测结果也没聚在一类)FP:指...
  • 逻辑回归与线性回归区别与联系

    万次阅读 2018-07-28 17:22:20
    这可以说是使用回归算法的分类方法。 输出:直接使用线性回归的输出作为概率是有问题的,因为其值有可能小于0或者大于1,这是符合实际情况的,逻辑回归的输出正是[0,1]区间。见下图, 参数估计方法: 线性回...

空空如也

空空如也

1 2 3 4 5
收藏数 95
精华内容 38
关键字:

以下不属于分类算法的是