MSE(3)

2006年被录取的软件工程双证同学请进讨论

引用asamiya  新手上路

我对MSE 的小小总结及看法

我是2003年调济到南方一所高校的双证(研究生毕业证+学位证)MSE 。针对于这样一个新事物。我查了很多MSE 的资料,上了很多论坛,也问了很多大企、外资的人事部。最后我得出了一点小小总结及看法:
一、双证MSE 的生源质量:不比计算机工学硕士差!
1)在生源方面,大多数高校的双证MSE 都是与工学硕士同样的录取标准。
2)毕业后所得到的证书和工学硕士一样,国家承认,与工学硕士处于同一层次,同样的待遇和就业推荐等。3)所学的课程更实用、实在。
二、MSE 的风险大。
  特别是对于双证硕士来说,考研的分数完全可以读计算机工学硕士。但到目前为止,全国还没有一个MSE 毕业,所以现在谁也知道两年后的MSE
在社会上影响会是怎么。不过有一点可以肯定的就是,非学历教育(没有毕业证)的MSE 门坎太低了,而且人数相当多。这样必然会降低社
会对MSE 的认可度。可以假设,如果教育部一开始就是以全国统考的方式,计算机的标准来录取MSE ,相信大家现在也不会为MSE 的社会认可度而争论
了,最起码也不会觉得MSE 不如计算机硕士。但教育部没有那么做,也许有他的理由。但不管怎么样,我一直认为只要是金子,就会发光的。什么都是靠自己努力。
三、MSE 是个趋势。
  随着自费研究生的普及,MSE 的价格劣势也慢慢地不那么明显。再加上几年后社会对MSE 的了解和现在在读的那一批MSE 精英进入社会。相信几年后MSE 也将会是一些优秀本科生考研的第一选择。虽然说一些垃圾MSE 也带来的很大的负面影响,但是看看现在的工学硕士也还不是有那么多垃圾吗?
四、MSE 的选择。
  现在的MSE 有两种,一种是有学历(毕业证)的,必须要参加全国研究生考试,且达到复试标准。另一种是没学历的,只能拿到学位证,通过工程硕士联考或是参加统考略低于复试标准即可入学。而在中国社会,毕业证恰恰是最重要的。中国社会非常认可毕业证,绝大多数企业
人事部都表示:“一定要有毕业证我们才承认你是研究生,至于什么学位(理学、工学、管理学……)我们不在乎。对于只有硕士学位证但没
有研究生毕业证的人,我们只认可你是本科,但可以享受硕士的待遇。”因此这两种MSE 在中国是有着本质的区别。所以对于考研上了复试线的同学来说,MSE 要有学历的才值得读!特别是在调济中一定要注意这一点。当然我不反对通过在职读MSE 来提高自己的能力。

