机器学习学习小结(3)

1. scikit-learn环境

在Anaconda常用的命令(在Anaconda Prompt中键入):https://www.jianshu.com/p/169403f7e40c

若在window命令窗口中直接输入conda list会提示不是内部或外部命令:

https://blog.csdn.net/idlethetimewithu/article/details/78913418

scikit-learn中文文档:http://sklearn.apachecn.org/cn/0.19.0/。建立在Numpy,Scipy和Matplotlib(事先需要安装)。

2. Anaconda和Pycharm编写程序

数据集:https://archive.ics.uci.edu/ml/datasets/Individual+household+electric+power+consumption#

里面有一项是:

Missing Values?

Yes

下面是数据收集,数据处理阶段的代码。在Pycharm中运行。

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
import time

# 解决显示中文字符的问题
mpl.rcParams['font.family'] ='sans-serif'
mpl.rcParams['font.sans-serif'] ='SimHei'
mpl.rcParams['axes.unicode_minus']=False

#下面进入机器学习的流程
#下面是数据收集阶段
path1='data.txt' #数据集在当前工程下的路径和名称
df=pd.read_csv(path1, sep=';', low_memory=False)  #读取数据,以;为分隔符,low_memory表示数据的类型是一致时可以提升运行速度。
# print(type(df))#类型是DataFrame对象,有行和列
# print(df.index)#行索引
# print(df.columns)#列索引
# print(df.head(3))#看前面的三行数据
# print(df.info( ))#看数据的类型,都是对象

#下面是针对于异常数据的处理
new_df=df.replace('?', np.nan)#将?替换为np.nan
datas=new_df.dropna(axis=0, how='any')#任一行有np.nan时就把这一行给删掉
# print(datas.index)
# print(datas.columns)
# print(datas.describe().T)#有9个特征,有object类型的可以显示。

Y=datas['Global_active_power'] #取出Global_active_power这一列的数据,即功率。变为Series Series是由一组数据及与之相关的数据索引组成。即1 5.374,3 5.388。
# print(type(Y))
# print(Y.head(4))

def data_format(dt):
    #dt是Series [Date] [Time],如[16/12/2006] [17:24:00]
    t=time.strptime(' '.join(dt), '%d/%m/%Y %H:%M:%S')#把dt分割,以空格分开由join连接起来。
    return(t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec)

X=datas.iloc[:, 0:2] #取出第1和2列数据
X=X.apply(lambda x: pd.Series(data_format(x)), axis=1)#按照行来进行处理
# print(X.head(4))
# print(type(X))

猜你喜欢

转载自blog.csdn.net/qq_33335553/article/details/81612448