首页 文章 精选 留言 我的

精选列表

搜索[学习],共10000篇文章
优秀的个人博客,低调大师

神经进化是深度学习的未来

过去几年时间里,我们有一个完整的团队致力于人工智能研究和实验。该团队专注于开发新的进化计算方法(EC),包括设计人工神经网络架构、构建商业应用程序,以及使用由自然进化激发的方法来解决具有挑战性的计算问题。这一领域的发展势头非常强劲。我们相信进化计算很可能是人工智能技术的下一个重大课题。 EC与Deep Learning(DL)一样都是几十年前引入的,EC也能够从可用的计算和大数据中得到提升。然而,它解决了一个截然不同的需求:我们都知道DL侧重于建模我们已知的知识,而EC则专注于创建新的知识。从这个意义上讲,它是DL的下个步骤:DL能够在熟悉的类别中识别对象和语音,而EC使我们能够发现全新的对象和行为-最大化特定目标的对象和行为。因此,EC使许多新的应用成为可能:为机器人和虚拟代理设计更有效的行为,创造更有效和更廉价的卫生干预措施,促

优秀的个人博客,低调大师

关于java中的类的学习

设计模式应该牵扯到类的分布排列了,尽管现在我只能这么表达. 下面来自段帅发来的视频课程中的整理: 类与类之间的关系 每天进步一点点 类是java程序中最小组成单位,要理解后才可以更能理解类继承,重载,等java特性和java代码的视觉观性.泛化关系(类和类之间的继承,接口和接口之间的继承,A is a B) 实现关系(A like a B) 关联关系(A has a B) [聚合,合成,依赖也算属于关联关系.]聚合关系( 是一个特殊的关联关系,整体和部分之间的关系,整体不会决定部分的生命周期 ) 上图中+stus的加号表示公开,减号表示私有.合成关系( 是一个特殊的关联辊系,整体和部分之间的关系,整体会决定部分的生命周期 ) 依赖关系( 主要体现在局部变量上,类和类体中的局部变量之间的关系,方法执行结束,该局部变量的内存就消失了 ) 将编程看作是一门艺术,而不单单是个技术。 敲打的英文字符是我的黑白琴键, 思维图纸画出的是我编写的五线谱。 当美妙的华章响起,现实通往二进制的大门即将被打开。

优秀的个人博客,低调大师

Java-学习笔记-4-抽象

不足之处,欢迎专家、同行、读者批评指正。 上一篇在说类库文件时提到了封装,不够严谨,这一篇来简单讲讲。 抽象和封装,这是面向对象程序设计中的一个重要思想。换句话说,是思维方式的转变。以前我们编程,是围绕某一个问题的,研究它的过程是怎样的。现在嘛,是考虑不同的对象之间的信息传递,更适合来写不同对象交互信息的业务。 先说说抽象。最关键的在于属性和功能。举个例子吧,比如说现在你要去图书馆借书,那对你来说,你的属性就是个人ID,借阅权限,借了几本书等等,图书馆那边对象很多,比如说管理员、书等等。你们之间的业务往来,就可以看作功能。 更直白点说,属性通常就是信息的那个值,编程时我们写成int的这种,所谓的功能就是对这个值进行操作的函数或者说方法。当然啦,一个类之中嵌套另一个类,并且把里边的那个类看做是成员变量,这种情况也是有的,不过在理解含义时可以把它和上文的“值”看作一回事。

优秀的个人博客,低调大师

Java-学习笔记-5-封装

不足之处,欢迎专家、同行、读者批评指正。 抽象和封装其实可以放到一起来记。 封装,字面意思看起来像是封上口打包装起来——实际上就是这个意思。只不过,这里我们打包的不是快递包裹,是代码的源文件。Java是有包管理机制的。 这个包,在资源管理器里看的话,是一个个的文件夹——但反过来不能说文件夹就是包。你看,封装,打包,命名的时候就是这么直白。 这个机制,是对访问权限的限制。不过它限制的不是我们。作为开发者,我们自己所负责的几个包中,所有代码都是可以看到的。但是,它限制了不同包的源文件中的变量或者方法,访问其他源文件中的变量或者方法的权限。 关于这个,和C++相似,但不一样。具体可以查阅文档。搜索的关键字可以是public、private等。 是的,文档永远是第一手信息。

优秀的个人博客,低调大师

Java-学习笔记-6-继承

不足之处,欢迎专家、同行、读者批评指正。 我们写代码,当然是希望越简单越好——这个简单是说简洁没有废话,但也不是极端的少,而是必须便于理解,不是秀操作的那种一行写完原本十行的逻辑,让别人读起来像做解谜游戏一样。 继承就有这个好处。 在面向对象的思想中,我们操作的是一个个的对象。如果对象之间有从属关系,我们再去写其中相同的内容,岂不是很多余?这时候就该用上继承了。 当然,继承的作用远不止如此。 继承、多态、某种角度还可能要算上接口,这些是需要打通理解的知识点。