基于以下代码:# ①建立50×30的随机数据和30个变量 set.seed(123) X <- matrix(rnorm(50*30), ncol=30) y <- rnorm(50) # ②生成三组不同系数的线性模型 beta1 <- rnorm(30, mean=1, sd=0.5) beta2 <- rnorm(30, mean=2, sd=0.5) beta3 <- rnorm(30, mean=3, sd=0.5) # 定义一个函数用于计算线性回归的CV值 cv_linear <- function(X, y, k=10, lambda=NULL) { n <- nrow(X) if (is.null(lambda)) { lambda <- seq(0, 1, length.out=100) } mse <- rep(0, length(lambda)) folds <- sample(rep(1:k, length.out=n)) for (i in 1:k) { X_train <- X[folds!=i, ] y_train <- y[folds!=i] X_test <- X[folds==i, ] y_test <- y[folds==i] for (j in 1:length(lambda)) { fit <- glmnet(X_train, y_train, alpha=0, lambda=lambda[j]) y_pred <- predict(fit, newx=X_test) mse[j] <- mse[j] + mean((y_test - y_pred)^2) } } mse <- mse / k return(mse) } # ③(线性回归中)分别计算这三组的CV值 lambda <- seq(0, 1, length.out=100) mse1 <- cv_linear(X, y, lambda=lambda) mse2 <- cv_linear(X, y, lambda=lambda) mse3 <- cv_linear(X, y, lambda=lambda) # ④(岭回归中)分别画出这三组的两张图,两张图均以lambd为横坐标,一张图以CV error为纵坐标,一张图以Prediction error为纵坐标,两张图同分开在Plots位置 library(glmnet) par(mfrow=c(1,2)) # 画CV error图 plot(lambda, mse1, type="l", xlab="lambda", ylab="CV error", main="Beta1") points(lambda, mse2, type="l", col="red") points(lambda, mse3, type="l", col="blue") # 画Prediction error图 fit1 <- glmnet(X, y, alpha=0, lambda=lambda[which.min(mse1)]) fit2 <- glmnet(X, y, alpha=0, lambda=lambda[which.min(mse2)]) fit3 <- glmnet(X, y, alpha=0, lambda=lambda[which.min(mse3)]) y_pred1 <- predict(fit1, newx=X) y_pred2 <- predict(fit2, newx=X) y_pred3 <- predict(fit3, newx=X) pred_error1 <- mean((y - y_pred1)^2) pred_error2 <- mean((y - y_pred2)^2) pred_error3 <- mean((y - y_pred3)^2) plot(lambda, pred_error1, type="l", xlab="lambda", ylab="Prediction error", main="Beta1") points(lambda, pred_error2, type="l", col="red") points(lambda, pred_error3, type="l", col="blue")。按以下要求修改R代码:将三组的分别以CV error和Prediction error为纵坐标的图,每次Plots位置只会出现同一个组的两张分别以CV error和Prediction error为纵坐标的图
最新发布
05-31
可以按照以下步骤修改代码: 1. 将 par(mfrow=c(1,2)) 改为 par(mfrow=c(2,3)),表示将Plots位置改为6个。 2. 将 plot(lambda, mse1, type="l", xlab="lambda", ylab="CV error", main="Beta1") 和 plot(lambda, pred_error1, type="l", xlab="lambda", ylab="Prediction error", main="Beta1") 改为: ``` # 画Beta1的CV error图 plot(lambda, mse1, type="l", xlab="lambda", ylab="CV error", main="Beta1 CV error") # 画Beta1的Prediction error图 plot(lambda, pred_error1, type="l", xlab="lambda", ylab="Prediction error", main="Beta1 Prediction error") ``` 这样就能够将同一组的两张图排列在一起,并且更明确地表示出它们的含义。 3. 将上述代码中的“Beta1”改为“Beta2”和“Beta3”,分别表示三组系数的图像。修改后的完整代码如下: ``` # ①建立50×30的随机数据和30个变量 set.seed(123) X <- matrix(rnorm(50*30), ncol=30) y <- rnorm(50) # ②生成三组不同系数的线性模型 beta1 <- rnorm(30, mean=1, sd=0.5) beta2 <- rnorm(30, mean=2, sd=0.5) beta3 <- rnorm(30, mean=3, sd=0.5) # 定义一个函数用于计算线性回归的CV值 cv_linear <- function(X, y, k=10, lambda=NULL) { n <- nrow(X) if (is.null(lambda)) { lambda <- seq(0, 1, length.out=100) } mse <- rep(0, length(lambda)) folds <- sample(rep(1:k, length.out=n)) for (i in 1:k) { X_train <- X[folds!=i, ] y_train <- y[folds!=i] X_test <- X[folds==i, ] y_test <- y[folds==i] for (j in 1:length(lambda)) { fit <- glmnet(X_train, y_train, alpha=0, lambda=lambda[j]) y_pred <- predict(fit, newx=X_test) mse[j] <- mse[j] + mean((y_test - y_pred)^2) } } mse <- mse / k return(mse) } # ③(线性回归中)分别计算这三组的CV值 lambda <- seq(0, 1, length.out=100) mse1 <- cv_linear(X, y, lambda=lambda) mse2 <- cv_linear(X, y, lambda=lambda) mse3 <- cv_linear(X, y, lambda=lambda) # ④(岭回归中)分别画出这三组的两张图,每组两张图均以lambda为横坐标: library(glmnet) par(mfrow=c(2,3)) # 画Beta1的CV error图 plot(lambda, mse1, type="l", xlab="lambda", ylab="CV error", main="Beta1 CV error") # 画Beta1的Prediction error图 fit1 <- glmnet(X, y, alpha=0, lambda=lambda[which.min(mse1)]) y_pred1 <- predict(fit1, newx=X) pred_error1 <- mean((y - y_pred1)^2) plot(lambda, pred_error1, type="l", xlab="lambda", ylab="Prediction error", main="Beta1 Prediction error") # 画Beta2的CV error图 plot(lambda, mse2, type="l", xlab="lambda", ylab="CV error", main="Beta2 CV error") # 画Beta2的Prediction error图 fit2 <- glmnet(X, y, alpha=0, lambda=lambda[which.min(mse2)]) y_pred2 <- predict(fit2, newx=X) pred_error2 <- mean((y - y_pred2)^2) plot(lambda, pred_error2, type="l", xlab="lambda", ylab="Prediction error", main="Beta2 Prediction error") # 画Beta3的CV error图 plot(lambda, mse3, type="l", xlab="lambda", ylab="CV error", main="Beta3 CV error") # 画Beta3的Prediction error图 fit3 <- glmnet(X, y, alpha=0, lambda=lambda[which.min(mse3)]) y_pred3 <- predict(fit3, newx=X) pred_error3 <- mean((y - y_pred3)^2) plot(lambda, pred_error3, type="l", xlab="lambda", ylab="Prediction error", main="Beta3 Prediction error") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值