当前位置:   article > 正文

机器学习--使用三种模型对数据进行分类并预测_数模分类并对分类进行预测

数模分类并对分类进行预测

三种模型

基本算法流程

加载数据并预处理–创建分类器–训练分类器–在测试集上得到预测结果–计算准确率和召回率

需要导入的模块

import numpy
import pandas
from sklearn.metrics import classification_report#导入预测结果评估模块
from sklearn.model_selection import train_test_split,cross_val_score#导入自动生成训练集和测试集的模块
  • 1
  • 2
  • 3
  • 4

数据导入和处理与数据准备

f = 'filepath'
data = pandas.read_csv(f+'data_train.txt',delimiter=' ',header=None)
X = data[list(range(10))]
y = data[10] #10折交叉验\
data_train = data.sample(frac=0.9)
data_test = data.iloc[list(set(data.index)-set(data_train.index))]
y_train = data_train[10]
x_train = data_train[list(range(10))]
y_test = data_test[10]
x_test = data_test[list(range(10))]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

k近邻分类器(KNN)

 通过计算带分类的数据点,与已有训练集的中的所有数据点的距离,取最小的前K个点,根据‘’少数服从多数的原则‘’进行划分。
  • 1

基本方法如下`。

from sklearn.neighbors import  KNeighborsClassifier #导入K近邻分类器
  • 1

KNN = KNeighborsClassifier().fit(x_train, y_train)  # 使用KNN算法进行训练并生成预处理结果
test = pd.read_csv(f+'data_test.txt',delimiter=' ',header=None)
answer_knn = KNN.predict(test)
print('\n\nThe classification report for knn:')
np.savetxt('filepath+txtname.txt',answer_knn,fmt='%d',newline='\r\n'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

决策树

 一种树状结构的分类器,通过属性决定分类点的最终类别,通常根据特征的信息增益或其他指标,构建一颗决策树,分类时对节点进行依此判断,即可得到结果。
  • 1

展示:
首先导入所需要的分类器

from sklearn.metrics import classification_report
from sklearn.tree import DecisionTreeClassifier #使用import语句导入决策树分类器
  • 1
  • 2

处理数据进行训练并预测

DTC = DecisionTreeClassifier(criterion='entropy').fit(x_train,y_train)
ans_DTC = DTC.predict(x_test)
print(classification_report(y_test,ans_DTC)) #采用全量数据训练模型并将预测结果输出
DTC = DecisionTreeClassifier(criterion='entropy').fit(X,y)
test = pd.read_csv(f+'data_test.txt',delimiter=' ',header=None)
ans = DTC.predict(test)
np.savetxt('filepath+txtname.txt',ans,fmt='%d',newline='\r\n')#产生的文件存放在打他文件夹中
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

朴素贝叶斯

   以贝叶斯定理为基础的多分类的分类器,对于给定数据,首先基于特征的条件独立假设性假设,学习输入输出的联合概率分布,基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y
  • 1

展示:
导入高斯分类器

from sklearn.naive_bayes import GaussianNB #高斯朴素贝叶斯函数
  • 1

对数据进行训练

BYS = GaussianNB().fit(x_train, y_train)    #使用贝叶斯算法进行训练
test = pd.read_csv(f+'data_test.txt',delimiter=' ',header=None)
answer_BYS = BYS.predict(test)
#对分类结果从 精确率precision 召回率recall f1值fl-score和支持度support四个维度进行衡量
print('\n\nThe classification report for Bayes:')
np.savetxt('filepath+txtname.txt',answer_BYS,fmt='%d',newline='\r\n')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/568587
推荐阅读
相关标签
  

闽ICP备14008679号