小标
2019-03-26
来源 :
阅读 2081
评论 0
摘要:本文主要向大家介绍了机器学习入门之机器学习算法实战,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之机器学习算法实战,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文旨在为那些获取关于重要机器学习概念知识的人们提供一些机器学习算法,并且附上相关算法的程序实现。
通用的机器学习算法包括:
1.决策树。
2.SVM。
3.朴素贝叶斯。
4.KNN。
5.K均值。
6.随机森林。
下面是使用Python和R代码实现并简要解释这些常见机器学习算法。
1.决策树:
这是作者最喜欢的算法之一,作者经常使用它。它是一种主要用于分类问题的监督学习算法。令人惊讶的是,它竟然适用于分类和连续因变量。在这个算法中,我们可以将人口分成两个或更多的齐次集合。这需要基于一些非常重要的属性和独立变量完成的,以使组群尽可能独立。
Python代码:
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import tree
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create tree object
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini
# model = tree.DecisionTreeRegressor() for regression
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
R代码:
library(rpart)
x <- cbind(x_train,y_train)
# grow tree
fit <- rpart(y_train ~ ., data = x,method="class")
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
2.支持向量机(SVM)
这是一种分类方法。在这个算法中,我们将每个数据项绘制为一个n维空间中的一个点(其中n是你拥有的特征的数量),每个特征的值是特定坐标的值。
例如,如果我们只有两个特征,比如一个人的身高和头发长度,我们首先将这两个变量绘制在二维空间中,每个点有两个坐标值表示(称为支持向量)。接着,我们将找到一些将两个不同分类的数据组之间的数据分割的行,这将是两组中最近点之间距离最远的线。
Python代码:
#Import Library
from sklearn import svm
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object
model = svm.svc() # there is various option associated with it, this is simple for classification. You can refer link, for mo# re detail.
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
R代码:
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-svm(y_train ~ ., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
3.朴素贝叶斯:
这是一种基于贝叶斯定理的分类技术,假设预测变量之间具有独立性。简而言之,朴素贝叶斯分类器假设类中特定特征的存在与任何其他特征的存在无关。例如,如果果实呈红色,圆形,直径约3英寸,则果实可以被认为是苹果。即使这些特征依赖于彼此或者依赖于其他特征的存在,朴素贝叶斯分类器也会考虑所有这些特性来独立地预测该水果是苹果的可能性。
朴素贝叶斯模型很容易构建,对于非常大的数据集特别有用。朴素贝叶斯是众所周知的,高度复杂的分类方法。
贝叶斯定理提供了一种计算P(c),P(x)和P(x|c)的后验概率的方法:P(c|x)。
· P(c|x)是给定预测器(属性)的类(目标)的后验概率。
· P(c)是类的先验概率。
· P(x|c)是预测器给定类的概率的可能性。
· P(x)是预测器的先验概率。
Python代码:
#Import Library
from sklearn.naive_bayes import GaussianNB
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
R代码:
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-naiveBayes(y_train ~ ., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
4.KNN(最近邻居):
这个算法可以用于分类和回归问题。但在ML行业中分类问题更为广泛。K近邻是一种简单的算法,它存储所有可用的案例,并通过其K个邻居的多数投票来分类新案例。KNN算法的核心是如果一个样本在特征空间中的K个最相邻样本值得大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。其中判断的依据是距离函数的计算。
这些距离函数可以是欧几里得,曼哈顿,闵可夫斯基或汉明距离。前三个函数用于连续函数,Hamming用于分类变量。如果K = 1,那么这个情况就被简单地分配给它最近的邻居的类别。有时候,在执行KNN建模时选择K是一个巨大的挑战。
KNN可以很容易地映射到我们的真实生活中。如果你想了解一个你不了解的人,你可能会想知道他们的密友和他们进入的圈子,以获得他们的信息!
选择KNN之前需要考虑的事项是:
KNN在计算资源上是昂贵的。
变量应该被标准化,否则较高范围的变量可能会偏差。
在进行KNN之前更多地处理预处理阶段,如异常值/噪音消除。
Python代码:
#Import Library
from sklearn.neighbors import KNeighborsClassifier
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create KNeighbors classifier object model
KNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
R代码:
library(knn)
x <- cbind(x_train,y_train)
# Fitting model
fit <-knn(y_train ~ ., data = x,k=5)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号