【Python】数据挖掘与机器学习(一)

这篇具有很好参考价值的文章主要介绍了【Python】数据挖掘与机器学习(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Python】数据挖掘与机器学习(一)

大家好 我是寸铁👊
总结了一篇【Python】数据挖掘与机器学习(一)sparkles:
喜欢的小伙伴可以点点关注 💝


【实验1】预测鲍鱼年龄

问题描述

请从一份数据中预测鲍鱼的年龄,数据集在abalone.cvs中,数据集一共有4177 个样本,每个样本有9个特征。其中rings为鲍鱼环数,鲍鱼每一年长一环,类似树轮,是预测
变量,sex属性已经经过处理,M=1表示雄性、F=-1表示雌性、I=0表示幼体。 有9列数据,分别是:

【Python】数据挖掘与机器学习(一),Python,python,数据挖掘,机器学习,实验

【Python】数据挖掘与机器学习(一),Python,python,数据挖掘,机器学习,实验


要求

(1)给出回归模型,给出线性回归模型的回归系数,以及
(2)需要分训练数据与测试数据,采用训练数据学习,给出R2,采用测试数据计算MSE.


代码

import sklearn
import tensorflow as tf
import numpy as np
import pandas
import sklearn.model_selection as ms
import matplotlib.pyplot as plt


def main():
    df = pandas.read_csv('abalone.csv')
    df = df.values

    y = df[:, [-1]].astype('float32')  # 提取第9 列
    x = df[:, 1:8].astype('float32')  # 提取1-8 列
    sex = df[:, 0].astype('float32')  # 取出第0 列,后续要转换成2 个哑元
    male = sex == 1
    female = sex == -1
    oneMa = np.zeros((len(sex), 1), dtype='float32')  # 雄性
    oneFe = np.zeros((len(sex), 1), dtype='float32')  # 雌性
    oneMa[male] = 1
    oneFe[female] = 1
    ones = np.ones((len(x), 1), dtype='float32')  # 全是 1 的向量
    x = np.hstack((ones, oneMa, oneFe, x))  # 凑成一个 X 大矩阵
    print(x.shape)
    rows, cols = x.shape
    weight = tf.Variable(tf.random.normal([cols, 1]), name='weight')

    # 生成一个 包含 bias 的 weight,对应 x 的列数
    def loss_fn(X, y):
        y_ = tf.matmul(X, weight)
        assert (y.shape == y_.shape)  # 确认维数一致,这一步很容易出错
        return tf.reduce_mean(tf.square(y_ - y)) / 2

    x_train, x_test, y_train, y_test = ms.train_test_split(x, y, test_size=0.3, random_state=32)
    print(x_train.shape)
    print(x_test.shape)
    print(y_train.shape)
    print(y_test.shape)

    print(weight)

    yy_ = tf.matmul(x_train, weight)
    err = sklearn.metrics.mean_squared_error(y_train, yy_)
    print(f'训练集 MSE: {err}')
    y_ = tf.matmul(x_test, weight)
    err = sklearn.metrics.mean_squared_error(y_test, y_)
    print(f'测试集 MSE: {err}')  # 测试集的 MSE
    R2 = sklearn.metrics.r2_score(y_train, yy_)
    print(f'R2 = {R2}')

    plt.show()

【实验2】成年男性的听力实验

数据集hearing_test.csv 是对 5000 名参与者进行了一项实验,以研究年龄和身体健康对听力损失的影响,尤其是听高音的能力。此数据显示了研究结果对参与者进行了身体能力的评估和评分,然后必须进行音频测试(通过/不通过),以评估他们听到高频的能力。
特征:1.年龄age;2. 健康得分physical_score
标签:1通过/0不通过


要求

(1)采用以下方法读取数据,并给出可视化的显示效果

import seaborn as sns        
import pandas as pd 
(绘图包, pip install seaborn) 
import matplotlib.pyplot as plt 
df = pd.read_csv('hearing_test.csv') 
sns.scatterplot(x='age',y='physical_score',data=df,hue='test_result') 
sns.pairplot(df,hue='test_result') 
plt.show()              
由于show默认是阻塞,看完图后,要把它放在代码最后面 

(2)采用以下方法得到数据

df = df.values 
x = df[:, [0, 1]]      
头两列对应age与physical_score - 3 - 
y = df[:, 2]            
 第三列对应是否通过 

(3)把数据拆分为训练集与测试集,最后采用测试数据来验证模型

from sklearn.model_selection import train_test_split 
x_train, x_test, y_train, y_test = train_test_split(x, y,  
 test_size=0.4, random_state=2022) 

(4)给出Logistic回归分类方法,给出二分类模型的权重,给出测试数据的散点图;
(5)模型性能评估:给出训练集与测试集的准确率 Accuracy、精确度 Precision 和召
回率Recall、F1score。
(6)选做:给出两类数据的分割直线。


代码

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from tensorflow.python.ops.confusion_matrix import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score

df = pd.read_csv('hearing_test.csv')
testA = df[df["test_result"] == 0].values
testB = df[df["test_result"] == 1].values
sns.scatterplot(x='age', y='physical_score', data=df, hue='test_result')
sns.pairplot(df, hue='test_result')
df = df.values
x = df[:, [0, 1]]  # 头两列对应 age 与 physical_score
y = df[:, 2]  # 第三列对应是否通过
x_train, x_test, y_train, y_test = train_test_split(x, y,
                                                    test_size=0.4, random_state=2022)
model = LogisticRegression(fit_intercept=True).fit(x_train, y_train)
weight = model.coef_
bias = model.intercept_
print('权重:', weight, bias)
print('训练集准确率:', model.score(x_train, y_train))
print('测试集准确率:', model.score(x_test, y_test))
y_pred = model.predict(x_test)
print('混淆矩阵:\n', confusion_matrix(y_test, y_pred))

print('accuracy:', accuracy_score(y_test, y_pred))
print('precision:', precision_score(y_test, y_pred))
print('recall:', recall_score(y_test, y_pred))
print('f1 score:', f1_score(y_test, y_pred))
x1_boundary, x2_boundary = [], []

plt.figure()
plt.scatter(x1_boundary, x2_boundary, c='b', s=10)
plt.scatter(testA[:, 0], testA[:, 1], c='r', s=1)
plt.scatter(testB[:, 0], testB[:, 1], c='g', s=1)
plt.show()



看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕

往期好文💕

保姆级教程

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go-Zero】手把手带你在goland中创建api文件并设置高亮


报错解决

【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案

【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案

【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案

【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案


Go面试向

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式文章来源地址https://www.toymoban.com/news/detail-848648.html

到了这里,关于【Python】数据挖掘与机器学习(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HNU-数据挖掘-实验3-图深度学习

    计科210X 甘晴void 202108010XXX 深度学习(Deep Learning, DL),由Hinton等人于2006年提出,是机器学习(MachineLearning, ML)的一个新领域。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器

    2024年01月22日
    浏览(52)
  • 数据挖掘与机器学习:Apripori算法

    目录 第一关:候选生成  任务描述: 相关知识: 一、Apripori算法候选生成: 二、Apripori算法候选生成代码实现: 编程要求: 测试说明: 第二关:候选剪枝 任务描述: 相关知识: Apripori算法候选剪枝: Apripori算法候选剪枝代码实现: 编程要求: 测试说明: 第三关:基于遍

    2024年02月07日
    浏览(77)
  • ElasticSearch的数据挖掘与机器学习

    ElasticSearch是一个开源的搜索和分析引擎,它基于Lucene库构建,具有高性能、易用性和扩展性。ElasticSearch可以用于实时搜索、数据分析和机器学习等应用场景。本文将涵盖ElasticSearch的数据挖掘与机器学习方面的核心概念、算法原理、最佳实践以及实际应用场景。 在ElasticSear

    2024年02月22日
    浏览(57)
  • 机器学习——数据仓库与数据挖掘——期末复习(简答题)

    1 、试述真正例率(TPR)、假正例率(FPR)与查准率(P)、查全率(R)之间的联系。 查全率: 真实正例被预测为正例的比例 真正例率: 真实正例被预测为正例的比例 查全率与真正例率是相等的。 查准率:预测为正例的实例中真实正例的比例 假正例率: 真实反例被预测为正例的

    2024年02月10日
    浏览(63)
  • 机器学习和数据挖掘01- lasso regularization

    Lasso正则化是一种线性回归中的正则化技术,旨在减少模型的复杂性并防止过拟合。Lasso(Least Absolute Shrinkage and Selection Operator)通过在损失函数中添加正则项,促使模型的系数变得稀疏,即某些系数会被压缩到零,从而实现特征选择。 在Lasso正则化中,我们引入了一个惩罚项

    2024年02月09日
    浏览(51)
  • 机器学习算法在数据挖掘中的应用

    在数据挖掘的实践中,各种机器学习算法都扮演着重要的角色,它们能够从数据中学习规律和模式,并用于预测、分类、聚类等任务。以下是几种常见的机器学习算法以及它们在数据挖掘任务中的应用场景和优缺点。 1. 决策树(Decision Trees):    - 应用场景:决策树广泛应

    2024年03月17日
    浏览(54)
  • 机器学习——数据仓库与数据挖掘复习(选择题、判断题)

    1. 以下不是分类问题的是(  B )。 A. 用户流失模型 B. 身高和体重关系 C. 信用评分 D. 营销响应 2. 对于回归分析,下列说法错误的是( D ) A. 在回归分析中,变量间的关系若是非确定关系,那么因变量不能由自变量唯一确定 B. 线性相关系数可以是正的,也可以是负的 C. 回归

    2024年02月06日
    浏览(59)
  • 机器学习和数据挖掘04-PowerTransformer与 MinMaxScaler

    PowerTransformer 是用于对数据进行幂变换(也称为Box-Cox变换)的预处理工具。幂变换可以使数据更接近正态分布,这有助于某些机器学习算法的性能提升。它支持两种常用的幂变换:Yeo-Johnson变换和Box-Cox变换。 MinMaxScaler 是用于将数据进行最小-最大缩放的预处理工具。它将数据

    2024年02月10日
    浏览(54)
  • 机器学习和数据挖掘03-模型性能评估指标

    概念:模型正确预测的样本数量与总样本数量的比例。 公式:Accuracy = (TP + TN) / (TP + TN + FP + FN) TP (True Positives):正确预测为正例的样本数。即模型正确地将正例判定为正例。 TN (True Negatives):正确预测为负例的样本数。即模型正确地将负例判定为负例。 FP (False Positives):错误

    2024年02月10日
    浏览(181)
  • 大数据和智能数据应用架构系列教程之:大数据挖掘与机器学习

    作者:禅与计算机程序设计艺术 随着互联网的普及、移动互联网的爆炸性增长以及电子商务的兴起,传统的基于数据库的数据分析已不能满足当前信息社会对海量数据的处理需求。如何有效地进行大数据分析已经成为众多行业面临的共同难题。而数据挖掘和机器学习(Machi

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包