博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bobo老师机器学习笔记-数据归一化
阅读量:4170 次
发布时间:2019-05-26

本文共 2236 字,大约阅读时间需要 7 分钟。

 

实现算法:

def normalizate_max_min(X):    """    利用最大和最小化方式进行归一化,过一化的数据集中在【0, 1】    :param X:    :return:    """    np.asarray(X, dtype=float)    if len(X.shape) == 1:        normalizate_array = ( X - np.min(X) ) / (np.max(X) - np.min(X))    else:        normalizate_array = np.zeros(X.shape)        for column in range(X.shape[1]):            normalizate_array[:, column] = (X[:, column] - np.min(X[:, column])) / (np.max(X[:, column] - np.min(X[:, column])))    return normalizate_arraydef standardization(X):    """    利用z-scores实现,标准化后的数据大概在【-1.5到1.5】,数据的平均数为0,方差为1    :param X: 可以是矩阵    :return:    """    np.asarray(X, dtype=float)    if len(X.shape) == 1:        return (X - np.mean(X)) / np.std(X)    else:        dt = np.zeros(X.shape)        for i in range(X.shape[1]):            dt[:, i] = (X[:,i] - np.mean(X)) / np.std(X[:, ])        return dt
Y = np.random.randint(1, 10, (20, 5))    nml_data = normalizate_max_min(Y)    std_data = standardization(Y)    plt.scatter(Y[:, 0], Y[:, 1], color='green', label='Original Data')    plt.scatter(std_data[:, 0], std_data[:, 1], color='red', label="Max-Min normalization")    plt.scatter(nml_data[:, 0], nml_data[:, 1], color='blue', marker='+', label="Standardazation")    plt.legend()    plt.show()

把测试数据进行图形展示:

Sklearn中实现可以详细可以看下面链接:

主要有一个模块交preprocessing,里面有实现各种scaler。 

比如下面两个例子:

from sklearn.preprocessing import MinMaxScaler, StandardScaler, scale    max_min_scaler = MinMaxScaler()    x_train_data = max_min_scaler.fit_transform(Y)    print(x_train_data)    standard_scaler =  StandardScaler()    x_train_data = standard_scaler.fit_transform(Y)    print(x_train_data)

用KNN算法测试:

from sklearn.model_selection import train_test_splitfrom sklearn.datasets import load_irisfrom sklearn.preprocessing import StandardScalerfrom sklearn.neighbors import KNeighborsClassifieriris = load_iris()X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)standardscaler = StandardScaler()standardscaler.fit(X_train)X_train_stanard = standardscaler.transform(X_train)X_test_standard = standardscaler.transform(X_test)knn_clf = KNeighborsClassifier(n_neighbors=3)knn_clf.fit(X_train_stanard, y_train)knn_clf.predict(X_test_standard)print(knn_clf.score(X_test_standard, y_test))

 

你可能感兴趣的文章
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
java多线程中的join方法详解
查看>>
idea添加gradle模块报错The project is already registered
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 拖放
查看>>
HTML5学习之——HTML 5 Canvas vs. SVG
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 Web Workers
查看>>
HTML5学习之——HTML 5 Canvas
查看>>
HTML5学习之——HTML5 内联 SVG
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 形状学习之——SVG圆形
查看>>
SVG 滤镜学习之——SVG 滤镜
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
让代码变得更优雅-Lombok
查看>>