将数据导入机器学习并将其拆分为相关特征和独立特征

发布日期:2026-07-12 03:46:04   来源 : 杭州电子商务研究院    浏览量 :13
杭州电子商务研究院 发布日期:2026-07-12 03:46:04  
13

介绍

从不同来源导入数据是数据科学和机器学习的基础。丰富的高质量数据不仅可以省去许多预处理步骤,还可以决定模型成功预测合理结果的可能性。Python Panda 库是数据科学家处理表格或矩阵形式数据时的主力。Panda 是在 NumPy 之上编写的,并提供了额外的抽象级别。通过隐藏复杂的实现细节,这可以帮助用户更加专注于解决问题陈述。它以 csv、txt 或 sql 文件的形式接收输入,并将其转换为数据框对象,然后可以进行拼接和分析。

从各种来源导入数据

在本指南中,我们将使用 house_data.csv;其内容如下所示。除非明确说明,否则文件数据将保留在本指南的整个过程中。

读取household_data.csv

      import pandas as pd
df = pd.read_csv('household_data.csv')
print(df)
    

输出:

      Item_Category	Gender	Age	Salary	Purchased
0  Fitness	Male	20	30000	Yes
1  Fitness	Female	50	70000	No
2  Food		Male	35	50000	Yes
3  Kitchen	Male	22	40000	No
4  Kitchen	Female	30	35000	Yes
    

读取 Excel 文件

      import pandas as pd
df = pd.read_excel('household_data.xlsx', sheetname='household_data')
print(df)
    

输出:

      Item_Category	Gender	Age	Salary	Purchased
0  Fitness	Male	20	30000	Yes
1  Fitness	Female	50	70000	No
2  Food		Male	35	50000	Yes
3  Kitchen	Male	22	40000	No
4  Kitchen	Female	30	35000	Yes
    

读取 SQL 文件并将其内容放入 Dataframe

我们将了解如何将 select 语句返回的内容读取到数据框中。下面的代码片段适用于 Oracle,但对于其他数据库,其思路仍然相同。只有连接详细信息应该改变。

      import cx_Oracle
import pandas as pd 
dsn_tns = cx_Oracle.makedsn('server', 'port', 'SID')
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)
cursor = conn.cursor()
df = pd.read_sql_query("select * from household_data where Item_Category = 'Food'",conn)
print(df)
    

输出:

      Item_Category	Gender	Age	Salary	Purchased
0  Food		Male	35	50000	Yes
    

使用数据框分割、拼接和分析数据

Panda 提供了各种内置函数,在处理数据集时非常有用。

获取列的最小值、最大值和平均值

      print(df["Salary"].min())
print(df["Salary"].max())
print(df["Salary"].mean())
    

输出:

      30000
70000
45000.0
    

获取列计数

计数:当用户想要获取每列的元素数量时,此方法很有用。如果任何值为空,则将其从计数中消除。假设如果其中一行的 purchase 值留空,则输出如下。

      print(df.count(0))
    

输出:

      Item_Category    5
Gender           5
Age              5
Salary           5
Purchased        4
    

数据框的形状和大小

形状用于获取数据框的尺寸。

      print(df.shape)
    

输出:

      (5, 5)
    

Size 用于获取数据框中的元素数量。

      print(df.size)
    

输出:

      25
    

因变量和自变量

参见下面的公式:

      y = 10a + 2b - 4.3c
    

它表明 y 的值取决于 a、b 和 c 的值。因此,y 被称为因变量或特征,而 a、b 和 c 是独立变量或特征。任何预测数学模型都倾向于将观测值(数据)划分为因变量/独立特征,以确定因果关系。应该注意的是,因变量和自变量之间的关系不必是线性的,可以是多项式的。在进行实验时,通常的做法是改变一个自变量,同时保持其他变量不变,以观察因变量的变化。

将数据集拆分为独立特征和依赖特征

在机器学习中,理解因变量和自变量的概念很重要。在上面的数据集中,如果仔细观察,前四列(商品类别、性别、年龄、薪水)决定了第五列(即最后一列)的结果(购买)。直观地说,这意味着购买特定类别(健身用品、食品、厨房用品)产品的决定取决于个人的性别(男、女)、年龄和薪水。因此,我们可以说购买是因变量,其值由其他四个变量决定。

考虑到这一点,我们需要将数据集拆分为独立变量矩阵和向量或因变量。从数学上讲,向量定义为只有一列的矩阵。

将数据集拆分为独立的特征矩阵:

      X = df.iloc[:, :-1].values
print(X)
    

输出:

      ['Fitness' 'Male' 20 30000]
['Fitness' 'Female' 50 70000]
['Food' 'Male' 35 50000]
['Kitchen' 'Male' 22 40000]
['Kitchen' 'Female' 30 35000]
    

提取数据集以获取依赖向量

      Y = df.iloc[:, -1].values
print(Y)
    

输出:

      'Yes'
    

结论

Python Pandas 中还有许多其他复杂的方法可以帮助用户将来自不同来源的数据导入其数据框。一旦您将数据导入数据框,就可以将其用于各种分析。我们还了解了如何将数据分为因变量和自变量。在下一个指南中,我们将了解如何在将数据呈现给机器学习模型之前进行更多预处理步骤。

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据