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

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

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


【实验1】预测鲍鱼年龄

问题描述

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

在这里插入图片描述

在这里插入图片描述


要求

(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稳定的有序遍历的方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/521973.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP-SD VFX3释放销售订单发票报错:科目确定错误

VFX3 报错截图: VF03 - 检查发票信息 VKOA - 科目确定配置 核对是否有配置相应科目 以上~~

c++11 标准模板(STL)本地化库 - 平面类别 - (std::ctype) 定义字符分类表(六)

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 定义字符分类表 std::ctype template< class CharT > clas…

五款开放式蓝牙耳机推荐:这些宝藏耳机,你值得拥有!

如果你是长时间佩戴耳机的用户&#xff0c;那不入耳佩戴的开放式耳机可以让你彻底的“解放双耳”&#xff0c;长时间佩戴也不会觉得耳朵闷、耳朵疼&#xff1b;如果你是运动、健身爱好者&#xff0c;那通透、开放听感的开放式耳机可以提高你在运动时的安全性&#xff0c;让你在…

相位导数方差计算-matlab

%% 下面计算 相位导数方差% 假设 phase_map 是你的相位图二维矩阵 % K 是窗口的大小 k 3; % 请使用实际的窗口大小替换% 计算 x 和 y 方向的偏导 [dx, dy] gradient(wrappedPhase); Ksq k^2; % 计算 K^2half_k floor(k / 2);% 初始化结果矩阵 result zeros(size(wrappedPh…

【刷题篇】回溯算法(一)

文章目录 1、汉诺塔2、合并两个有序链表3、反转链表4、两两交换链表中的节点5、Pow(x, n)6、计算布尔二叉树的值 1、汉诺塔 在经典汉诺塔问题中&#xff0c;有 3 根柱子及 N 个不同大小的穿孔圆盘&#xff0c;盘子可以滑入任意一根柱子。一开始&#xff0c;所有盘子自上而下按升…

PyCharm使用指南(个性化设置、开发必备插件、常用快捷键)

&#x1f947;作者简介&#xff1a;CSDN内容合伙人、新星计划第三季Python赛道Top1 &#x1f525;本文已收录于Python系列专栏&#xff1a; 零基础学Python &#x1f4ac;订阅专栏后可私信博主进入Python学习交流群&#xff0c;进群可领取Python视频教程以及Python相关电子书合…

ubuntu20.04.6将虚拟机用户目录映射为磁盘Z

文章目录 linux虚拟机设置为NAT模式安装sshd服务映射目录到windows磁盘安装samba套件修改配置文件smb.conf重启smbd并设置用户名和密码 windows映射遇到的问题1、设置好之后映射不成功2、smbd下载失败3、smbd密码配置问题4、当有改动时候&#xff0c;最好重启一下smbd服务 linu…

阿里云2核4G服务器多少钱?优惠价格30元、165元和199元1年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

代码随想录阅读笔记-二叉树【二叉搜索树的插入】

题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点和要插入树中的值&#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证&#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 注意&#xff0c;可能存在多种有效的插入方式&#xff0c;…

SpringBoot响应式RedisClient配置

大多数场景&#xff0c;默认配置的Redis客户端不满足业务场景&#xff0c;根源在于Redis key、value 序列化反序列化问题。因此&#xff0c;有必要配置自定义的客户端来满足需求。 默认配置源码如下&#xff0c;采用jdk序列化/反序列化方式进行&#xff0c;我们只需要配置相同…

中颖51芯片学习2. IO端口操作

一、SH79F9476 I/O端口介绍 1. 特性 SH79F9476提供了30/26位可编程双向 I/O 端口&#xff1b;端口数据在寄存器Px中&#xff1b;端口控制寄存器PxCRy是控制端口作为输入还是输出&#xff1b;端口作为输入时&#xff0c;每个I/O端口均带有PxPCRy控制的内部上拉电阻。有些I/O引…

软件测试(二)--测试用例

一、什么是用例: 用例就是用户使用案例的简称。以手机用例为例&#xff1a; 1.是否能开机&#xff1a;打开手机按下电源键3秒&#xff0c;看是否能开机。 2.验证内存&#xff1a;打开手机设置查看内存是否为64G. 3.验证屏幕&#xff1a;打开手机在白屏背景下检查屏幕是否有黑点…

【MySQL】数据操作语句(DML)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习计网、mysql和算法 ✈️专栏&#xff1a;MySQL学习 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

LeetCode 1017. 负二进制转换

解题思路 相关代码 class Solution {public String baseNeg2(int n) {if(n0) return "0";String s"";while(n!0)if(Math.abs(n)%20){nn/(-2);ss0;}else{ss1; n (n-1)/(-2);}String t reverse(s);return t;}public String reverse(String s){Str…

大广赛车机主体设计实践指南:必备技能速成攻略解读!

车机主体设计是什么 汽车作为代步工具距今已有 130 多年的历史。目前&#xff0c;在视觉范围内如此关注车载 HMI 的历史也只是近十年的事情&#xff0c;因为在过去&#xff0c;人们最注重的还是汽车技术的发展。但随着以交通安全为主的自动驾驶技术的不断发展&#xff0c;智能…

【nginx】使用nginx部署https协议

一、客户有证书提供 客户有证书的&#xff0c;或者有域名申请了免费证书的&#xff0c;直接根据下面的第5步骤&#xff0c;配置nginx即可。 二、 自己生成证书 1. 安装openssl-Win64 OpenSSL v3.1.1 Light 附下载地址 Win32/Win64 OpenSSL Installer for Windows - Shinin…

网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具&#xff0c;比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理&#xf…

宏集PLC如何为楼宇自动化行业提供空调、供暖与通风的解决方案?

一、应用背景 楼宇自动化行业是通过将先进的技术和系统应用于建筑物中&#xff0c;以提高其运营效率、舒适度和能源利用效率的行业&#xff0c;其目标是使建筑物能够自动监控、调节和控制各种设备和系统&#xff0c;包括照明系统、空调系统、安全系统、通风系统、电力供应系统…

建模实例评点(2)领域类图-食谱

1 00:00:00,290 --> 00:00:04,120 这是之前我们给一个用户 2 00:00:04,130 --> 00:00:05,360 给他出食谱的 3 00:00:05,370 --> 00:00:06,480 这样做的一个 4 00:00:06,650 --> 00:00:08,000 你认为你系统最重要的 5 00:00:08,010 --> 00:00:09,360 一个核心…

计算机网络 实验指导 实验8

三层交换机的访问控制 1.实验拓扑图&#xff1a; 名称接口IP地址网关Switch AF0/1192.168.1.1/24F0/2172.1.1.1/24Switch BF0/1192.168.1.2/24F0/2172.2.2.1/24PC1172.1.1.2/24172.1.1.1PC2172.1.1.3/24172.1.1.1PC3172.2.2.2/24172.2.2.1PC4172.2.2.3/24172.2.2.1 2.实验目的…