10、scikit-learn机器学习框架的安装与环境搭建_笔记
- # 线性回归的类
- from sklearn.linear_model import LinearRegression
- # 原始数据= 训练数据 + 测试数据 数据划分的类
- from sklearn.model_selection import train_test_split
- # 数据标准化
- from sklearn.preprocessing import StandardScaler
- import numpy as np
- import pandas as pd
- import matplotlib as mpl
- import matplotlib.pyplot as plt
- from pandas import DataFrame
- import time
- ## 设置字符集,防止中文乱码
- mpl.rcParams['font.family'] = 'sans-serif'
- mpl.rcParams['font.sans-serif'] = 'SimHei'
- mpl.rcParams['axes.unicode_minus'] = False
- # 加载数据
- # 日期、时间、有功功率、无功功率、电压、电流、厨房用电功率、洗衣服用电功率、热水器用电功率
- path1 = 'datas/household_power_consumption_1000.txt'
- df = pd.read_csv(path1, sep=';', low_memory=False)
- # 没有混合类型的时候可以通过low_memory=False调用更多内存,加快效率)
- # print(df.head(2))
- # print(df.index)
- print(df.columns)
- # 查看数据结构
- # print(df.info())
- # 异常数据处理(异常数据过滤)
- # 替换非法字符为np.nan
- new_df = df.replace('?', np.nan)
- # 只要有一个数据为空,就进行行删除操作
- datas = new_df.dropna(axis=0, how='any')
- # 观察数据的多种统计指标(只能看数值型的 本来9个的变7个了)
- # print(datas.describe().T)
- # 需求:构建时间和功率之间的映射关系,可以认为:特征属性为时间;目标属性为功率值。
- # 获取x和y变量, 并将时间转换为数值型连续变量
- # 创建一个时间函数格式化字符串
- def date_format(dt):
- # dt显示是一个Series
- # print(dt.index)
- # print(dt)
- t = time.strptime(' '.join(dt), '%d/%m/%Y %H:%M:%S')
- return (t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec)
- X = datas.iloc[:, 0:2]
- # print(X)
- X = X.apply(lambda x: pd.Series(date_format(x)), axis=1)
- Y = datas['Global_active_power']
- print(Y.head(4))
- print(X.head(4))
- print(type(X))
- print(type(Y))
- # 对数据集进行测试集、训练集划分
- # X:特征矩阵(类型一般是DataFrame)
- # Y:特征对应的Label标签或目标属性(类型一般是Series)
复制代码
|