优秀的个人博客,低调大师

Java-学习笔记-7-多态

不足之处,欢迎专家、同行、读者批评指正。 关于多态,我在学的时候遇到了不同的划分范畴的说法。一种理解是,子类对象分别各自实现父类对象的同一个方法。而我本科所用的教材,则是说这个有子类对象作为父类对象引用、子类对父类方法的覆盖、同一个类中方法的覆盖。(因为这个是之前面试时我和面试官分歧的地方,所以印象深刻,他持第一种观点,认为我提到的“同一个类中方法的覆盖”这个不是多态) 之前写了几篇文章,似乎没什么人关注。如果有人关注的话,稍后我会补上自己总结的用来理解的代码示例。

优秀的个人博客,低调大师

Java-学习笔记-8-接口

不足之处,欢迎专家、同行、读者批评指正。 Java在设计的时候为了求简,是舍弃了多继承机制的。但是,实际开发中有时候又需要用。于是,开发者们就曲线救国,通过接口来变相地实现多继承。 其实我个人也比较赞同单继承。接口和继承,是两个不同层次的概念,本来不应该相提并论的。不过在使用时,比较接近。 今天太晚了,先写到这里。如果有人关注的话,稍后我会补上更多的理解。

优秀的个人博客,低调大师

Java-学习笔记-1-概述

不足之处,欢迎专家、同行、读者批评指正。 源起 Java语言的前身是oak语言——oak是在1991年诞生于Sun公司的研究项目,由 James Goslingt 和 Patrick naughton 这两位大牛负责。这个项目最初是为了给消费级电子设备(通俗点说就是家用电器)提供一个通用的开发环境,结果并不成功。这个不成功说的是这个项目它不赚钱,不是说这个oka没开发出来。 简单说一下这个oka。一开始他们本来是打算用c++的,但是C++的安全性差。所以他们就参考C++开发了一个新语言,oak。也就是C特性的一些语法,加上安全性方面的机制。 回来接着说这个项目。正所谓乱世出英雄,这个生不逢时的oak项目,在互联网时代迎来了曙光。因为它的三大特性:跨平台、面向对象、安全性高,正好符合互联网的需要。跨平台,这个是他们一开始就设计好的,因为当初就是为了解决不同设备的通用环境问题。面向对象,这个是C++的特性。安全性,这个是他们自己补充的。但是oak不是拿来就能在Internet上直接用的,所以他们就结合互联网的需求,重新设计了一下oak,最后把它取名叫做Java——没错,就是爪哇,图标都配的是当地特产咖啡。这是在1995年,Java正式面世。 Java与C++的比较 先说它们两个的相同点:它们都是面向对象的——Java当初在设计的时候就向C++借鉴了这一点。所以他们在语法上也非常相似。 接下来再说说它们的不同点。它们最大的不同就是:Java不支持指针,而C++是支持指针的。指针对于编程新手来说,非常的不友好。甚至可能在开发的过程中造成严重的后果。而Java由于不支持指针,从一开始就限制了程序员不能使用指针,主动避免了这个问题。所以说Java比C++简单了很多。这也是Java广受欢迎,应用广泛的原因之一。 第二个不同点。Java 需要被编译成虚拟机的字节码,通过虚拟机来运行。而C++则是直接编译成机器码,然后直接运行。由此可以看出,Java的运行效率是不如C++的。 第三个不同点。Java 中最基本的数据类型都有规定的字节大小。而C++中数据类型的字节大小,要看它具体是怎么实现的。Java中所有对象都是按引用传递的。而C++中的对象都是按值传递的。 第四个不同点。C++保留了许多 C 的功能,这些是面向底层的。Java 中去除了这些功能。同时,Java 用垃圾回收代替了程序员自己释放内存,还放弃了运算符重载和多重继承等这些c++的功能。但在Java的实际编程操作中,我们可以利用接口来实现有限制的多重继承。 第五个不同点。Java更关注的是安全性,可移植性和快速开发。C++则是关注性能和对C向下兼容。

优秀的个人博客,低调大师

机器学习实例-titanic数据预处理

