将数据导入机器学习并将其拆分为相关特征和独立特征
介绍
从不同来源导入数据是数据科学和机器学习的基础。丰富的高质量数据不仅可以省去许多预处理步骤,还可以决定模型成功预测合理结果的可能性。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 中还有许多其他复杂的方法可以帮助用户将来自不同来源的数据导入其数据框。一旦您将数据导入数据框,就可以将其用于各种分析。我们还了解了如何将数据分为因变量和自变量。在下一个指南中,我们将了解如何在将数据呈现给机器学习模型之前进行更多预处理步骤。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~