【随机梯度下降】理解与使用
发布时间:2020-12-14 04:44:28 所属栏目:百科 来源:网络整理
导读:import numpy as np pandas as pd matplotlib.pyplot as plt % matplotlib inline from sklearn.linear_model import LinearRegression data = pd.read_csv( ' ./training data.txt ' )data.head( 5) # 数据映射 for col in data.columns[0:1]: 遍历所有类名
import numpy as np
pandas as pd
matplotlib.pyplot as plt
%matplotlib inline
from sklearn.linear_model import LinearRegression
data = pd.read_csv('./training data.txt')
data.head(5)
# 数据映射
for col in data.columns[0:1]: 遍历所有类名
# print(col)
u = data[col].unique() 得出每个分类下面的种类名称
def convert(x): 将上面得出的u 进行索引映射
return np.argwhere(u == x)[0,0] 将上面得出的u 进行索引映射
data[col] = data[col].map(convert) 将上面得出的u 进行索引映射
data.head(5)
数据分类 data.iloc[[行],[列]
X = data.iloc[:,[1,2]]
X.head()
print(type(X))
X.head()
数据分类
y = data[Gender]
(type(y))
y.head()
切分训练集跟测试集
from sklearn.model_selection train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2) 切分
print("训练集大小",X_train.shape,y_train.shape)
测试集大小",X_test.shape,y_test.shape)
2: 梯度下降
LinearRegression
from pylab mpl
mpl.rcParams[font.sans-serif'] = [FangSong'] 指定默认字体
mpl.rcParams[axes.unicode_minus'] = False 解决保存图像是负号'-'显示为方块的问题
n_iter代表浏览多少次,默认是5
sgd_reg = SGDRegressor(n_iter=100) 梯度下降对象实例
sgd_reg.fit(X_train_std,y_train) 归一化值X训练集 与 y训练集 进行计算训练
res = sgd_reg.score(X_test_std,y_test) 比较y预测值跟训练之的对比值
随机梯度下降预测准确率为: 预测值
y_test_std
梯度下降预测集图 y_data = np.array(y_test_std) x_data = np.arange(1,len(y_test)+1) z=np.arange(1,1)">) m=np.array([0.5]*len(y_test)) plt.plot(z,m,label=分割线red) plt.xlabel(人数) plt.ylabel(预测性别) plt.title(大于0.5的是男性,小于0.5的是女性) plt.scatter(x_data,y_data) ? ? ?
? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |