更简约的用户账号设计:只需要本人实际姓名、E-mail和手机号码任选其一,无需密码

最近看到DropBox的用户注册功能设计,简单是简单,但是还需要输入密码,设置密码意味着用户的记忆负担。

于是又想到了垃圾的知乎网站,虽说是可以用其他网站的账号登陆,但是登陆后居然还是要输入一大堆的隐私信息来注册,操。

于是想起了微信和免费WiFi:真正简单的用户账号设计需要哪些数据?只需要本人实际姓名、E-mail和手机号码任选其一,无需密码!

当需要绑定登陆设备到手机时,自动通过App提供手机号码,然后网站发送一个验证数字短信,用户使用它登陆就可以了。为避免重复的验证,让会话在1个月内有效就可以了。当然,额外附带一些基于机器学习的可疑登陆识别技术。

E-mail和手机号码任选其一的意思是,不应该同时提供,E-mail和手机号码可以注册2个账号,这其实没什么问题,

需要本人实际姓名的意思是,用户姓名和(E-mail地址 OR 手机号码)联合作为用户数据库的自然主键,用户姓名本身允许有重复。实际上,用自定义的ID号作为主键最大的问题是,一旦别人抢注了好ID,后面的人就只有干瞪眼的份。这台过分了。

更好的设计是,一旦用户完成了注册,他可以自由定义一个ID作为他的Nickname。

使用用户实际姓名还有一个好处,就是潜在的允许社交互动。老实说,我更愿意和一个实际的人交流,而非一个ID号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我们先来回顾一下正则化的概念。 在机器学习中,正则化是一种通过对模型参数施加惩罚来避免过拟合的方法。L1正则化和L2正则化是两种常见的正则化方法。L1正则化会使一些参数变为0,从而实现特征选择的效果;而L2正则化会让参数趋近于0,但不会真正地取到0,从而保留了所有特征。 下面是使用L2正则化重新建立回归模型的代码示例: ```python # 导入需要的库 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 生成样本数据 np.random.seed(0) n_samples, n_features = 200, 50 X = np.random.randn(n_samples, n_features) coef = 10 * np.random.randn(n_features) inds = np.arange(n_features) np.random.shuffle(inds) coef[inds[10:]] = 0 y = np.dot(X, coef) # 将数据集分成训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # 定义模型 ridge = Ridge(alpha=1) # 训练模型 ridge.fit(X_train, y_train) # 预测测试集 y_pred = ridge.predict(X_test) # 计算均方误差 mse = mean_squared_error(y_test, y_pred) print("测试集均方误差为:", mse) ``` 在上述代码中,我们使用了sklearn库中的Ridge函数来实现L2正则化。其中alpha参数表示正则化强度,越大则正则化效果越强。 接下来,我们来看一下使用L1正则化重新建立回归模型的代码示例: ```python # 导入需要的库 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Lasso from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 生成样本数据 np.random.seed(0) n_samples, n_features = 200, 50 X = np.random.randn(n_samples, n_features) coef = 10 * np.random.randn(n_features) inds = np.arange(n_features) np.random.shuffle(inds) coef[inds[10:]] = 0 y = np.dot(X, coef) # 将数据集分成训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # 定义模型 lasso = Lasso(alpha=0.1) # 训练模型 lasso.fit(X_train, y_train) # 预测测试集 y_pred = lasso.predict(X_test) # 计算均方误差 mse = mean_squared_error(y_test, y_pred) print("测试集均方误差为:", mse) ``` 在上述代码中,我们使用了sklearn库中的Lasso函数来实现L1正则化。同样地,alpha参数表示正则化强度,越大则正则化效果越强。 需要注意的是,在实际应用中,我们需要通过交叉验证等方法来选择最优的正则化强度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值