加载数据集,打印前五行: import numpy as np import pandas as pd import seaborn as sns from scipy import stats,integrate import matplotlib.pyplot as plt %matplotlib inline data=pd.read_csv("Desktop/titanic_train.csv") print(data.head()) PassengerId Survived Pclass \0 1 0 3 1 2 1 1 2 3 1 3 3 4 1 1 4 5 0 3 Name Sex Age SibSp \ 0 Braund, Mr. Owen Harris male 22.0 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 2 Heikkinen, Miss. Laina female 26.0 0 3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 4 Allen, Mr. William Henry male 35.0 0 Parch Ticket Fare Cabin Embarked 0 0 A/5 21171 7.2500 NaN S 1 0 PC 17599 71.2833 C85 C 2 0 STON/O2. 3101282 7.9250 NaN S 3 0 113803 53.1000 C123 S 4 0 373450 8.0500 NaN S 查看原始数据统计结果: print(data.describe()) PassengerId Survived Pclass Age SibSp \count 891.000000 891.000000 891.000000 714.000000 891.000000 mean 446.000000 0.383838 2.308642 29.699118 0.523008 std 257.353842 0.486592 0.836071 14.526497 1.102743 min 1.000000 0.000000 1.000000 0.420000 0.000000 25% 223.500000 0.000000 2.000000 20.125000 0.000000 50% 446.000000 0.000000 3.000000 28.000000 0.000000 75% 668.500000 1.000000 3.000000 38.000000 1.000000 max 891.000000 1.000000 3.000000 80.000000 8.000000 Parch Fare count 891.000000 891.000000 mean 0.381594 32.204208 std 0.806057 49.693429 min 0.000000 0.000000 25% 0.000000 7.910400 50% 0.000000 14.454200 75% 0.000000 31.000000 max 6.000000 512.329200 可以看到Age这一项有缺失值。 填充缺失值有很多种方法,最常见的比如说均值填充,中位数填充,等等。 首先看一下年龄数据的原始分布状况: sns.distplot(data["Age"].dropna(),kde=True,bins=50,fit=stats.gamma)#dropna()处理浮点数据 先用均值填充: data["Age"]=data["Age"].fillna(data["Age"].mean()) sns.distplot(data["Age"].dropna(),kde=True,bins=50,fit=stats.gamma) 可以明显看到图像已经变形,虽然也可以用均值填充的数据进行训练,但如果可以改进填充方式,就可以使数据分布更接近实际。 于是我们提取一些与年龄相关的特征,比如船票(年轻人通常比较穷,富人年纪大),家庭成员数量,兄弟姐妹数量,船舱等级等。 在正式训练数据前,先通过线性回归大致预测一下年龄缺失的部分人的年龄。 print(age_df.head(10)) Age Fare Parch SibSp Pclass0 22.000000 7.2500 0 1 31 38.000000 71.2833 0 1 12 26.000000 7.9250 0 0 33 35.000000 53.1000 0 1 14 35.000000 8.0500 0 0 35 27.525206 8.4583 0 0 36 54.000000 51.8625 0 0 17 2.000000 21.0750 1 3 38 27.000000 11.1333 2 0 39 14.000000 30.0708 0 1 2 可以看到,船票价格相比其他数据非常高,先对船票价格进行标准化处理 #标准化 from sklearn import preprocessing age_df=data[["Age","Fare","Parch","SibSp","Pclass"]].copy()#.copy()用于复制原始数据,否则在为DataFrame对象新增一列数据时会报错“A value is trying to be set on a copy of a slice from a DataFrame.” #scaler=preprocessing.StandardScaler() #age_df["Fare_scaled"]=scaler.fit_transform(age_df.loc[:,"Fare"])#数据维数问题出错了,暂不知如何解决 age_df["Fare_scaled"] = preprocessing.scale(age_df.loc[:,"Fare"]) print(age_df.head(10)) del age_df["Fare"] Age Fare Parch SibSp Pclass Fare_scaled0 22.000000 7.2500 0 1 3 -0.5024451 38.000000 71.2833 0 1 1 0.7868452 26.000000 7.9250 0 0 3 -0.4888543 35.000000 53.1000 0 1 1 0.4207304 35.000000 8.0500 0 0 3 -0.4863375 27.525206 8.4583 0 0 3 -0.4781166 54.000000 51.8625 0 0 1 0.3958147 2.000000 21.0750 1 3 3 -0.2240838 27.000000 11.1333 2 0 3 -0.4242569 14.000000 30.0708 0 1 2 -0.042956 数据处理结束,分割数据集: #分割有缺失值的数据集 known_age=age_df[age_df.Age.notnull()] unknown_age=age_df[age_df.Age.isnull()] #print(known_age.head()) x=known_age.iloc[:,1:] y=known_age.iloc[:,0] x_test=unknown_age.iloc[:,1:] y_pred=unknown_age.iloc[:,0] 训练模型,预测结果,填充缺失值: from sklearn import linear_model lr = linear_model.LinearRegression() model=lr.fit(x,y) y_pred=lr.predict(x_test) data.loc[data.Age.isnull(),"Age"]=y_pred sns.distplot(data["Age"].dropna(),kde=True,bins=50,fit=stats.gamma) 填充结果如上图,相比均值填充,通过模型填充缺失值得到了更符合真实分布的数据。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册