数据挖掘(一)

系列文章目录

数据挖掘之初识数据挖掘(一)

文章目录

前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

提示:以下是本篇文章正文内容,下面案例可供参考

一、分类实践任务起点

贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统计知识进行分类的算法。在许多场合,朴素贝叶斯(Naïve Bayes,NB)分类算法可以与决策树和神经网络分类算法相媲美,该算法能运用到大型数据库中,而且方法简单、分类准确率高、速度快。

基本流程

1读数据;
2数据划分;
3训练;
4模型评估;
5预测。

数据挖掘(一)
贝叶斯分类器本质上是同时考虑了先验概率和似然概率的重要性。
原理参考链接:link:贝叶斯分类器

; 代码示例

import sklearn
导入高斯朴素贝叶斯分类器
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd

def knn_test():
    data_url = "/data/workspace/myshixun/step1/iris_train.csv"
    df = pd.read_csv(data_url)
    X = df.iloc[:,1:4]
    y=df.iloc[:,4]
    #将数据分成两部分训练集与测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
    # 使用高斯朴素贝叶斯进行计算
    clf=GaussianNB()
    clf.fit(X_train, y_train)
    # 评估
    y_pred = clf.predict(X_test)
    acc = np.sum(y_test == y_pred) / X_test.shape[0]
    return acc

sklearn之train_test_split()函数各参数含义

在机器学习中,我们通常将原始数据按照比例分割为”测试集”和”训练集”.简单用法如下:

X_train,X_test, y_train, y_test =sklearn.model_selection.train_test_split(train_data,train_target,test_size=0.4, random_state=0,stratify=y_train)

train_data:

所要划分的样本特征集

train_target:

所要划分的样本结果

test_size:

样本占比,如果是整数的话就是样本的数量

random_state:

是随机数的种子。
随机数种子:填1时相当于固定了当前的结果,填0或者其他数则每次运行得到的结果都会不一样

stratify:

为了保持split前类的分布。比如有100个数据,80个属于A类,20个属于B类。如果train_test_split(… test_size=0.25, stratify = y_all), 那么split之后数据如下:
training: 75个数据,其中60个属于A类,15个属于B类。
testing: 25个数据,其中20个属于A类,5个属于B类。
用了stratify参数,training集和testing集的类的比例是 A:B= 4:1,等同于split前的比例(80:20)。通常在这种类分布不平衡的情况下会用到stratify。
将stratify=X就是按照X中的比例分配
将stratify=y就是按照y中的比例分配

二、初识数据之基于直方图柱状图的特征选择

任务:

利用直方图和柱状图进行特征选择。

案例背景:

泰坦尼克号遭遇的灾难震惊世界,如何避免灾难甚至预测灾难呢? 要实现首先要做好泰坦尼克号的损失数据统计,才能为数据分析打下基础。

观察数据特点

数据挖掘(一)
观共有891行、12列。这代表本训练集共有891条数据,每条数据有12类信息。区别于前述鸢尾花数据集,该数据集涉及到的属性字段更多。
目标:预测泰坦尼克号上的乘客是幸存还是遇难,每个乘客对应一个乘客Id,用0表示遇难,用1表示幸存。

代码如下(示例):

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

def test():

    data_url = "/data/workspace/myshixun/step1/train.csv"
    df = pd.read_csv(data_url)
    S=df[df.Survived==1]
    D=df[df.Survived==0]
    #绘制根据S、D的前9列数据绘制直方图
    ########## Begin ##########
    plt.hist(S.iloc[:,9])
    plt.hist(D.iloc[:,9])
    ########## Begin ##########
    plt.savefig('/data/workspace/myshixun/step1/picture2/直方图.png')
    #sex = df.groupby('Sex')['Survived'].sum()
    #绘制柱状图
    sexNew =  df.groupby(['Sex','Survived'])['Survived'].count().unstack()
    ########## Begin ##########
    sexNew.plot(kind='bar')
    ########## End ##########
    plt.savefig('/data/workspace/myshixun/step1/picture2/柱状图.png')
    plt.show()
    img1=mpimg.imread('/data/workspace/myshixun/step1/picture2/直方图.png')
    img2=mpimg.imread('/data/workspace/myshixun/step1/picture2/柱状图.png')

    plt.subplot(121),plt.imshow(img1)
    plt.subplot(122),plt.imshow(img2)
    plt.savefig("/data/workspace/myshixun/step1/picture2/特征选择.png")

结果

数据挖掘(一)
柱状图描述分类变量,直方图描述数值变量。直方图的x轴是一条线,直方图的x轴是分类变量。

Original: https://blog.csdn.net/weixin_49032475/article/details/123845425
Author: weixin_49032475
Title: 数据挖掘(一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/697652/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球