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

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

三种模型

基本算法流程

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

需要导入的模块

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

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

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))]

k近邻分类器(KNN)

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

基本方法如下`。

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

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'

决策树

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

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

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

处理数据进行训练并预测

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')#产生的文件存放在打他文件夹中

朴素贝叶斯

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

展示:
导入高斯分类器

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

对数据进行训练

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')
    原文作者:mlpy
    原文地址: https://blog.csdn.net/weixin_45059938/article/details/106210519
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