机器学习实验一:sklearn介绍与安装

  • 实验目的

1.、熟悉sklearn库。

2、熟练Numpy 、Scipy、matplotlib、sklearn库

3、熟练使用sklearn库。

  • 实验内容与要求

1、从外部数据集加载

2、对数据集每列进行统计分析 (均值、方差、直方图)

3、对数据集每列进行Z分数标准化并保存

  • 实验程序与结果

实验程序如下:

# 导入所需的库
import pandas as pd  # 数据处理
import numpy as np  # 数学运算
import matplotlib.pyplot as plt  # 绘图
from scipy.stats import zscore  # 计算Z分数

# 加载数据文件
data = pd.read_csv('prices.txt', header=None, names=['Price1', 'Price2'])

# 数据分析
# 计算第一列的均值和方差
mean_price1 = data['Price1'].mean()
variance_price1 = data['Price1'].var()
# 计算第二列的均值和方差
mean_price2 = data['Price2'].mean()
variance_price2 = data['Price2'].var()
print(f"Price1 = {data['Price1']}")
print(f"Price2 = {data['Price2']}")
# 打印均值和方差
print(f"第一列Price1的均值为:{mean_price1}, 方差为:{variance_price1}")
print(f"第二列Price2的均值为:{mean_price2}, 方差为:{variance_price2}")

# 绘制直方图
plt.figure(figsize=(8, 4))  # 设置图形大小

# 绘制第一列的直方图
plt.subplot(1, 2, 1)
plt.hist(data['Price1'], bins=20, color='yellow', edgecolor='black')  # 绘制直方图
plt.title('Histogram of Price1')  # 设置标题
plt.xlabel('Price1')  # x轴
plt.ylabel('Frequency')  # y轴

# 绘制第二列的直方图
plt.subplot(1, 2, 2)  # 选择第2个位置
plt.hist(data['Price2'], bins=20, color='green', edgecolor='black')  # 绘制直方图
plt.title('Histogram of Price2')  # 设置标题
plt.xlabel('Price2')  # x轴
plt.ylabel('Frequency')  # y轴

# 显示直方图
plt.tight_layout()  # 调整子图间距
plt.show()  # 显示图形


# Z分数标准化
data_normalized = data.apply(zscore)  # 对数据应用Z分数标准化

# 保存标准化后的数据到新文件
data_normalized.to_csv('prices_normalized.txt', index=False, header=False)  # 保存到文件

# 打印成功信息
print("数据分析完成。标准化后的数据已保存到prices_normalized.txt。")
1.第一列Price1的均值为:2340.8636363636365, 方差为:1089649.8414376322
2.第二列Price2的均值为:391.29545454545456, 方差为:30081.003699788587
3.数据分析完成。标准化后的数据已保存到prices_normalized.txt。

prices_normalized.txt文件:

四、实验结果分析

实验过程中,首先从外部数据集prices.txt中加载数据数据集包含两列数值使用pandas库读取数据后,计算每列数据的均值和方差:

第一列(Price1)均值:2340.86

第一列(Price1)方差:1089649.84

第二列(Price2)均值:391.30

第二列(Price2)方差:30081.00

接着,使用matplotlib库绘制数据直方图,直方图的bins参数设置为20,分成了20个等宽的区间,清晰地看到数据在各个区间的频率分布。

最后,使用scipy库的zscore函数对数据进行了Z分数标准化处理,将数据转换为均值为0、标准差为1的分布标准化后的数据被保存到了prices_normalized.txt文件中

五、实验问题解答与体会

通过本次实验,我深入了解了sklearn库及其配套的科学计算工具,如NumpyScipymatplotlib。实验中,我从外部数据集中加载数据,对数据进行了详细的统计分析,使用matplotlib库绘制了数据的直方图,直观地展示了数据的分布情况并通过Z分数标准化处理数据,以便于后续的数据分析和模型训练。这个过程不仅锻炼了我的编程技能,也加深了我对数据预处理重要性的认识。

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值