函数说明:

1. Binarizer(threshold=0.9) 将数据进行二值化,threshold表示大于0.9的数据为1,小于0.9的数据为0 

对于一些数值型的特征:存在0还有其他的一些数

二值化指的是:将大于0的特征使用1表示,将等于0的特征还是用0表示

对于二值化操作:使用两种方法

第一种方法:

     求出大于等于1的索引值,令这些索引值对应的数值等于1,然后重新构建列

第二种方法:

    使用Binarizer(threshold=0.9) 表示大于0.9的数据使用1表示

    这里传入的参数需要是二维的,因此需要做维度转换

代码:

数据说明:使用的是歌曲的数据:对歌曲听过的次数做二值化操作,听过大于等于1的次数的设置为1,否者设置为0 

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import pandas as pd

plt.style.reload_library()
plt.style.use('classic')
# 设置颜色
mpl.rcParams['figure.facecolor'] = (1, 1, 1, 0)
# 设置图形大小
mpl.rcParams['figure.figsize'] = (6.0, 4.0)
# 设置图形的分辨率
mpl.rcParams['figure.dpi'] = 100

popsong_df = pd.read_csv('datasets/song_views.csv', encoding='utf-8')
# 我们对listen_count听歌的次数进行二值化操作, 听过的次数大于等于1的为1,次数为0的为0
# 第一种方法
# listened = popsong_df['listen_count'].copy()
# listened[listened >= 1] = 1
# popsong_df['listened'] = listened
# print(popsong_df[['listen_count', 'listened']])

# 第二种方法:使用 Binarizer
from sklearn.preprocessing import# threshold表示阈值,大于0.9的为1
bin = Binarizer(threshold=0.9)
popsong_df['listened'] = bin.transform(popsong_df['listen_count'].values.reshape(-1, 1))
print(popsong_df[['listen_count', 'listened']].iloc[:10])

 

posted on 2019-01-25 18:32  python我的最爱  阅读(1374)  评论(0编辑  收藏  举报