用机器学习基本算法分类手机数据-预处理篇

交大软院第一次开机器学习课,实在不知道老师在上什么,我就一边摸索着一边写博客记录一下。

1.获取CSV数据

2.处理CSV

处理csv的方法有很多,可以利用python的CSV库,不过最好使用主流的pandas来操作

pandas预备知识

  • Dataframe : Two-dimensional, size-mutable, potentially heterogeneous tabular data.
  • Series : One-dimensional ndarray with axis labels (including time series).
  • 具体见pandas相关文章

pd.read_csv

# filename指定csv文件名,sep是csv内数据分隔符,skiprows与skipfooter即字面意思
pandas.read_csv(filename,sep=',', usecols=None, skiprows=None, skipfooter=0)
  • 获取行列
# 读取csv
csv_handler = pd.read_csv(path)
# 获取一列数据
csv_handler['battery_power']
# 获取行数据切片
splice_data = csv_handler.loc[100,200]
# 遍历行

pd.to_csv

csv_handler = pd.read_csv(path)
...
###操作csv###
...
# filename指定csv文件名,index代表是否在每行前加上index
csv_handler.to_csv(filename,index=True,encoding="utf_8_sig")

3.用sklearn做预处理

sklearn的preprocessing类可以很方便的对数据做预处理,配合上numpy,可以满足绝大多数预处理的需求。

正则化数据

项目要求将数据正则化到[0,1]中,则MinMaxScaler()可以很方便的完成这个需求

  • 用法示例
from sklearn.preprocessing import MinMaxScaler
# 初始化scaler
scaler = MinMaxScaler()
# 将目标的一维数组转化为可以用作训练的数组
battery_power = np.array(csv_handler['battery_power']).reshape(-1, 1)
# 根据目标数组训练scaler
scaler.fit(battery_power)
# 接收正则化后的数组
csv_handler['battery_power'] = scaler.transform(battery_power)

至此,预处理步骤完成,进入下一步。

猜你喜欢

转载自blog.csdn.net/weixin_44602409/article/details/109319633