机器学习从入门到创业手记-初识sklearn
之前对刘思聪了解并不多,印象中就是个矮胖子,说话总是牛哄哄的,现在他坐在了我的左边,右边坐着路思,本来路思应该挨着刘思聪的,但他在宿舍里和我说他不喜欢那么张扬的人,要跟我换了座位。
刘思聪:hi,你们在战情室待着有趣么?晚上没事的话,我请你们加上高维一起吃个饭,以后有需要帮助的地方尽管开口。我随声附和着,而路思则在一边上着网,仿佛没有听见。
这时邮件系统提示一封新邮件到达:
Dear All :
欢迎使用爱视达智能科技e-learn系统,从今天开始你们将利用该系统完成接下来的学习任务。
PS:请到公司前台领取耳机。
Thanks
我带上耳机点开了公司的e-learn系统。
PPT页1
随着elearn系统的打开,内容以PPT形式的呈现在了眼前,耳边也响起了悦耳的旁边:PPT页1讲述的是sklearn开发第一步导入数据,其提供两种导入方式,第一种为其内置的各种demo数据集,用以学习或测试用,第二种则采用python的panda库来导入csv格式的数据,panda库可以通过pip install panda下载并安装。
PPT页2
旁白:PPT页2以demo数据为例,导入数据后需要将数据集中的数据分割成训练数据和目标数据,x在这里被赋值为训练数据用于传入模型,而y被设定为目标数据,是每条训练数据对应的正确结果。Sklearn还提供了一种非常方式可以简单的将我们的数据集随机分割为训练集合测试集,并可以通过参数test_size来指定测试集所占的比例,测试集被分割出被用来对生成的模型进行准确率验证。
PPT页3
旁白:PPT页3展示了如何导入sklearn的已有模型并传入训练数据,将模型适配数据集。
PPT页4
旁白:PPT页4讲述的是利用之前适配出的模型,在分割出的测试集上验证模型的准确率,并查看准确率得分,这里可以看到只有67%左右的预测准确率,请参考PPT页5,PPT页6和PPT页7导入岭回归与Lasso回归模型比较一下准确率。
PPT页5
PPT页6
PPT页7
我还没缓过神来,第一阶段的课后练习已经摆在了我的面前,需要提交自己的代码才能继续进行下去。好在这个并不难,只要照猫画虎就可以完成。
安逸的岭回归代码:
from sklearn.datasets import load_boston boston = load_boston() x = boston.data y = boston.target #将数据分为训练数据集与测试数据集 from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test = train_test_split(x,y,random_state=33,test_size=0.25) from sklearn import linear_model #岭回归 lr_ridge = linear_model.Ridge (alpha = .5) lr_ridge.fit(X_train,y_train) y_pred = lr_ridge.predict(X_test) print ('Ridge is',lr_ridge.score(X_test,y_test)) #Lasso回归 lr_lasso = linear_model.Lasso(alpha = 0.1) lr_lasso.fit(X_train,y_train) y_pred = lr_lasso.predict(X_test) print ('Lasso is',lr_lasso.score(X_test,y_test)) |
代码提交后,elearn系统回馈给了代码的输出:
Ridge is 0.6712308301645985 Lasso is 0.6600305025011655 |
旁白:完成第一课时学习总共耗时35分钟,排在所有学员中第八位。下面请继续学习。
PPT页8
PPT页9
PPT页10
安逸的测试代码:
#range(起点,终点,步长) for i in range(0,11,1): lr_ridge = linear_model.Ridge (alpha = float(i/10)) lr_ridge.fit(X_train,y_train) y_pred = lr_ridge.predict(X_test) print("alpha: %f , Loss Value : %.2f" % (float(i/10),np.mean((lr_ridge.predict(X_test) - y_test) ** 2))) print ('Ridge is',lr_ridge.score(X_test,y_test)) |
提交代码后,系统返回了输出:
alpha: 0.000000 , Loss Value : 25.10 Ridge is 0.6763403830998698 alpha: 0.100000 , Loss Value : 25.19 Ridge is 0.6751472577232447 alpha: 0.200000 , Loss Value : 25.28 Ridge is 0.6740377362363645 alpha: 0.300000 , Loss Value : 25.35 Ridge is 0.6730170987607017 alpha: 0.400000 , Loss Value : 25.43 Ridge is 0.6720832538646662 alpha: 0.500000 , Loss Value : 25.49 Ridge is 0.6712308301645985 alpha: 0.600000 , Loss Value : 25.55 Ridge is 0.6704532171917609 alpha: 0.700000 , Loss Value : 25.61 Ridge is 0.6697435803085565 alpha: 0.800000 , Loss Value : 25.66 Ridge is 0.669095350599211 alpha: 0.900000 , Loss Value : 25.70 Ridge is 0.6685024427312771 alpha: 1.000000 , Loss Value : 25.75 Ridge is 0.6679593318533048 |
旁白:通过输出可以看到趋势了么?alpha参数越趋于0时,预测准确率越高,损失函数值越小,alpha趋于1时则准确率下降,损失函数变大。结论是若alpha趋于0时,模型会倾向于在训练集上最小化损失函数,这样可能会发生过拟合,导致在实际应用中效果变差,所以请选择合适apha值。
PPT页11
旁白:matplotlib是著名的python 2D绘图库,可用于python,IPython shell,Jupyter notebook,web应用使用,其包含四个图形UI toolkits,仅需几行代码就可以生成绘图,直方图,功率图,条形图,错误图,散点图等,并可以通过接口函数控制图形大小,线型,字体属性,坐标轴属性等,请运行系统提供的示例。
下载并打开了系统的DemoPlt.py程序
from sklearn.datasets import load_boston boston = load_boston() x = boston.data y = boston.target #导入2D绘图库 import matplotlib.pyplot as plt import numpy as np #使用均方误差来验证结果 from sklearn.metrics import mean_squared_error #将数据分为训练数据集与测试数据集 from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test = train_test_split(x,y,random_state=33,test_size=0.25) #将10的负6次方到10的6次方平分100份 alphas = np.logspace(-6, 6, 100) pred = [] errors = [] from sklearn.linear_model import Ridge clf = Ridge() for a in alphas: clf.set_params(alpha=a) clf.fit(X_train, y_train) errors.append(mean_squared_error(clf.predict(X_test), y_test)) plt.figure(figsize=(20, 6)) ax = plt.gca() ax.plot(alphas, errors) ax.set_xscale('log') plt.xlabel('alpha') plt.ylabel('error') plt.title('alpha & error') plt.axis('tight') plt.show() |
运行效果如图3.2.1,旁边:这里可以看到X轴正则化强度参数,随着X轴数值变化,Y轴均方误差值也跟着变化,X轴值越小均方误差也越小,X轴值越大,Y轴均方误差值也随着增长。
图3.2.1
PPT页12
安逸提交的Lasso代码:
from sklearn.datasets import load_boston boston = load_boston() x = boston.data y = boston.target #导入2D绘图库 import matplotlib.pyplot as plt import numpy as np #使用均方误差来验证结果 from sklearn.metrics import mean_squared_error #将数据分为训练数据集与测试数据集 from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test = train_test_split(x,y,random_state=33,test_size=0.25) #将10的负6次方到10的6次方平分200份 alphas = np.logspace(-6, 6, 200) pred = [] errors = [] from sklearn.linear_model import Lasso clf = Lasso() for a in alphas: clf.set_params(alpha=a) clf.fit(X_train, y_train) errors.append(mean_squared_error(clf.predict(X_test), y_test)) plt.figure(figsize=(20, 6)) ax = plt.gca() ax.plot(alphas, errors) ax.set_xscale('log') plt.xlabel('alpha') plt.ylabel('error') plt.title('alpha & error(Lasso)') plt.axis('tight') plt.show() |
提交代码后系统给出运行结果如图3.2.2:
图3.2.2
旁白:图3.2.1和图3.2.2,比较Ridge和Lasso的曲线区别:
安逸提交的区别:
Ridge由于采用L2正则化方式,不会减少特征量,故alpha值变化时,均方误差一直会变化,而Lasso采用的是L1正则化,其会减少特征量,当达到一定阈值时,所有能被减少的特征量都已经被减掉了,故再变化alpha值不会对均方误差有影响。 |
旁白:今天的sklearn基础培训结束,您的总体评价89分,位于第7名。
我松了一口气,今天的培训还不是很难,基本上没有什么难以理解的理论知识。这时,刘思聪又凑了过来说:哥们,才写完啊,我都玩了半天手游了。我说:恩,我不是这个相关专业的,所以有些慢。刘思聪:没事,以后有问题就请教我就行了,晚上一定给面子啊,一起吃个便饭。
北京的夜晚很美,我以前总是行色匆匆没有来的及欣赏过,今天刘思聪请我们到一家名叫便宜坊的地方吃烤鸭,路思打趣道:思聪,你这么有钱就请我们来这吃是不是图便宜啊。刘思聪:哈哈,便宜坊的便发音是biàn,是北京著名的烤鸭店,已有600多年的历史了,咱们四个人随便吃吃也得近千元的。
整晚的觥筹交错,灯红酒绿,让人觉得有钱真是好啊。让我也对刘思聪嘴里经常说的那个“北京人要局气”有了理解。
机器学习从入门到创业手记-初识sklearn相关推荐
- 机器学习从入门到创业手记-应用与实践
结束了sklearn的培训的同时也迎来了阶段考核,经过这段时间的学习除了发我对机器学习有所入门,另外也发现了高维已经天天和刘思聪出双入对了,但两个人均矢口否认两人的关系,由于刘思聪坐我旁边,我也时常听 ...
- 机器学习从入门到创业手记-1.3 必备的工具与框架
今天的课程主要以自我学习为主,李里发给了每个人一张印有培训内容的表格,要求按照培训内容列表中提到的工具,将其简介都写在工具名称的后面. 李里解释道:作为机器学习的初学者刚进入这个领域时肯定是一头雾水, ...
- 机器学习从入门到创业手记-sklearn基础设计
早上刚坐到座位上,看到刘思聪正在装扮自己的办公桌,桌台上有个他和女孩合影,他大方的递给我看说,告诉我是我这是她女朋友,在国家邮政工作,是他父亲朋友的女儿,我应付到好工作啊,挺稳定,他笑了笑,她家不指望 ...
- 机器学习从入门到创业手记-处理数据的乐趣在于挖掘
在月度Team Building[1]上,我问刘思聪:爱视达智能是怎么发展起来的?David王看着也很年轻,怎么又那么多钱投入公司啊? 刘思聪:哪是他的钱啊,都是他融资来的. 安逸:如何才能融到资呢? ...
- 机器学习从入门到创业手记-1.4 难以理解的数学知识
第二天的李里准时站在了培训用的会议室当中. 李里:昨天我们进度不是很快,培训的内容也比较简单,今天开始我们要进入比较枯燥的数学理论的培训,你们要做好准备,可能最多进入机器学习领域而后又放弃的人都是由于 ...
- 机器学习从入门到创业手记-数据分析实战
昨天下班高维说要和我一起过圣诞节,让我兴奋的一夜都没睡好,只期待今天能早些过完,一定不加班,怀揣着幸福走进了公司,如往常一样打开电脑准备工作但却集中不起精力,满脑子都是如何过好圣诞节的计划,这时座位旁 ...
- 机器学习从入门到创业手记-2.1.1 线性回归与房价还涨么
我还在回味着路思的话,这么干都不能在北京买房,不敢生孩子,这样的北漂有什么意思,还不如回家乡天津去,虽然机会不多,但生活成本里面我减少了租房的费用还可以每天有母亲做的可口饭菜,现在天天的 X老师红烧肉 ...
- 机器学习从入门到创业手记-1.2 机器学习的概念
坐在公司宽敞的会议室里,面前是一杯现煮的咖啡,公司的CEO 站在大的投影屏幕前意气风发,举手投足间透露出成功人士的魅力. "首先欢迎各位加入爱视达智能科技有限公司,我是公司的联合创始人 Da ...
- 机器学习从入门到创业手记-1.理论概念
楔子: 儿时,我们觉得父母不平凡,无所不能:青少年时代,觉得自己不平凡,志得意满:中年时,又觉得孩子不平凡,聪明绝顶.直到年近不惑才能消失这人生三大幻觉. 我的姓安,名字叫安逸,父母给我取这个名字的良 ...
最新文章
- 【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包
- 杀死linux-zombie僵尸进程
- 洛谷 P3376 【模板】网络最大流
- 练习1-2:编写一个 JAVA 程序,实现输出考试成绩的前三名。
- Intelij 添加php注释
- 大量Input还是要靠scanf(洛谷P5082题题解,弃坑Java拥抱C++)
- mysql学习一 常用语句
- jQuery源码高清视频教程
- i5双线程_新老系统多项测试:多线程运算谁更靠谱
- pytorch搭建LSTM神经网络预测电力负荷
- Windows与Linux的UEFI引导修复教程
- SMT32F767通过STM32CUBE HAL库配置QSPI和W25Q256驱动
- go语言 liteIDE 错误: 进程无法启动.
- 环境规划与管理--知识点总结
- iOS - iOS6 越狱及必装源、软件
- 学计算机优盘多少内存够用,u盘建议买多大内存的
- antv/G6和antv/X6
- 产品读书《极简生活法则》
- android 添加 iconv 支持
- 最最喜欢的韩庚……这个资料-----顶了~/(≧▽≦)/~!!!
热门文章
- XYOj2113:找点(区间选点问题)
- 数据杂谈:CIO和CTO的区别(首席信息官首席技术官)
- 旅游防骗攻略[整理]
- 利用Log parse 分析Exchange 性能并产生相应报表!(1)-Agent Log!
- 一个利用html5的图片裁剪功能(已解决ios压扁缩放等bug)
- 为什么计算机集群叫云,为什么叫云计算?
- NVIDIA Jetson AGX Orin的计算能力
- Devcon2 (第二届全球区块链开发者峰会)演讲PPT下载
- page_to_pfn 、virt_to_page、 virt_to_phys、page、页帧pfn、内核虚拟地址、物理内存地址linux内核源码详解
- aix服务器删除文件命令,AIX删除文件系统