numeric相关知识
-
MySQL数据类型Summary: in this tutorial, you will learn about MySQL data types and how to use them effectively in the MySQL database design.Database table contains multiple columns with specific data types such as numeric or string. MySQL provides more data types other than just numeric or string. Each data type in MySQL can be determined by the following characteristics:Kind of values it can represent.The space that takes up and whether the values are fi
-
PHP 小程序支付小程序端调用wx.requestPayment,所需要的参数都从服务端获取服务端小程序需要的参数:小程序端需要的参数需要从服务端获取,这样签名才能一致 /** * 随机数 * @param $length * @param int $numeric * @return string */ public function random($length, $numeric = 0)
-
mysql面试题,MySQL中表的建立及关联问题学生表student(studentId,groupId,studentName,score) 兴趣小组表study_group(groupId,groupName) 1 create table student( 1 studentId varchar(38) primary key auto_increment 1 groupId varchar(38) foreign key 1 studentName nvarchar(250) 1 score numeric(4,1) 1); 2 create table study_group( 2 groupId varchar(38) primary key auto_increment 2 groupName nvarchar(250) 2 ); student sutdentId groupId sutdentName score 1 1 Tom1
-
Mysql 日期时间 DATE_FORMAT(date,format)DATE_FORMAT(date,format)Formats the date value according to the format string.The following specifiers may be used in the format string. As of MySQL 3.23, the “%” character is required before format specifier characters. In earlier versions of MySQL, “%” was optional.SpecifierDescription%aAbbreviated weekday name (Sun..Sat)%bAbbreviated month name (Jan..Dec)%cMonth, numeric (0..12)%DDay of the month with English suffix (0th, 1st, 2nd, 3rd, …)%dDay of the m
numeric相关课程
numeric相关教程
- 2. raise抛出异常 除了编程异常出现的异常外,我们可以使用raise来强制抛出一个异常。实例:def raise_exception puts "before raise exception" raise "This is a exception" puts "after raise exception"endraise_exception# ---- 输出结果 ----before raise exceptionTraceback (most recent call last): 1: from test.rb:7:in `<main>'test.rb:3:in `raise_exception': This is a exception (RuntimeError)解释:由打印我们可以看到,当执行完"before raise exception"的文字输出后,程序抛出了一个异常,这个异常的名称是我们定义的“This is a exception”。Tips:默认情况下,raise创建RuntimeError类的异常。我们也可以通过传入异常的类型,来改变raise异常的类型。实例:def inverse(x) raise ArgumentError, 'Argument is not numeric' unless x.is_a? Numeric 1.0 / x end puts inverse(2) puts inverse('not a number') # ---- 输出结果 ----0.5Traceback (most recent call last): 1: from test.rb:6:in `<main>'test.rb:2:in `inverse': Argument is not numeric (ArgumentError)解释: 我们在raise后面增加了需要抛出的异常类型,由输出结果我们可以看到,最后抛出的异常类型为ArgumentError。
- 4. 具体的实现细节 首先我们和之前一样,进行数据的获取:import numpy as npimport pandas as pdimport tensorflow as tfx_train = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv')x_test = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/eval.csv')y_train = x_train.pop('survived')y_test = x_test.pop('survived')然后我们要定义连序列以及离散列:categories = ['sex', 'n_siblings_spouses', 'parch', 'class', 'deck', 'embark_town', 'alone']numeric = ['age', 'fare']然后我们就要定义特征列了:def one_hot_cat_column(feature_name, vocab): return tf.feature_column.indicator_column(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocab))feature_columns = []for feature_name in categories: feature_columns.append(one_hot_cat_column(feature_name, x_train[feature_name].unique()))for feature_name in numeric: feature_columns.append(tf.feature_column.numeric_column(feature_name,dtype=tf.float32))在第一个 one_hot_cat_column 函数之中,我们对于特征列进行了独热编码。并且我们对于离散列与连续列进行了不同的处理。然后我们定义输入函数,这里我们仍然定义了两个输入函数,一个为训练使用,另一个为测试使用:def train_input_fn(x, y): dataset = tf.data.Dataset.from_tensor_slices((dict(x), y)) dataset = dataset.shuffle(len(y_train)).repeat().batch(32) return datasetdef test_input_fn(x, y): dataset = tf.data.Dataset.from_tensor_slices((dict(x), y)).batch(32) return datasettrain_input = lambda: train_input_fn(x_train, y_train)test_input = lambda: test_input_fn(x_test, y_eval)在这之后,我们便需要定义我们的提升树模型了:estimator = tf.estimator.BoostedTreesClassifier(feature_columns, n_batches_per_layer=len(y_train) // 32)这里的第一个参数 feature_columns 就是特征列,这个很好理解;关键是第二个参数,大家要记住的是, n_batches_per_layer 这个参数需要是样本的数量与批次大小的商,因为这里我们的批次大小为 32 ,因此我们设置其为 (y_train) // 32 。最后便是模型的训练了:estimator.train(train_input, max_steps=100)result = estimator.evaluate(test_input)print(pd.Series(result))于是我们可以的得到输出:accuracy 0.787879accuracy_baseline 0.625000auc 0.835384auc_precision_recall 0.825271average_loss 0.554901label/mean 0.375000loss 0.552625precision 0.747126prediction/mean 0.454899recall 0.656566global_step 100.000000dtype: float64于是我们可以得到了我们训练结果: 78% 的准确率。为了做对比,大家可以采用一个简单的线性分类器来做对比,也就是:tf.estimator.LinearClassifier(feature_columns)通过对比,大家就可以看到集成学习的优势。
- 3. 实例-使用 Estimator 进行泰坦尼克生存预测 首先我们需要先获取数据集,也就是泰塔尼克数据集,我们采用之前相同的方式来获取数据集:import pandas as pdimport tensorflow as tftrain_file = tf.keras.utils.get_file("train.csv", "https://storage.googleapis.com/tf-datasets/titanic/train.csv")columns = ['survived', 'sex', 'age', 'n_siblings_spouses', 'parch', 'fare', 'class', 'deck', 'embark_town', 'alone']categorical = ['sex', 'n_siblings_spouses', 'parch', 'class', 'deck', 'embark_town', 'alone']numeric = ['age', 'fare']train_df = pd.read_csv(train_file, names=columns)其中我们 columns 变量定义了全部的列,同时我们定义了 categorical 和 numeric 两个数据列,分别代表离散值以及连续值,这便于我们后面的编码处理。然后我们进行测试集与训练集的划分:test_df = train_df.sample(frac=0.2)train_df = train_df[~train_df.index.isin(test_df.index)]train_df_y = train_df.pop('survived')test_df_y = test_df.pop('survived')print(len(train_df), len(test_df))在这里,我们使用 train_df.sample() 方法来按照 0.2 的采样率进行随机采样,从来获取我们的测试集,然后我们将原来集合中的测试集去掉,得到剩下的训练集。然后我们又采用 pop 的方式来获取到标签值。这里我们按照传统的8:2的比例进行分割。我们可以得到输出:502, 125然后我们就进行特征列的构造,在这里我们将特征列分为连续值与离散值,对于离散值,我们进行了独热编码的处理,因为独热编码在训练的过程中较大的优势:def transfer2one_hot(feature, feature_vocab): return tf.feature_column.indicator_column(tf.feature_column.categorical_column_with_vocabulary_list(feature, feature_vocab))features = []for feature in categorical: features.append( transfer2one_hot(feature, train_df[feature].unique()) )for feature in numeric: features.append( tf.feature_column.numeric_column(feature, dtype=tf.float32) )在这里我们使用到了三个非常重要的函数:tf.feature_column.numeric_column,将某一列作为连续值视作数据特征;tf.feature_column.indicator_column,将某一离散列作为独热编码视作数据列;tf.feature_column.categorical_column_with_vocabulary_list,接收第一个参数为某一离散特征列,第二个参数为该离散特征列的所有取值情况,将一个普通列视作离散数据列(未经过独热编码)。然后我们便可以定义我们的输入函数,在这里我们将输入函数分为训练时的输入函数以及测试时的输入函数,具体来说:def train_input_fn(features, labels, batch_size=8): dataset = tf.data.Dataset.from_tensor_slices((dict(features), labels)) dataset = dataset.shuffle(len(train_df)) dataset = dataset.repeat(30000) return dataset.batch(batch_size)def test_input_fn(features, labels, batch_size=8): dataset = tf.data.Dataset.from_tensor_slices((dict(features), labels)) return dataset.batch(batch_size)train_fn = lambda: train_input_fn(train_df, train_df_y)test_fn = lambda: test_input_fn(test_df, test_df_y)在输入函数之中,我们使用参数中的 features 和 labels 创建了一个数据集,并且将其返回。并且对于训练集,我们采用了数据增强,也就是随机化以及重复操作,在这里,30000 就是我们要训练的 Steps 数量(我们所使用的 batch_size 的数量,这里是8)。最后因为输入函数是一个函数,因此我们需要定义一个 lambda 函数来返回一个输入函数,否则输入函数将直接返回一个数据集,这是我们不希望看到的。再者我们就可以载入一个内置的模型:classifier = tf.estimator.DNNClassifier( feature_columns=feature_columns, hidden_units=[50, 30, 20], n_classes=2)在这里我们定义了一个 Estimator 内置的分类器,它的三个参数如下:feature_columns,特征列,就是我们刚刚处理过的特征列,包含连序列与离散列;hidden_units,隐藏单元的数量,在这里我们定义了三层;n_classes,输出的种类,这里我们只有生存和不能生存两类。最后我们便可以进行模型的训练与测试,具体的实现细节非常简单:classifier.train(input_fn=train_fn, steps=30000)test_result = classifier.evaluate(input_fn=test_fn)print(test_result)我们首先进行了训练,输入函数为我们之前定义的训练的输入函数,然后训练 Steps 为 30000 ,然后我们便进行了测试,此时的输入函数为我们为测试专门定制的输入函数。我们可以得到结果:......INFO:tensorflow:global_step/sec: 861.581INFO:tensorflow:loss = 0.4950667, step = 47500 (0.114 sec)INFO:tensorflow:global_step/sec: 885.82INFO:tensorflow:loss = 0.30664578, step = 47600 (0.113 sec)INFO:tensorflow:global_step/sec: 879.637INFO:tensorflow:loss = 0.82413065, step = 47700 (0.116 sec)INFO:tensorflow:global_step/sec: 814.178INFO:tensorflow:loss = 0.5236651, step = 47800 (0.123 sec)INFO:tensorflow:global_step/sec: 829.556INFO:tensorflow:loss = 0.4500552, step = 47900 (0.118 sec)......{'accuracy': 0.724, 'accuracy_baseline': 0.7624, 'auc': 0.5004091, 'auc_precision_recall': 0.43117255, 'average_loss': 1.7417283, 'label/mean': 0.376, 'loss': 2.7342584, 'precision': 0.0, 'prediction/mean': 0.025458882, 'recall': 0.0, 'global_step': 0}我们可以看到,最后我们在测试集上的准确率为 0.72 ,也是一个不错的结果。
- 2.1 Django 中的模型说明 在 Django 中,一个模型(model)会映射到一个数据库表。每个模型都是一个Python 类,它是django.db.models.Model 的子类,模型的每个属性都代表一个数据库字段。例如下面的代码中,我们定义了一个 Member 类。每个 model 会属于 Django 中的一个应用,我们通常会将每个应用的 models 写到该应用目录下的 models.py 中。# first_django_app/hello_app/models.pyfrom django.db import modelsclass Member(models.Model): sex_choices = ( (0, '男'), (1, '女'), ) name = models.CharField('姓名', max_length=30) age = models.CharField('年龄', max_length=30) sex = models.SmallIntegerField('性别', choices=sex_choices, default=0) occupation = models.CharField('职业', max_length=30) phone_num = models.CharField('手机号', max_length=14, null=True) email = models.EmailField('邮箱', blank=True) city = models.CharField('城市', max_length=30) register_date = models.DateTimeField('注册时间', auto_now=True) def __str__(self): return "<%s, %s>" % (self.name, self.phone_num) class Meta: # 通过db_table自定义数据表名 db_table = 'member' 上面模型类的定义中,我们看到几个和模型相关的字段类,比如 CharField、SmallIntegerField 等。Django 中定义了许多类似的字段类,这些字段类和数据库中字段的类型是一一映射的。以 MySQL 为例:# 源码地址 django/db/backends/mysql/base.py# ...class DatabaseWrapper(BaseDatabaseWrapper): vendor = 'mysql' display_name = 'MySQL' # This dictionary maps Field objects to their associated MySQL column # types, as strings. Column-type strings can contain format strings; they'll # be interpolated against the values of Field.__dict__ before being output. # If a column type is set to None, it won't be included in the output. data_types = { 'AutoField': 'integer AUTO_INCREMENT', 'BigAutoField': 'bigint AUTO_INCREMENT', 'BinaryField': 'longblob', 'BooleanField': 'bool', 'CharField': 'varchar(%(max_length)s)', 'DateField': 'date', 'DateTimeField': 'datetime(6)', 'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)', 'DurationField': 'bigint', 'FileField': 'varchar(%(max_length)s)', 'FilePathField': 'varchar(%(max_length)s)', 'FloatField': 'double precision', 'IntegerField': 'integer', 'BigIntegerField': 'bigint', 'IPAddressField': 'char(15)', 'GenericIPAddressField': 'char(39)', 'NullBooleanField': 'bool', 'OneToOneField': 'integer', 'PositiveIntegerField': 'integer UNSIGNED', 'PositiveSmallIntegerField': 'smallint UNSIGNED', 'SlugField': 'varchar(%(max_length)s)', 'SmallIntegerField': 'smallint', 'TextField': 'longtext', 'TimeField': 'time(6)', 'UUIDField': 'char(32)', } # ... # ...从上面这部分源码可以看到,Django 中定义的这些字段类都会和 MySQL 中的字段的类型是一一对应的。接下来介绍常用的 Field 类型以及相关的属性选项。
- 02 SQL语句 SQL 程序员的必学技能
- ThinkPHP 后台处理数据 一款很容易上手的后端 PHP 框架
numeric相关搜索
-
net core
net mvc
net教程
net开发
name
navigate
navigationbar
navigator
navigator appname
navigator useragent
nba比赛结果
negatives
neicun
neon
net link
net mvc
netcore
netscape
netstat
netstat命令